Start a conversation

Orchestrator R37: Cancelling “Perform Install” via Case Status “Cancelled” Still Allows Downstream Case Creation

Contents

Overview

After upgrading the cspofa (orchestrator) package to R37, you may observe that cancelling the “Perform Install” step by setting the related Salesforce Case Status to Cancelled does not stop orchestration. Instead, downstream orchestration actions can still run and create additional cases (for example, Manage Subscription and Courtesy Call).

This occurs when Cancelled is treated as a closed status in Salesforce (i.e., Case.IsClosed = true). In R37, “Create Case” step completion logic can treat a “Cancelled” case as completed/closed, allowing the template’s existing dependency logic to continue.


Note: the point of this article is that in the new versions, Orchestrator only checks IsClosed flag for the Create Case step completion.

Case.IsClosed == true

Solution

Issue / Symptom (behavioral)

You may see orchestration continue after you “cancel” a Perform Install step (implemented by updating the related Case Status to Cancelled), resulting in downstream actions executing and additional cases being created (for example: Manage Subscription, Courtesy Call).

Prominent symptom statement:

  • "On cancellation of Perform Install step, the cases are still getting created like manage subscription and courtesy call cases."

Environment / Version indicators

  • Observed after upgrading cspofa (orchestrator) to R37.
  • Version comparison identified:
    • Older: v1.228.3
    • Newer (R37): v33.6.16

What changed (root cause)

In the newer Orchestrator package, the logic that marks “Create Case” orchestration steps as complete changed:

  • Older behavior (v1.228.3): completion condition effectively aligned to:
    Case.Status == 'Closed'
  • Newer behavior (v33.6.16 / R37): completion condition aligned to:
    Case.IsClosed == true

If your Salesforce configuration treats Cancelled as a closed status (meaning IsClosed becomes true), then setting a case to Cancelled can cause the Orchestrator “Create Case” step to be marked Complete, and the orchestration can proceed to the next steps.

Important: This is expected behavior in the newer package (Create Case steps complete when the case is considered closed via IsClosed), not a template defect by itself.

Why downstream steps still run

Downstream steps execute based on the orchestration template’s configured conditions and dependencies. If those steps do not explicitly check for cancellation (for example, a condition checks process history content and a dependency is configured to execute on the False branch), then the steps can execute exactly as configured once the “Create Case” step is considered complete.

How to Diagnose

  1. Open the relevant orchestration instance (Process Visualiser / orchestration view in your org).
  2. Identify the Perform Install step and the Create Case step(s).
  3. When the related Case is set to Cancelled, check whether the orchestration step shows Complete (rather than being halted/cancelled at orchestration level).
  4. Confirm whether the “Cancelled” status is considered closed in your org:
    • In Salesforce Setup, review the Case Status values and whether Cancelled is configured as a closed status (this drives IsClosed).

Mitigation Options

Option 1 — Ensure “Cancelled” does not set IsClosed = true (stop treating Cancelled as closed)

If the desired outcome is that cancellation should not complete the “Create Case” step and should prevent downstream orchestration, adjust your Case Status configuration so that setting Status = Cancelled does not result in IsClosed = true.

High-level steps:

  1. In Salesforce Setup → Case → Support Processes / Status configuration.
  2. Locate the Case Status value used for Cancelled.
  3. Change configuration so “Cancelled” is not a closed status (org-specific configuration).
  4. Retest the orchestration scenario.

Expected result: Cancelling the case does not satisfy IsClosed == true, so the “Create Case” completion behavior differs and downstream steps are less likely to proceed purely due to closure semantics.

Option 2 — Add an explicit orchestration branch after “Create Case” based on Case Status

If you must keep “Cancelled” as a closed status in Salesforce (i.e., IsClosed must remain true), implement orchestration logic to stop/reroute when the Case Status is Cancelled.

High-level steps:

  1. In the orchestration template, add a condition step immediately after the “Create Case” step completes.
  2. Condition logic example (adapt to your fields/logic):
    • IF Case.Status == 'Cancelled' → route to a “Stop / End / No-op” path (or a path that does not create further cases)
    • ELSE → continue to normal downstream steps (Manage Subscription, Courtesy Call, etc.)
  3. Publish the updated template version and test.

Expected result: Even if “Create Case” completes (because IsClosed is true), the process explicitly prevents further case creation when the status is Cancelled.

Not recommended

  • Rolling back to a previous Orchestrator package version is unsupported and not recommended.

Verification Checklist

After applying either mitigation:

  1. Create a test record and run the orchestration through Perform Install.
  2. Set the related Case Status to Cancelled (the same way your business process does).
  3. Verify:
    • The Orchestrator step progression matches expectations (does not proceed into downstream steps when cancelled).
    • No unexpected “Manage Subscription” / “Courtesy Call” cases are created after cancellation.
  4. Repeat in at least one non-production environment before scheduling production deployment.

Frequently Asked Questions

1. How do I know I’m hitting this exact issue?
You are likely affected if, after upgrading cspofa (orchestrator) to R37, setting the related Case Status to “Cancelled” still results in the Orchestrator “Create Case” step being marked Complete and the orchestration continues to downstream steps (e.g., Manage Subscription, Courtesy Call), creating additional cases.
2. Is this a defect in the orchestration template?
The investigated scenarios showed downstream steps executing according to the existing template dependencies/branches. The core behavior change was tied to how the package determines “Create Case” completion (using Case.IsClosed in newer versions). If the template does not check for “Cancelled”, it may continue by design once the case is considered closed.
3. What version change caused the behavior shift?
A version comparison identified a change between an older Orchestrator version (e.g., v1.228.3) and the newer R37 version (e.g., v33.6.16), where the completion condition moved from checking Status == 'Closed' to IsClosed == true.
4. What’s the simplest mitigation if we want cancellation to stop orchestration?
Ensure that your “Cancelled” Case Status does not set IsClosed = true (i.e., do not configure Cancelled as a closed status), or add an explicit orchestration branch after “Create Case” that stops/reroutes when Case.Status == 'Cancelled'.
5. We must keep “Cancelled” as a closed status in Salesforce. What should we do?
Implement an explicit decision/branch in the orchestration template after the “Create Case” step completes. Route to a non-progressing path when Case Status is Cancelled, and only proceed to downstream steps when the status is not Cancelled.
6. How do we verify the fix worked?
Re-run the orchestration in a non-production org, cancel via your normal process (set Case Status = Cancelled), then confirm that downstream steps do not execute and that no new “Manage Subscription” / “Courtesy Call” cases are created after cancellation.
Choose files or drag and drop files
Was this article helpful?
Yes
No
  1. Matej Storga

  2. Posted
  3. Updated

Comments