Skip to main content

SOAP issue with updating Notifications

Salesforce NPSP v3.236 can cause MoveData Opportunity update failures. Fix by making the CRLP_Rollup_TDTM trigger asynchronous.

James Kent avatar
Written by James Kent
Updated over a month ago

Overview

This has been raised by the community with Salesforce

Starting September 2025, the Salesforce Foundation began pushing an update to the Non-Profit Success Pack, releasing version 3.236. We are seeing a some failures appear when MoveData is updating Opportunities in organisations with this version installed. We also note that organisation are also being moved to Salesforce' Winter 26 release which may also be a factor.

You can determine if you have encountered this issue by opening up a failed notification. You will have a status of Failed and a message noting Unsuccessful response from Salesforce. Navigate to an Execution tab and you should see a failure message noting:

Upsert failed. First exception on row 0 with id 006S900000FWOzRIAX; first error: CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY, npsp.TDTM_Opportunity: execution of AfterUpdate caused by: System.UnexpectedException: Cannot invoke "common.api.soap.SoapApiType.name()" because the return value of "common.api.soap.ApiType.getSoapApiType()" is null External entry point (System Code): []

Proactive Resolution

Some customers will be ok seeing if the issue affects them and if so, making the recommended change and reprocessing failures. Others will need to ensure there are no significant failures in advance.

If you wish to proactively managing this risk, we would suggest you make the below change to the trigger configuration ahead of time.

Resolution

Disclaimer: These configuration changes are provided as guidance to resolve known compatibility issues. Customers implement these modifications at their own risk. We recommend testing in a sandbox environment first and consulting with your Salesforce partner before making production changes.

To mitigate this issue, we have determined that the NPSP trigger CRLP_Rollup_TDTM should be moved to asynchronous execution. We aren't sure why this is causing the issue but have had success with our affected customers by making this change.

This can be done one of the two following way:

Disable via Interface

  • Open "Trigger Handlers" via the App Launcher in Salesforce

  • Select the "All" List View

  • Find the entry with the class named CRLP_Rollup_TDTM on the Opportunity object.

  • Mark User Managed as true

  • Either:

    • Mark Active as false; or

    • Mark Active as true and mark Asynchronous After Events as true

Disable via Developer Console

You can run the below script to force the trigger to run outside the MoveData transaction:

List<npsp__Trigger_Handler__c> rollupList = [
SELECT Id, Name, npsp__Object__c, npsp__Class__c, npsp__Asynchronous__c
FROM npsp__Trigger_Handler__c
WHERE npsp__Class__c = 'CRLP_Rollup_TDTM' AND npsp__Object__c = 'Opportunity'
];

if (rollupList.size() == 1) {
npsp__Trigger_Handler__c rollup = rollupList[0];
if (rollup.npsp__Asynchronous__c != true) {
rollup.npsp__Asynchronous__c = true;
rollup.npsp__User_Managed__c = true;
update rollup;
}
}

To run this script, open the Developer Console, select "Debug" / "Open Execute Anonymous Window", paste the above code into the window and click "Execute",

Did this answer your question?