Skip to content

Command Palette

Search for a command to run...

Reference

Exit codes

Stable, category-scoped exit codes you can rely on in scripts and automation.

The contract

Exit codes are part of the CLI's script-facing contract: the same category always maps to the same exit code. Automation can branch on the failure mode without parsing stderr.

Exit code table

ExitCategoryTypical codes
0Success-
1Generic failureUNKNOWN, SERVER_ERROR, ENCRYPTION_ERROR, plain errors
2Invalid usage / argumentsINVALID_ARGUMENT, VALIDATION
10AuthenticationUNAUTHENTICATED, INVALID_CREDENTIALS, SESSION_EXPIRED
11PermissionPERMISSION_DENIED
12Not foundNOT_FOUND, VERSION_NOT_FOUND, ROLLBACK_TARGET_NOT_FOUND
20BuildBUILD_FAILED, BUILD_TIMEOUT, TOOLCHAIN_NOT_FOUND, UNSUPPORTED_PROJECT
21DeployDEPLOY_FAILED, INSTANCE_START_FAILED, HEALTH_CHECK_FAILED, DEPLOY_LOCKED
22RollbackROLLBACK_FAILED
23Rollback verification failed/cancelledROLLBACK_VERIFY_FAILED
24Deploy failed and automatic rollback failedAUTO_ROLLBACK_FAILED (state degraded - manual intervention required)
30NetworkCONNECTION_ERROR, PORT_UNAVAILABLE
40ConfigurationCONFIGURATION_ERROR
50DockerDOCKER_ERROR
60TimeoutTIMEOUT
70EncryptionENCRYPTION_ERROR

Examples

Terminal
# App not found -> exit 12phelix status no-such-appecho $?   # 12 # Missing required argument -> exit 2phelix statusecho $?   # 2 # Rollback executed but verification window failed -> exit 23phelix rollback myapp --to v7 --verify 30secho $?   # 23 (execution succeeded; verification failed)

Debugging failures

Run any command with --debug to render the complete error chain on stderr - normal mode bounds it to the first few wrapped layers; --debug lifts that cap. Rendered strings are always run through secret redaction, so debug output never discloses keys, tokens, or encrypted values.