Error Codes

Common HTTP status codes, error response format, and troubleshooting.

Error Response Format

All error responses follow a consistent JSON structure:

{
  "code": "ERROR_CODE",
  "message": "Human-readable description of what went wrong.",
  "details": {}
}
FieldTypeDescription
codestringMachine-readable error code (e.g., NOT_FOUND, VALIDATION_ERROR)
messagestringHuman-readable explanation
detailsobjectOptional additional context (varies by error type)

HTTP Status Codes

400 Bad Request

The request is malformed or contains invalid parameters.

{
  "code": "INVALID_STATUS_TRANSITION",
  "message": "Cannot transition from 'suggested' to 'implemented'. Valid transitions: accepted, rejected."
}

401 Unauthorized

Missing or invalid authentication token.

{
  "code": "UNAUTHORIZED",
  "message": "Invalid or expired authentication token."
}

402 Payment Required

Usage limit exceeded for the current plan.

{
  "code": "USAGE_LIMIT_EXCEEDED",
  "message": "Synthesis limit reached for your plan.",
  "details": {
    "usage_type": "synthesis",
    "current": 3,
    "limit": 3,
    "plan": "trial",
    "upgrade_required": true
  }
}

403 Forbidden

The authenticated user does not have permission for this action.

{
  "code": "FORBIDDEN",
  "message": "You do not have access to this workspace"
}

404 Not Found

The requested resource does not exist.

{
  "code": "NOT_FOUND",
  "message": "Workspace 550e8400-e29b-41d4-a716-446655440000 not found"
}

409 Conflict

A conflicting operation is already in progress.

{
  "code": "SYNTHESIS_IN_PROGRESS",
  "message": "Synthesis is already running for this workspace. Please wait."
}

413 Payload Too Large

Uploaded file exceeds the size limit (100 MB).

{
  "code": "FILE_TOO_LARGE",
  "message": "File size (150 MB) exceeds 100 MB limit"
}

415 Unsupported Media Type

Uploaded file type is not allowed (executables, scripts).

{
  "code": "UNSUPPORTED_FILE_TYPE",
  "message": "Executable and script files are not allowed."
}

422 Unprocessable Entity

The request is well-formed but contains semantic errors.

{
  "code": "SOURCES_NOT_READY",
  "message": "2 source(s) are not yet processed: User Interviews, Support Logs. Wait for processing to complete before synthesizing."
}

429 Too Many Requests

Rate limit exceeded.

{
  "code": "RATE_LIMIT_EXCEEDED",
  "message": "Rate limit exceeded. Retry after 12 seconds.",
  "details": {
    "retry_after": 12
  }
}

500 Internal Server Error

An unexpected error occurred on the server.

{
  "code": "SYNTHESIS_FAILED",
  "message": "Synthesis failed: Agent timed out after 300 seconds."
}

502 Bad Gateway

An upstream service (Stripe, GitHub, Linear) returned an error.

{
  "code": "BAD_GATEWAY",
  "message": "Failed to create Stripe customer"
}

503 Service Unavailable

A required service is not configured or unavailable.

{
  "code": "AGENT_NOT_CONFIGURED",
  "message": "AI agent is not configured. Please check ANTHROPIC_API_KEY."
}

Was this helpful?