nullspace CLI invocation exits with one of the stable codes
below. Agents and scripts can branch on the exit code without parsing
output; in --json mode the failure body additionally carries a
machine-readable code (see the
error envelope).
Exit Codes
| Exit code | Name | Meaning |
|---|---|---|
| 0 | SUCCESS | success |
| 1 | GENERIC_FAILURE | generic failure |
| 2 | USAGE_ERROR | usage error |
| 3 | NOT_FOUND | not found |
| 4 | UNAUTHENTICATED | unauthenticated |
| 5 | PERMISSION_DENIED | permission denied |
| 6 | QUOTA_OR_RATE_LIMITED | quota or rate limited |
| 7 | CONFLICT | conflict |
| 8 | SANDBOX_RUNTIME_ERROR | sandbox runtime error |
How JSON Error Codes Map To Exit Codes
When a command fails, the machine-readable errorcode selects the
exit code. Exact mappings:
| Error code | Exit code |
|---|---|
not_found | 3 |
sandbox_not_found | 3 |
snapshot_not_found | 3 |
template_not_found | 3 |
template_resource_not_found | 3 |
missing_api_key | 4 |
unauthenticated | 4 |
unauthorized | 4 |
forbidden | 5 |
permission_denied | 5 |
volume_read_only | 5 |
capacity_exceeded | 6 |
file_upload_limit_exceeded | 6 |
quota_exceeded | 6 |
rate_limit_exceeded | 6 |
volume_limit_exceeded | 6 |
volume_quota_exceeded | 6 |
conflict | 7 |
incompatible_snapshot | 7 |
rebuild_required | 7 |
sandbox_not_ready | 7 |
snapshot_in_use | 7 |
upload_conflict | 7 |
volume_busy | 7 |
exec_failed | 8 |
exec_timeout | 8 |
timeout | 8 |
invalid_fields | 2 |
invalid_request | 2 |
invalid_response | 2 |
*_not_found→ 3 (not found)*_permission_denied→ 5 (permission denied)- codes containing
quotaorrate_limit→ 6 (quota or rate limited) *_conflict→ 7 (conflict)- anything else → 1 (generic failure)
Related
- Error Codes - the CLI JSON error envelope and edge/preview error anchors.
- API Error Catalog - machine-readable error
codes from the
ErrorResponseschema.