When Salesforce CPQ attempts to amend a contract, it relies on a very specific set of fields on:
Contract
Subscription
Asset (for asset-based models)
Quote Line (for amendment and renewal linkage)
If mandatory amendment fields are missing, CPQ's amendment engine will throw errors — most commonly:
“Attempt to de-reference a null object”
This happens because CPQ expects certain relationships and data points that do not exist in legacy-migrated records unless populated correctly.
✔ Why C is the correct answerWhen migrating historical Contracts and Subscriptions, CPQ requires certain fields to be populated, such as:
Account
StartDate
EndDate
Contract Number
Pricebook2Id
Contracted = TRUE
ContractId
Product2Id
Quantity
StartDate
EndDate
ListPrice
SalesPrice
SubscriptionType
Status = Active
TermStartDate
TermEndDate
Most importantly:
OriginalContractedListPrice
OriginalContractedSalesPrice
OriginalQuantity
OrderProductId (for order-based renewals)
AssetId (required depending on renewal model)
Contract Required FieldsSubscription Required FieldsIf any of these fields are missing or incorrectly mapped, the amendment engine fails.
CPQ amendment logic does not require a source quote line for legacy migrations, nor does it block amendments on migrated data if all required fields are present.
Thus C is the only answer consistent with CPQ documented behavior.
❌ Why the other answers are wrongA. Migrated contracts and subscriptions cannot be amended using Salesforce CPQIncorrect.
Salesforce CPQ fully supports amendment of migrated contracts/subscriptions as long as the required data is populated.
B. Amendment requires asset-based renewal methodIncorrect.
Legacy migrations can use either:
Contract-Based Renewal, or
Asset-Based Renewal
There is no requirement to switch to asset-based renewal.
D. Legacy data missing lookup to source quote lineIncorrect.
A lookup to the original Quote Line (SBQQ__QuoteLine__c) is not required for amendments.
It is only needed to support:
Contracted pricing logic reuse
Certain renewal pricing behaviors
Some reporting use cases
Missing this field does not block amendments and does not cause this error.
Submit