ヘルプ Top Getting Started MCP セットアップ Purple Red Blue Green Auth ユースケース Tools Errors Pricing トラブルシュート

Help / Error envelope

Error envelope 仕様

すべての REST / MCP エンドポイントは、エラー時に共通の envelope を返します。error_code は agent が自動 retry / fallback を判定するための機械可読 enum です。

共通エラー形式

HTTP/1.1 429 Too Many Requests Retry-After: 12 Content-Type: application/json { "detail": "Rate limit exceeded", "error_code": "RATE_LIMITED", "category": "transient", "retry_after_seconds": 12, "suggested_action": "exponential_backoff" }

categorypermanent / transient / unauthorized / budget_exceeded のいずれか。suggested_action は agent への hint(refresh_token / top_up_credit / exponential_backoff / fix_request_payload)。

主な error_code と retry semantics

error_codeHTTP意味retry semantics
VALIDATION_ERROR400 / 422request body / query parameter のバリデーション失敗。detail に該当フィールド情報。retryable: false(修正必要)
UNAUTHORIZED401 / 403token 無効 / 期限切れ / scope 不足。codens-mcp login で再認証。retryable: true(再ログイン後)
CREDIT_INSUFFICIENT402credit 残高不足。Pricing ページ または Auth Codens のダッシュボードから top up。retryable: false
RESOURCE_NOT_FOUND404repo / PRD / task / workflow run など対象リソースが存在しない / 別 org の所有。retryable: false
RATE_LIMITED429rate limit 超過。Retry-After ヘッダ / retry_after_seconds を respect。retryable: true(指数バックオフ)
INTERNAL_ERROR500 / 503サーバ側の予期せぬエラー。detail と request ID を含めて support に連絡。retryable: true(短い backoff)
IDEMPOTENCY_CONFLICT409同じ Idempotency-Key が異なる payload で再送された。retryable: false(key を変更するか元 payload に揃える)
JWT_EXPIRED / JWT_INVALID / JWT_REPLAYED401service 間 JWT の検証失敗。Auth Codens から token を取り直す。retryable: true(再認証後)
ORG_NOT_LINKED_TO_AUTH / ORG_NOT_FOUND403 / 404cross-service で渡した organization_id が当該サービスに存在しない / link されていない。organization_id 省略推奨(credentials から自動解決される)。retryable: false
SERVICE_DISABLED403該当 org でそのサービスが無効化されている。retryable: false

Cross-service の organization_id 注意

Red / Blue / Green / Purple は各サービスに独立した organization_id を持ちます。あるサービスで取得した org ID を別サービスに渡すと UNAUTHORIZED / ORG_NOT_FOUND になります。codens-mcp v0.7.5 以降は organization_id を省略すれば各サービスの /api/v1/auth/me から自動解決されるため、明示的に渡す必要はありません。