This article explains why ExpressionSetDefinitionVersion and Pricing Procedure deployments fail through Salesforce CLI and Workbench while succeeding through Change Sets, and how to resolve the failure. Customers describe this as: "unable to deploy ExpressionSetDefinitionVersion using workbench but only changeset is working for this component", "expressionsetdefinition versions are failing too during deployment alongside the pricing procedure label conflict", and "versionString error when trying to downgrade" a Flow from sandbox to production after a release wave. The deployment returns one of the following errors verbatim: "You can't update the expression set version <Name> V1 because it's active. Deactivate it and try again", "This Expression Set Version already exists in Active state, Please create a new version and try again", "You can't change the executionScale of an expression set", "Couldn't find dependent components : {DECISION_MATRIX=[...]}", "This field apiVersion can't be '66'. Enter a different value and try again", or a Flow versionString error when the sandbox is on a later Salesforce release than production. Affected components include ExpressionSetDefinition [ExpressionSetDefinition], ExpressionSetDefinitionVersion [ExpressionSetDefinitionVersion], CalculationProcedure (Pricing Procedure), DecisionMatrixDefinition / DecisionMatrixDefinitionVersion, and Flow when the source org is on a newer release wave than the target org. This applies to Salesforce Revenue Cloud (Core) on Enterprise, Unlimited, and Developer editions with Salesforce Pricing or Business Rules Engine enabled, in Summer '24 and later releases.
Follow the cause-specific steps below. Salesforce Pricing requires metadata to be migrated in this order: context definitions, decision tables, pricing recipes, then expression sets / pricing procedures.
Cause 1: Target expression set version is Active
1. In the target org, navigate to Setup > Salesforce Pricing > Expression Sets, and open the affected Expression Set Definition [ExpressionSetDefinition].
2. Open the Active version and click Deactivate so the Status [Status] field becomes Draft or Inactive.
3. Re-run the deployment: sf project deploy start -m "ExpressionSetDefinition" -m "ExpressionSetDefinitionVersion" --target-org <alias>.
4. After deployment completes, reactivate the version in the target org.
Cause 2: Missing dependencies (context definitions, decision matrices, decision tables)
1. In the source org, identify every ContextDefinition [ContextDefinition], DecisionMatrixDefinition [DecisionMatrixDefinition], and DecisionTable referenced by the failing pricing procedure or expression set.
2. Deploy components in this exact order: ContextDefinition first, then DecisionMatrixDefinition and DecisionMatrixDefinitionVersion, then DecisionTable, then ExpressionSetDefinition and ExpressionSetDefinitionVersion, and finally CalculationProcedure.
3. After deploying decision matrices, navigate to Setup > Decision Matrices in the target org and click Refresh on each migrated matrix to load row data.
4. Activate at least one version of each decision matrix before deploying the pricing procedure that references it — a pricing procedure cannot be migrated as an expression set if the referenced decision matrix has no active version.
Cause 3: executionScale or rank mismatch between source and target
1. In the target org, open the existing Expression Set Definition and note the executionScale [ExecutionScale] value.
2. In the source org, set the executionScale on the Expression Set Definition to match the target org exactly. The executionScale of an existing expression set cannot be changed by deployment.
3. If the error is "Element {http://soap.sforce.com/2006/04/metadata}rank invalid at this location in type DecisionMatrixDefinitionVersion", deploy via Workbench using a package.xml that targets the API version supported by the target org (the rank element was added in a later API version).
4. Re-run the deployment.
Cause 4: Flow versionString or apiVersion mismatch after a release wave
1. Identify the source and target org Salesforce release versions by navigating to Setup > Company Information in each org.
2. If the source (sandbox) is on a later release than the target (production), do not attempt to downgrade the versionString — the deployment will fail with "versionString error" or "This field apiVersion can't be '66'. Enter a different value and try again".
3. Edit the Flow [Flow] metadata file and set the apiVersion element to the highest value supported by the target org (for example, change apiVersion from 66 to the production-supported value).
4. Remove any fields or elements introduced in the later release (for example, dayOfMonthToRun on scheduled flows) that are not yet supported in the target org.
5. Wait for the target org to receive the same release wave, then redeploy without modification.
Cause 5: OmniStudio component error "isManagedUsingStdDesigner invalid at this location in type OmniScript"
1. Open the affected OmniScript or FlexCard meta.xml file.
2. Remove the isManagedUsingStdDesigner element. This element was introduced in API v64 and is not recognised by orgs still on v63.
3. Redeploy the OmniStudio components separately from non-OmniStudio components — deploying setup objects (FlexiPage, PermissionSet, CustomField) together with non-setup OmniStudio entities (OmniProcess, OmniUICard) is not supported.
Cause 6: Apex test class fails with "Invalid type: RateCard" during deployment validation
1. Confirm the target org has the same Revenue Cloud features enabled that introduce the RateCard [RateCard] standard object.
2. Navigate to Setup > Revenue Cloud Setup and enable Usage & Ratings (which provisions RateCard) in the target org before deploying classes that reference it.
3. Redeploy the Apex test classes after the RateCard object exists in the target org.
Confirm the issue is resolved by re-running the original deployment command (sf project deploy start -m "ExpressionSetDefinitionVersion" --target-org <alias> or the equivalent Workbench deployment) and verifying that all components show Status: Succeeded with zero component failures.
005385138

We use three kinds of cookies on our websites: required, functional, and advertising. You can choose whether functional and advertising cookies apply. Click on the different cookie categories to find out more about each category and to change the default settings.
Privacy Statement
Required cookies are necessary for basic website functionality. Some examples include: session cookies needed to transmit the website, authentication cookies, and security cookies.
Functional cookies enhance functions, performance, and services on the website. Some examples include: cookies used to analyze site traffic, cookies used for market research, and cookies used to display advertising that is not directed to a particular individual.
Advertising cookies track activity across websites in order to understand a viewer’s interests, and direct them specific marketing. Some examples include: cookies used for remarketing, or interest-based advertising.