Error envelope mapping (Hermes → Anthropic error shape) #11

Open
opened 2026-08-03 16:55:34 -07:00 by kalmiya · 0 comments
Owner

Kanban ticket: t_7b15fba2
Board: hermes-anthropic-api


Task t_7b15fba2: Error envelope mapping (Hermes → Anthropic error shape)
status: ready
assignee: -
workspace: scratch
max-retries: 2 (default)
created: 2026-08-03 16:53 by kalmiya

Body:
Translate every error path to Anthropic's error envelope.

Anthropic error response:

{
  "type": "error",
  "error": {
    "type": "<error_type>",  // "invalid_request_error" | "authentication_error" | "permission_error" | "not_found_error" | "rate_limit_error" | "api_error" | "overloaded_error"
    "message": "human-readable",
    "error": null  // optional nested
  }
}

HTTP status codes Anthropic uses:

  • 400: invalid_request_error
  • 401: authentication_error
  • 403: permission_error
  • 404: not_found_error
  • 409: rate_limit_error (some), api_error
  • 429: rate_limit_error
  • 500: api_error
  • 529: overloaded_error

Map every error returned by api_server.py._openai_error and the broader request path into this envelope. Don't keep OpenAI-shaped errors leaking out — anything currently producing {"error": {"message", "type", "code"}} needs a translator.

Events (1):
[2026-08-03 16:53] created {'assignee': None, 'status': 'ready', 'parents': [], 'tenant': None, 'workspace_kind': 'scratch', 'workspace_path': None, 'branch_name': None, 'project_id': None, 'skills': None, 'goal_mode': None, 'model_override': None, 'provider_override': None}

**Kanban ticket:** `t_7b15fba2` **Board:** `hermes-anthropic-api` --- Task t_7b15fba2: Error envelope mapping (Hermes → Anthropic error shape) status: ready assignee: - workspace: scratch max-retries: 2 (default) created: 2026-08-03 16:53 by kalmiya Body: Translate every error path to Anthropic's error envelope. Anthropic error response: ```json { "type": "error", "error": { "type": "<error_type>", // "invalid_request_error" | "authentication_error" | "permission_error" | "not_found_error" | "rate_limit_error" | "api_error" | "overloaded_error" "message": "human-readable", "error": null // optional nested } } ``` HTTP status codes Anthropic uses: - 400: invalid_request_error - 401: authentication_error - 403: permission_error - 404: not_found_error - 409: rate_limit_error (some), api_error - 429: rate_limit_error - 500: api_error - 529: overloaded_error Map every error returned by `api_server.py._openai_error` and the broader request path into this envelope. Don't keep OpenAI-shaped errors leaking out — anything currently producing `{"error": {"message", "type", "code"}}` needs a translator. Events (1): [2026-08-03 16:53] created {'assignee': None, 'status': 'ready', 'parents': [], 'tenant': None, 'workspace_kind': 'scratch', 'workspace_path': None, 'branch_name': None, 'project_id': None, 'skills': None, 'goal_mode': None, 'model_override': None, 'provider_override': None}
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kalmiya/hermes-anthropic-api#11
No description provided.