PandaStack

Errors

Error envelope and common error codes.

All HTTP errors follow a consistent JSON envelope:

{
  "error": {
    "code": "sandbox.not_found",
    "message": "Sandbox sb_abc123 does not exist",
    "request_id": "req_xyz",
    "details": {}
  }
}
HTTPCode prefixMeaning
400validation.*Invalid request shape or parameter
401auth.*Missing or invalid credentials
403auth.forbidden, quota.exceededAuthenticated but not allowed
404*.not_foundResource does not exist
409*.conflictResource state conflict (e.g. delete while booting)
429rate_limit.*Too many requests
500internal.*Bug in PandaStack — please report
503capacity.unavailableNo agent capacity for placement

Common codes

CodeMeaning
auth.invalid_tokenJWT/API key invalid or expired
auth.token_revokedToken was explicitly revoked
auth.workspace_mismatchToken doesn't have access to the requested workspace
sandbox.not_foundSandbox ID doesn't exist (or not in your workspace)
sandbox.invalid_stateOperation not allowed in current state (e.g. exec on a paused sandbox)
sandbox.boot_failedFirecracker boot timed out or kernel panic'd
template.not_foundTemplate name unknown
template.build_failedTemplate image build failed (see details.log_url)
volume.in_useTrying to delete a volume that's still attached
quota.sandboxes_exceededHit workspace concurrent-sandbox limit
quota.vcpu_exceededHit workspace vCPU limit
capacity.unavailableAll agents at capacity — try a different region
rate_limit.apiToo many API calls per minute

Retrying

Errors with retryable: true in the details are safe to retry with exponential backoff:

{
  "error": {
    "code": "capacity.unavailable",
    "message": "No agent capacity available",
    "details": { "retryable": true, "retry_after_sec": 5 }
  }
}

Other errors should not be blindly retried.

Reporting bugs

Include request_id from any failed response when filing an issue at github.com/pandastack/pandastack/issues.

On this page