"Exception occured when Bump Feature Vesions" in SPS 2019 upgrade log when Nintex 2019 is deployed

  • 22 February 2021
  • 2 replies
  • 46 views

When updating SPS 2019 (RTM) with an SPS CU (December 2020 CU) I get the following warning messages in the upgrade log :

02/10/2021 11:06:31.41        psconfigui (0x2AB4)        0x2B8C        SharePoint Foundation Upgrade        SPContentDatabaseSequence2        arir1        WARNING        Exception occured when Bump Feature Vesions. System.NullReferenceException: Object reference not set to an instance of an object.    

at Microsoft.SharePoint.Upgrade.SPContentDatabaseSequence2.FeatureUpgader.MaxFeatureIdForGhosting(SPFeatureDefinition featureDef)    

at Microsoft.SharePoint.Upgrade.SPContentDatabaseSequence2.FeatureUpgader.BumpFeatureVersionsCore()    

at Microsoft.SharePoint.Upgrade.SPContentDatabaseSequence2.FeatureUpgader.BumpFeatureVersions()        00000000-0000-0000-0000-000000000000

 

In this environment only the Nintex 2019 is installed as an additional component.

Trying to find out the cause of the warnings I found that it is caused by nintexcommon.wsp.
If I deployed nintexcommon.wsp in my home test environment I could reproduce the issue (without it no warnings happen when updating with a CU).
With further research it seems that SPS have some problem with the CustomUpgradeAction-s of the NintexAdminFeature (c3d75af5-71e9-4df5-a18f-b86511b60557).
This feature have 3 CustomUpgradeAction:

C:Program FilesCommon Filesmicrosoft sharedWeb Server Extensions16TEMPLATEFEATURES NintexAdminFeatureFeature.xml

--------------------------------------------------------------------------------------------------------

<UpgradeActions ReceiverAssembly="Nintex.Administration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=913f6bae0ca5ae12" ReceiverClass="Nintex.Administration.Features.NintexAdminFeature.NintexAdminFeatureEventReceiver">
<CustomUpgradeAction Name="WebConfigModsToWebApp"></CustomUpgradeAction>
<CustomUpgradeAction Name="InstallConsumptionLicensingJobs"></CustomUpgradeAction>
<CustomUpgradeAction Name="InstallSubscriptionComplianceReporting"></CustomUpgradeAction>
</UpgradeActions>
None of the appear when using the Get-SPUpgradeActions cmdlet in SPS management shell.
While for other Nintex features customupgradeactions are listed by the Get-SPUpgradeActions cmdlet
Eg. the NintexFormsWebApplication, NintexFormsAdminWeb, NintexWorkflowAdmin  features also have a 'WebConfigModsToWebApp' customupgradeaction , and it is displayed by the Get-SPUpgradeActions cmdlet, while it is not displayed for NintexAdminFeature (c3d75af5-71e9-4df5-a18f-b86511b60557).
Checking the sharepoint diagnostic (ULS) log while running the Get-SPUpgradeActions cmdlet the following error is displayed:

