

That covers the most common ways we see flows making bad things happen to good deployments, and how Gearset's intelligent handling of flows will bring you one step closer to the holy grail of deployments working first time, every time.Following are the many tools available for Salesforce deployment like How Gearset helps: We detect attempted deletions of flow definitions and offer to remove those deletions from the deployment package for you.Īnd once again, we'll automatically include this fix. Insufficient access rights on cross-reference idĬause: This error is fairly general-purpose with a variety of possible causes, but in the instance we're interested in it's triggered by the deletion of a flow definition. This fix is enabled by default, so if you click straight through the deployment warnings, we'll include the referenced flow version in your deployment package automatically and your deployment should go ahead as intended. How Gearset helps: If Gearset detects that you're missing a referenced flow version, we'll show you a warning and offer to add the missing version into your deployment package for you.

This is surprisingly easy to do, usually by forgetting to include the new, active flow version in the deployment package. Invalid version number: Ĭause: You can't deploy a flow definition referencing a version of a flow that won't be present on the target after the deployment. That is, unless your flow definition references a specific version of the flow, which brings us on to the next error. We won't automatically add a version of the flow to the deployment package for you, because we don't want to make assumptions about which version(s) you'd like to deploy. How Gearset helps: We detect this change prior to deployment and show you a warning, advising you either to add a version of the flow to the deployment package or to remove the flow definition from the deployment. It's true that you can't deploy a new flow definition on its own directly through the API, but you can create a flow definition directly through the API if you're deploying any version of the corresponding flow along with it.

A flow definition is created automatically when you create a new flow versionĬause: This error is quite self-explanatory, although it can be misleading. You can't create a flow definition directly through the API. The warning and fix also apply to deleted active flows. The fix is to remove the changed active or obsolete flow from the deployment package, and we'll automatically apply this for you if you proceed with the deployment.
#ANT MIGRATION TOOL DESTRUCTIVE PACKAGE UPDATE#
We use this to detect whether you're trying to update an active or obsolete flow, and show you a warning with a suggested fix. How Gearset helps: Gearset retrieves additional metadata about your metadata ( metametadata, if you will!) to establish whether each flow version is either a draft, active or obsolete. The most common cause then, is usually when a flow has existed in a different state on both source and target, and then been activated on both independently. The version of the flow you're updating is active and can't be overwrittenĬause: This is theoretically quite difficult to trigger - it requires that an obsolete or active flow be different between source and target, and Salesforce won't allow you to change an obsolete or active flow via the UI. Thanks to feedback from some of our fantastic users, we've addressed the major challenges faced when deploying flows.

In fact, deployment success rate is one of our key metrics, and to that end we've built a deployment engine that identifies and flags or fixes potential problems with users' deployments before pushing the packages to Salesforce. One of our core tenets at Gearset is to make sure that your deployments succeed first time. Rest assured, you're not alone - there's a healthy amount of discussion around best practices for deploying flows via Ant and the metadata API in the usual corners of the internet, and deploying via Change Sets comes with its own sizeable list of recommendations and caveats.
