Loading

Troubleshoot Renewal Opportunity Creation Issues in Salesforce CPQ

Julkaisupäivä: Jan 6, 2026
Kuvaus

When generating renewals using the Renewal Forecast checkbox on the Contract, there are situations where this feature may produce unexpected results such as users being unable to create a renewal opportunity or the records are immediately deleted. When the Renewal Forecast checkbox is set to True, the feature automates the creation of a renewal opportunity. This opportunity should hold all renewable products that live on the primary quote of your original opportunity. The Renewal Forecast triggers the following sequence of events: 

  1. Creates a new Renewal Opportunity
  2. Creates a temporary "ghost" Quote
  3. Generate temporary “ghost” Quote Lines
  4. Executes calculations on the Quote and Quote Lines
  5. Syncs products from Quote Lines to Opportunity Products
  6. Deletes temporary “ghost” Quote and Quote Lines

      For more information on the Renewal Forecast functionality, see Renew a Contract with Salesforce CPQ.
 

Overview

There are a few reasons that you may not see the Opportunity Products, or even the Renewal Opportunity, be created. Follow the steps below to troubleshoot unexpected behaviors when creating records from the Renewal Forecast feature. 

Ratkaisu

Deep Dive

For a more granular understanding of various considerations that should be taken into account when troubleshooting the creation of Renewal Opportunities, we have provided additional notes below:  

  • It is possible to carry one-time products that exist within bundles onto the Contract by setting the “Preserve Bundle Structure” field to True.
    • This can be set at the package-level, Account-level, or Contract-level. Changes to these settings are not retroactive, so existing Contracts will not see these changes. Changes to historical data can be completed manually.  
    • The value selected for Preserve Bundle Structure will flow from CPQ package settings to newly created Accounts, which will then default the value to that Account's Contract field.
    • Preserve Bundle Structure settings can also be set at the Account or Contract level. Doing so will override the previously established package-level setting.
  • You can determine if a product configured as renewable by referring to the following fields on the Quote Lines:
    • Subscription Pricing: If this field is blank, the product will not generate a subscription
    • Subscription Type: If this field does not equal “Renewable”, it will not create renewal lines
  • It may take time for the Contract to process related Quote Lines. Refresh the Contract page to determine whether or not Quote Lines have been converted into Subscriptions on your Contract record. 
  • Renewal Opportunities are created from what’s called a “ghost Quote”. This is essentially a Quote that is never turned into a true record but the data is required in order to create Opportunity Products for the Renewal Opportunity. The ghost Quote may temporarily be visible in the UI. Do not select or try to update this Quote.  
    • Any price rules or additional automation you have built on the Quote object will fire on the creation of this temporary ghost Quote. If there is any automation that you do not want to run on Renewal, make sure to update the conditions as needed. 
  • Renewal Opportunities also tend to take time to process. Do not try to make changes to a Renewal Opportunity while it is still processing. If the Renewal Opportunity is still processing, refresh the page until the ghost Quote is gone and Opportunity Products have successfully generated on your Renewal Opportunity.
  • If diagnosing a Contract generation error, you can navigate to APEX jobs from Setup. As long as you have “Contract in Foreground” set to False in your CPQ package, APEX jobs will identify contract generation failure. If “Contract in Foreground” is set to True, the Contract will present an error message on the page that you are contracting from for diagnostic purposes.
  • Opportunity/Quote creation may fail if there are validations that prevent the creation of either records.
  • Ensure that the contract has the Renewal Term populated
  • Ensure no ParentId lookup values are invalid in the Account Hierarchy. This will throw an error on Renewal Creation:
    • Error while loading Contracted Prices:Cannot read properties of undefined (reading 'ParentId')
  • When multiple Contracts have 'Master Contract' set to true without a Renewal Opportunity populated and a child Contract is Renewed that would pull in their data, Renewal will hit the error:
    • Cannot renew if multiple contracts are set as Master Contract. Make sure only one contract is set as Master before renewing.
  • If the renewal is stuck with an 'In Progress' status, it could be due to the calculation service being unable to process the request to the Heroku server, or a lack of service connection to Heroku. Please refer Salesforce CPQ Authorize New Calculation Service best practice or Improve Security by Enabling Integration User for Calculations to proceed further. 
Knowledge-artikkelin numero

000390198

 
Ladataan
Salesforce Help | Article