02. 15. 2021 10:23:44.20           PowerShell.exe (0x1E28)          0x3694 SharePoint Foundation Upgrade           ah9sj            Medium           
Error evaluating upgrade actions for feature c3d75af5-71e9-4df5-a18f-b86511b60557 while listing known upgrade actions.
System.NullReferenceException: Object reference not set to an instance of an object.    
at Microsoft.SharePoint.Upgrade.SPUpgradeActionInfo.FillFromFeatureAction(SPFeatureUpgradeAction fua)    
at Microsoft.SharePoint.Upgrade.SPUpgradeActionInfo.ListKnownFeatureUpgradeActions(SPChunkedArrayList`1& upgradeActions)          
d972ab9f-dc13-c0a4-d179-ed82b5b0db77
Anyone else have seen this warning in the upgrade log ? Any solution for this ?
In test environment of course I can retract the nintexcommon.wsp , do the SPS CU update, and redeploy the nintexcommon.wsp, but Im afraid to advise this wokaround for a production environment.
 


2 replies

Found the issue caused by the following reason:
-------------------------------------------------
Problem solution name: nintexcommon.wsp
Problem feature name: NintexAdminFeature
Problem file: C:Program FilesCommon Filesmicrosoft sharedWeb Server Extensions16TEMPLATEFEATURESNintexAdminFeatureFeature.xml

For the listed <CustomUpgradeAction> elements in the 'Feature.xml' the proper parent element (the <VersionRange> element)
is not specified.
(When checking other Nintex features that have custom ugrade actions, they have the <VersionRange> element specified in their Feature.xml files)
(Some of the good working features:
NintexFormsWorkflowSite (CustomUpgradeAction.AddOnTaskUpdatedEvent)
NintexFormsWebApplication (CustomUpgradeAction.WebConfigModsToWebApp)
NintexFormsAdminWeb (CustomUpgradeAction.WebConfigModsToWebApp)
NintexWorkflowAdmin (CustomUpgradeAction.WebConfigModsToWebApp)
)

This can be proved by the following steps:
-------------------------------------------
0) Run the following command in SharePoint Management Shell:
Get-SPUpgradeActions|where{$_.name -like "NintexAdminFeature*"}|select name
You will not see any results for the NintexAdminFeature.

1) Edit the C:Program FilesCommon Filesmicrosoft sharedWeb Server Extensions16TEMPLATEFEATURESNintexAdminFeatureFeature.xml as listed at bottom of this topic description
2) Restart the SPS server (alternatively restart of IISAdmin service is enough)
3) Open a new SharePoint Management Shell window, check the result of the earlier used command:
Get-SPUpgradeActions|where{$_.name -like "NintexAdminFeature*"}|select name
You shall see the 3 custom upgrade action of the NintexAdminFeature listed:
Name
----
NintexAdminFeature (CustomUpgradeAction.WebConfigModsToWebApp)
NintexAdminFeature (CustomUpgradeAction.InstallConsumptionLicensingJobs)
NintexAdminFeature (CustomUpgradeAction.InstallSubscriptionComplianceReporting)

4) Now you can ugrade the SPS farm with an SPS CU, and the earlier experienced "Exception occured when Bump Feature Vesions" warning will not appear in the upgrade log.
Instead you will see the lines of good working update:

02/23/2021 18:59:51.38 psconfigui (0x089C) 0x1D60 SharePoint Foundation Upgrade SPContentDatabaseSequence2 ajy5b INFO Start SPContentDatabase2 PostUpgrade 00000000-0000-0000-0000-000000000000
...
02/23/2021 18:59:51.40 psconfigui (0x089C) 0x1D60 SharePoint Foundation Upgrade SPContentDatabaseSequence2 arirz INFO Start bump feature versions 00000000-0000-0000-0000-000000000000
...
02/23/2021 18:59:51.66 psconfigui (0x089C) 0x1D60 SharePoint Foundation Upgrade SPContentDatabaseSequence2 ariry DEBUG Runtime feature Upgrader to Skip for Ghosted views for feature Id = c3d75af5-71e9-4df5-a18f-b86511b60557 from version 5.0.1.0 00000000-0000-0000-0000-000000000000
...
02/23/2021 18:59:51.68 psconfigui (0x089C) 0x1D60 SharePoint Foundation Upgrade SPContentDatabaseSequence2 arir0 INFO End bump feature versions 00000000-0000-0000-0000-000000000000
02/23/2021 18:59:51.68 psconfigui (0x089C) 0x1D60 SharePoint Foundation Upgrade SPContentDatabaseSequence2 ajy5c INFO End SPContentDatabase2 PostUpgrade 00000000-0000-0000-0000-000000000000


Possible syntax fix for the problem Feature.xml:
(Added <VersionRange> parent element)
===================================================
<?xml version="1.0" encoding="utf-8"?>
<Feature xmlns="http://schemas.microsoft.com/sharepoint/" ActivateOnDefault="FALSE" AlwaysForceInstall="TRUE" AutoActivateInCentralAdmin="TRUE" Hidden="TRUE" Id="c3d75af5-71e9-4df5-a18f-b86511b60557" ReceiverAssembly="Nintex.Administration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=913f6bae0ca5ae12" ReceiverClass="Nintex.Administration.Features.NintexAdminFeature.NintexAdminFeatureEventReceiver" Scope="Web" SolutionId="146c508f-39bd-456a-8196-a43668f91c30" Title="Nintex Administration" Version="5.0.1.0">
  <UpgradeActions ReceiverAssembly="Nintex.Administration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=913f6bae0ca5ae12" ReceiverClass="Nintex.Administration.Features.NintexAdminFeature.NintexAdminFeatureEventReceiver">
<VersionRange>
    <CustomUpgradeAction Name="WebConfigModsToWebApp"></CustomUpgradeAction>
    <CustomUpgradeAction Name="InstallConsumptionLicensingJobs"></CustomUpgradeAction>
    <CustomUpgradeAction Name="InstallSubscriptionComplianceReporting"></CustomUpgradeAction>
</VersionRange>
  </UpgradeActions>
  <ElementManifests>
    <ElementManifest Location="AdminFeatureElements2019Elements.xml" />
  </ElementManifests>
</Feature>


Additional Note:
===================
In theory a <CustomUpgradeActions> parent element may also work, if I understand the below document correctly:
https://docs.microsoft.com/en-us/sharepoint/dev/schema/upgradeactions-element-feature
(However it is marked to be valid till SPS 2016, so may be they changed it for SPS 2019, but I couldnt find similar document for SPS 2019)

However when I added the <CustomUpgradeActions> parent element, then it was not recognized by the SPS.
In that case the following error was logged for the Get-SPUpgradeActions in the ULS log:

02/23/2021 18:33:17.03 PowerShell.exe (0x14DC) 0x085C SharePoint Foundation Feature Infrastructure 9fnh High Feature upgrade action 'CustomUpgradeActions' for Feature 'NintexAdminFeature' (Id: 15/'c3d75af5-71e9-4df5-a18f-b86511b60557') threw an exception during creation and validation of the action: Unknown feature upgrade action name 'CustomUpgradeActions' in Feature 'NintexAdminFeature' (Id: 15/'c3d75af5-71e9-4df5-a18f-b86511b60557').  Failed to create an appropriate feature upgrade action. 0922ae9f-a2e0-2009-df70-7203052e21ee

 
Earlier I mistakenly wrote in step 2), that a server restart or iisadmin restart needed for the SPS to notice the changes I made in the Feature.xml.
That's not true, it is not required.
The only thing that need to be done to open a new SharePoint Management shell window to check the new results of the command:
Get-SPUpgradeActions|where{$_.name -like "NintexAdminFeature*"}|select name
(Otherwise the PowerShell gives results from some cache, and not display the changes.)

Reply