Loading

CPQ: Amendment or Renewal Fails with “Cannot Read Properties of Null (Reading 'lineVO')” or Missing SBQQ__RootId__c

Publish Date: May 28, 2026
Description

This issue occurs when Salesforce CPQ cannot rebuild the original bundle hierarchy during amendment or renewal processing because related Subscription or Asset records contain incomplete or inconsistent bundle relationship data.

For bundled products, the Root ID field (SBQQ__RootId__c) must reference the parent bundle Subscription or Asset record. Related bundle fields such as SBQQ__RequiredById__c, SBQQ__ProductOption__c, SBQQ__OptionLevel__c, and SBQQ__RequiredBySubscription__c must also remain consistent across all bundle components.

This article covers bundle data integrity issues only and does not apply to errors caused by missing Subscription Pricing or Subscription Type configuration.

Resolution

Review and correct the bundle relationship fields on the related Subscription or Asset records.

Cause 1: Bundle child record is missing a parent reference

Run the following query for the affected Contract:

SELECT Id, Name, SBQQ__RequiredById__c, SBQQ__RootId__c,
SBQQ__ProductOption__c, SBQQ__OptionType__c,
SBQQ__OptionLevel__c
FROM SBQQ__Subscription__c
WHERE SBQQ__Contract__c = '[ContractId]'

Check for Subscription records where bundle fields are populated but SBQQ__RequiredById__c is blank.

  • If the record is part of a bundle:

    • Set SBQQ__RequiredById__c to the parent Subscription Id

    • Set SBQQ__RootId__c to the top-level bundle parent Id

  • If the record is not part of a bundle:

    • Clear the bundle-related fields

Save the records after making changes.

Cause 2: SBQQ__RootId__c is incorrect or missing

Using the same query, check for records where:

  • SBQQ__RootId__c is blank

  • SBQQ__RootId__c matches the same record Id

  • SBQQ__RootId__c points to the wrong bundle record

Update SBQQ__RootId__c so all bundle components point to the same top-level bundle parent record.

Cause 3: Asset bundle fields are incomplete

Run:

SELECT Id, Name, SBQQ__RootId__c,
SBQQ__RequiredByAsset__c,
SBQQ__RequiredBySubscription__c,
SBQQ__ProductOption__c
FROM Asset
WHERE AccountId = '[AccountId]'
AND SBQQ__ProductOption__c != null

Verify that Asset records have the correct bundle relationship values.

If an Asset should not be part of a bundle, clear the bundle-related fields.

Cause 4: Failed renewal job still exists

Run:

SELECT Id, SBQQ__RecordId__c, SBQQ__JobStatus__c
FROM SBQQ__RecordJob__c
WHERE SBQQ__RecordId__c = '[ContractId]'

Delete any failed Record Job records related to the Contract, then retry the amendment or renewal.

Verify the Fix

After updating the records:

  1. Open the Contract

  2. Uncheck and save Renewal Quoted

  3. Run Renewal Quoted or Amend again

Knowledge Article Number

005385163

 
Loading
Salesforce Help | Article