Forge Workflow Validator Deployment via REST API returns Invalid Request Payload or Update in Progress

Hi everyone,

I’ve developed a custom Forge-based Workflow Validator (static/ps-workflow-extention-linkedissue-validator) and I am now trying to automate its deployment across approximately 100 Jira Cloud workflows.

The Context: The app is fully functional. I can successfully add the validator to any workflow via the UI Workflow Editor, and it behaves exactly as expected during issue transitions. However, I need to scale this across 100+ workflows, and doing so manually is will take longer time. When I attempt to replicate the UI’s action using the REST API, I am hitting constant roadblocks.

The Setup:

  • Endpoint: POST /rest/api/3/workflows/update
  • Method: Attempting to inject the validator into the “Close” transition.

The Journey so far:

  • Initial Failures: I originally tried to use the ruleKey from the manifest directly, which resulted in Invalid Request Payload.
  • The “Forge Wrapper” Discovery: By inspecting browser network traffic while saving via the UI, I discovered that Forge rules must be wrapped in a forge:expression-validator key, with the extension ARI placed inside parameters.key.
  • Schema Sensitivity: Even with the “correct” structure (including the root statuses array and the workflow version object), the API is extremely sensitive to read-only fields.

The Current Blocker:

Despite matching the JSON structure seen in the browser’s developer tools, I am consistently receiving: {“errorMessages”:[“Other workflow updates are in progress. Check the workflow editor…”]}

This occurs even when no one is editing the workflow and all drafts have been discarded/published.

Current Payload Snippet -JSON:

{
“ruleKey”: “forge:expression-validator”,
“parameters”: {
“key”: “ari:cloud:ecosystem::extension/…/static/ps-workflow-extention-linkedissue-validator”,
“id”: “NEW_UUID”,
“config”: “”
}
}

Any advice from developers who have successfully automated Forge rule injection would be a lifesaver!

1 Like