Skip to Content
Workflow IntentReason Codes

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 codeWhen it firesDecision effect
workflow_intent.declaration_exceeds_budget_capPOST /v1/workflows projects declared workflow cost above the project’s monthly cap.Declaration is rejected before workflow calls run.
workflow_intent.max_calls_exceededA governed request references an active workflow whose attributed call count has reached max_calls.Request is denied before provider dispatch.
workflow_intent.expected_calls_exceededA 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_inactiveA 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_conflictPOST /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_conflictPOST /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.

Last updated on Edit this page on GitHub