Workflow Intent Reason Codes
Workflow intent reason codes use the workflow_intent.* prefix. They appear on workflow API conflicts, declaration-time rejections, and permit decisions associated with a workflow.
| Reason code | When it fires | Decision effect |
|---|---|---|
workflow_intent.declaration_exceeds_budget_cap | POST /v1/workflows projects declared workflow cost above the project’s monthly cap. | Declaration is rejected before workflow calls run. |
workflow_intent.max_calls_exceeded | A governed request references an active workflow whose attributed call count has reached max_calls. | Request is denied before provider dispatch. |
workflow_intent.expected_calls_exceeded | A governed request moves the workflow above expected_calls while still below max_calls. | Request can still be allowed; this is an informational drift signal. |
workflow_intent.unknown_or_inactive | A governed request references a workflow id that does not exist in the project or is no longer active. | Request is denied. This does not count in the workflow counter. |
workflow_intent.idempotency_conflict | POST /v1/workflows reuses an existing workflow_id with a different canonical intent. | API returns 409 Conflict; no new declaration is created. |
workflow_intent.amendment_version_conflict | POST /v1/workflows/{workflow_id}/amend sends an if_match_version that does not match the current workflow version. | API returns 409 Conflict; the caller should re-read before retrying. |
Counting behavior
The workflow counter increments for:
- allowed governed requests associated with the workflow
- denials with
workflow_intent.max_calls_exceeded
Denials for unrelated reasons do not count toward the workflow. For example, workflow_intent.unknown_or_inactive, policy denials, pricing failures, and authentication failures do not advance the counter.
Counting workflow_intent.max_calls_exceeded denials prevents a caller from repeatedly retrying at the cap without producing audit evidence for those attempts.
Related pages
Last updated on Edit this page on GitHub