'ariable "NX_CHG_LIST_VOLAT" passed to AcceptEnvVariable is not in the environment' on ITSM 17.1 upgrade

Document ID : KB000117841
Last Modified Date : 19/10/2018
Show Technical Document Details
Question:
Attempting to upgrade to ITSM 17.1.

The upgrade fails at Step 4.

In the SDM /log/stdlog there are messages similar to the following

10/15 17:41:01.81 My_Server        domsrvr:wsp          9172 ERROR        majic.l                526 Variable "NX_CHG_LIST_VOLAT" passed to AcceptEnvVariable is not in the environment
10/15 17:41:02.04 My_Server        domsrvr:wsp          9172 ERROR        majic.y               4622 mods/majic/My_Sites_MOD_chg.mod:43 syntax error, unexpected YACC_STR, expecting ';' at "$NX_CHG_LIST_VOLAT"
10/15 17:41:02.04 My_Server        domsrvr:wsp          9172 ERROR        majic.l                526 Variable "NX_CHG_LIST_VOLAT" passed to AcceptEnvVariable is not in the environment
10/15 17:41:02.05 My_Server        domsrvr:wsp          9172 ERROR        domdict.c             1668 Ignoring duplicate definition of trigger chg::val_fieldupdate_site

10/15 17:41:02.06 My_Server        domsrvr:wsp          9172 FATAL        domsrvr.c              738 Could not parse files in C:/PROGRA~2/CA/SERVIC~1/site/mods/majic
Environment:
Upgrading from a prior release of CA Service Desk Manager to ITSM 17.1.
Answer:
The custom mod file is referencing a non-existent variable called NX_CR_LIST_VOLAT. 
The variable "NX_CR_LIST_VOLAT" was not retained on the migration attempt. 

There are two solutions to this issue. 

SOLUTION 1

* If you can do without the variable, then remove it from the customisation - or remove the customisation - and try again. 
Removing this may be a good test even if you were planning on keeping this functionality, in order to prove it is the sticking point in the upgrade process. 
The SDM service will need to start up, and we need to not see the above errors, to confirm success. 

In this example, the likely file is mods/majic/My_Sites_MOD_chg.mod at row 43, where there is probably "NX_CR_LIST_VOLAT". 

This has been confirmed to work.

SOLUTION 2 

Some NX.ENV variables are not obtained during the CA SDM upgrade. 
Some reasons why this may occur are: variable is no longer applicable, variable has been replaced with another variable, functionality has been built into the code etc. 

You may try the following to see if the 'NX_CR_LIST_VOLAT' variable is retained: 

1. Prior to the CA SDM upgrade, create a file called EXCLUDE_NX_VARS.CFG in the NX_ROOT\SITE directory on the CA SDM server 
2. Place the following line within the file and save changes 
@NX_CR_LIST_VOLAT 

NOTE: The above suggestion should work, but has not yet been confirmed by a live site.