Errors and limits
HTTP status codes, quota, and admission.
| Code | Meaning |
|---|---|
| 401 | Missing or invalid X-Api-Key / Bearer |
| 400 | Validation (unknown catalog agent on Agent Runtime, bad harbor_extensions key, or invalid opencode_config — see OpenCode flags) |
| 429 | L2 project quota exceeded (SANDBOX_L2_SCHEDULER=quota + Redis) |
| 503 | Upstream L3 unavailable or credential plane down |
Quota
Set SANDBOX_REDIS_URL (local: redis://sandbox-redis:6379/0 in compose). Gateway and harbor share ProjectQuotaScheduler when SANDBOX_L2_SCHEDULER=quota.
Harbor job failures
Poll GET /sandbox/harbor/v2/jobs/{job_id} — status: failed includes error detail. Check worker logs for subprocess/Harbor CLI output.