Skip to main content
Version:

Exit Codes

Consistent exit code contract

A consistent exit code contract applies across all syndicate commands (cli_command_reference.md §18):

CodeMeaning
0Success
1General error (execution failure, unexpected error)
2Denied (policy denial, approval denial)
3Interrupted (operator-initiated or timeout)
4Governance mode rejected (missing reason or prohibited suspended mode)
5Control plane unavailable
6Authentication or identity failure
7Validation failure (policy schema, specialist definition, etc.)
8Not found (specified session, permit, specialist, etc. does not exist)

Workflow-specific exit codes

syndicate run uses the following exit codes (cli_command_reference.md §6.3):

CodeMeaning
0Workflow completed successfully
1Workflow failed (execution error)
2Workflow denied (policy or approval denial)
3Workflow interrupted (operator or timeout)
4Governance-suspended mode rejected at session start
5Control plane unavailable

Audit verification exit codes

syndicate audit verify exits with code 0 if the chain is intact, non-zero if any integrity violation is detected. The first detected violation is reported (cli_command_reference.md §8.4).

Failure behavior on exit

Control plane unavailable (code 5)

If the CLI cannot reach the control plane at startup (cli_command_reference.md CLI-FH-001):

  • emit a clear error message identifying the failure as a control plane connectivity issue
  • exit with code 5
  • do not attempt any governed operation

Audit write failure (code 1)

If a mutating command cannot confirm that its audit event was durably written (cli_command_reference.md CLI-FH-003):

  • do not complete the mutation
  • report the audit write failure to the operator
  • exit with code 1

This implements the audit failure behavior from the product system definition — audit write failure produces a hard block.

Interrupted mutating command

If a mutating command is interrupted (SIGINT, SIGTERM) before completion (cli_command_reference.md CLI-FH-004):

  • do not leave the control plane in an indeterminate state
  • emit a diagnostic message describing the interrupted operation
  • the control plane's optimistic concurrency model handles rollback of partial mutations

Exit code invariants

  • INV-CLI-008 — Exit codes must be consistent across commands. Exit code 0 means success; exit code non-zero means a distinct failure class.