エラーコードリファレンス¶
📖 概要¶
agtcloud システムは、開発者が問題をすばやく特定・解決できるよう、包括的なエラーコード体系を提供します。
エラーコードは次の 3 つのカテゴリに分類されます。
- 上流ステータスコード:OpenAI や Anthropic などの上流プロバイダから返されるエラーコードやステータス情報
- タスクステータスコード:Midjourney 画像生成など、非同期タスク処理に関するステータスコード
- 内部エラーコード:New API 内部の各処理段階で発生するエラーコード
上流ステータスコード¶
エラーコード一覧¶
| HTTP ステータスコード | エラー種別 | 透過レベル | 中国語説明 | 英語説明 | 代表的な上流エラーコード | 代表的な上流メッセージ | New API の処理方法 | クライアント受信例 |
|---|---|---|---|---|---|---|---|---|
| 401 | upstream_error | 完全透過 | 上游鉴权失败 | Upstream authentication failed | invalid_api_key / invalid_request_error |
Incorrect API key provided | 401 を維持し、上流の error オブジェクトをそのまま透過 |
HTTP 401 + {"error":{"message":"<上流原文>","type":"upstream_error","code":"<上流 code>"}} |
| 403 | upstream_error | 完全透過 | 上游权限不足或账号被封 | Upstream forbidden / account banned | account_deactivated / model_not_available |
Your account has been deactivated | 403 を維持し、上流の error オブジェクトをそのまま透過 |
HTTP 403 + {"error":{"message":"<上流原文>","type":"upstream_error","code":"<上流 code>"}} |
| 404 | upstream_error | 完全透過 | 上游资源不存在 | Upstream resource not found | model_not_found / DeploymentNotFound |
The model does not exist | 404 を維持し、上流の error オブジェクトをそのまま透過 |
HTTP 404 + {"error":{"message":"<上流原文>","type":"upstream_error","code":"<上流 code>"}} |
| 429 | upstream_error | 完全透過 | 上游速率限制或配额耗尽 | Upstream rate limit / quota exceeded | rate_limit_exceeded / insufficient_quota |
Rate limit reached | 429 を維持し、上流の error オブジェクトをそのまま透過(自動リトライの可能性あり) |
HTTP 429 + {"error":{"message":"<上流原文>","type":"upstream_error","code":"<上流 code>"}} |
| 500 | upstream_error | 完全透過 | 上游内部服务器错误 | Upstream internal server error | internal_error / server_error |
The server had an error processing your request | 500 を維持し、上流の error オブジェクトをそのまま透過 |
HTTP 500 + {"error":{"message":"<上流原文>","type":"upstream_error","code":"<上流 code>"}} |
| 502 | upstream_error | 完全透過 | 上游网关错误 | Upstream bad gateway | bad_gateway |
Bad gateway | 502 を維持し、上流の error オブジェクトをそのまま透過 |
HTTP 502 + {"error":{"message":"<上流原文>","type":"upstream_error","code":"<上流 code>"}} |
| 503 | upstream_error | 完全透過 | 上游服务不可用 | Upstream service unavailable | service_unavailable / overloaded |
The engine is currently overloaded | 503 を維持し、上流の error オブジェクトをそのまま透過(チャネル降格の可能性あり) |
HTTP 503 + {"error":{"message":"<上流原文>","type":"upstream_error","code":"<上流 code>"}} |
| 504 | upstream_error | 完全透過 | 上游网关超时 | Upstream gateway timeout | timeout |
Your request timed out | 504 を維持し、上流の error オブジェクトをそのまま透過 |
HTTP 504 + {"error":{"message":"<上流原文>","type":"upstream_error","code":"<上流 code>"}} |
| 非標準形式 | upstream_error | 部分透過 | 上游返回非 OpenAI 标准格式 | Upstream non-standard error format | N/A | 非標準形式(プレーンテキスト、HTML、非標準 JSON など) | message を抽出し、bad_response_status_code としてラップ |
HTTP <元のステータスコード> + {"error":{"message":"bad response status code <code>, message: <抽出したテキスト>","type":"new_api_error","code":"bad_response_status_code"}} |
タスクステータスコード¶
エラーコード一覧¶
| エラーコード | エラー種別 | HTTP ステータス | システム | 中国語説明 | 英語説明 | 発生条件 | クライアント受信例 |
|---|---|---|---|---|---|---|---|
| 1 | midjourney_success | 200 | Midjourney | 任务提交成功 | Task submitted successfully | MJ プロキシがタスクを正常に受信しキューに登録 | {"code":1,"description":"提交成功","result":"<task_id>"} |
| 4 | midjourney_error | 400 | Midjourney | 请求参数错误 | Invalid request parameters | 必須パラメータ不足(prompt など)または形式エラー | {"code":4,"description":"<错误详情>"} |
| 21 | midjourney_info | 200 | Midjourney | 任务已存在 | Task already exists | 同一タスクの重複送信(処理中または完了済み) | {"code":21,"description":"任务已存在","result":"<task_id>"} |
| 22 | midjourney_info | 200 | Midjourney | 任务排队中 | Task queued | タスクは送信済みだが、前に待ちタスクが存在する | {"code":22,"description":"排队中,前面还有 N 个任务"} |
| 23 | midjourney_error | 429 | Midjourney | 队列已满 | Queue is full | MJ プロキシのタスクキューが上限に達した | {"code":23,"description":"队列已满,请稍后尝试"} |
| 24 | midjourney_error | 400 | Midjourney | Prompt 包含敏感词 | Prompt contains banned words | Prompt が Midjourney のコンテンツフィルタに抵触 | {"code":24,"description":"可能包含敏感词"} |
| 3 | midjourney_error | 403 | Midjourney | 无可用账号实例 | No available account | バックエンドに利用可能な Discord アカウントがない | {"code":3,"description":"No available account instance"} |
| 30 | midjourney_error | 429 | Midjourney | 分组负载饱和 | Group load saturated | 現在のグループの同時実行数が上限に達した | {"code":30,"description":"当前分组负载已饱和"} |
| task_not_exist | task_error | 404 | Task System | 任务不存在 | Task not found | 照会した task_id が存在しない、またはユーザーに属さない |
{"code":"task_not_exist","message":"查询的任务 ID 不存在"} |
| quota_not_enough | task_error | 403 | Task System | 任务额度不足 | Insufficient quota for task | タスク実行に必要な推定コストに対し残高不足 | {"code":"quota_not_enough","message":"任务额度计算失败或余额不足"} |
| invalid_api_platform | task_error | 400 | Task System | 无效的平台参数 | Invalid platform parameter | サポートされていないプラットフォーム種別(スペルミスなど) | {"code":"invalid_api_platform","message":"invalid api platform: <platform>"} |
| fail_to_fetch_task | task_error | 上流ステータスコード | Task System | 获取任务失败 | Failed to fetch task from upstream | 上流にタスク状態を問い合わせた際、上流側がエラーを返した | {"code":"fail_to_fetch_task","message":"<上流エラー詳細>"} |
内部エラーコード¶
New API 内部でリクエスト処理の各段階において発生するエラーコードです。
エラーコード一覧¶
| エラーコード | エラー種別 | HTTP ステータス | 発生段階 | 中国語説明 | 英語説明 | 代表的な原因 | 推奨される対応 |
|---|---|---|---|---|---|---|---|
| invalid_request | new_api_error | 400 | リクエスト解析段階 | 无效的请求格式或参数 | Invalid request format or parameters | リクエスト JSON の形式エラー、必須フィールド欠如、モデル名空など | OpenAI 仕様に沿ってリクエスト形式を確認 |
| sensitive_words_detected | new_api_error | 400 | コンテンツ審査段階 | 请求内容包含敏感词 | Sensitive words detected | Prompt がシステム設定の NG ワードにヒット | Prompt を修正、または管理者にワード調整を依頼 |
| insufficient_user_quota | new_api_error | 403 | 事前課金段階 | 用户额度不足 | Insufficient user quota | アカウント残高が 0、または推定消費額を下回る | 追加入金または管理者に枠の拡大を依頼 |
| pre_consume_token_quota_failed | new_api_error | 403 | 事前課金段階 | 预扣费失败 | Pre-consume quota failed | トークン残量不足、または利用上限に達した | トークン枠を確認、別トークンの利用を検討 |
| get_channel_failed | new_api_error | 500 | チャネル選択段階 | 无可用渠道 | No available channel | すべてのチャネルが無効、モデルがいずれのチャネルにも紐付いていない、または全チャネルがオフライン | チャネル状態とモデルマッピングを確認 |
| count_token_failed | new_api_error | 500 | Token 計算段階 | Token 数量计算失败 | Token count failed | Tokenizer ライブラリの異常、またはリクエスト内容の異常形式 | サポートへ問い合わせ |
| model_price_error | new_api_error | 500 | 料金取得段階 | 模型定价信息缺失 | Model pricing not configured | 管理画面に該当モデルの料金設定が存在しない | 管理画面の「模型价格」で価格を設定 |
| read_request_body_failed | new_api_error | 400 | リクエスト読取段階 | 读取请求体失败 | Failed to read request body | リクエストボディが大きすぎる、または接続断 | ボディサイズの削減、ネットワーク状態の確認 |
| access_denied | new_api_error | 403 | 認証段階 | 拒绝访问 | Access denied | IP ホワイトリスト外、トークン無効、ユーザー BAN | IP/トークン設定を確認 |
| model_not_found | new_api_error | 404 | モデル検索段階 | 模型未找到 | Model not found | 要求されたモデルが現在のチャネル構成に存在しない | モデル名やチャネル設定を確認 |
| prompt_blocked | new_api_error | 400 | コンテンツフィルタ段階 | 提示词被拦截 | Prompt blocked by filter | OpenAI ポリシーまたはカスタムフィルタに抵触 | Prompt を修正し、違反内容を避ける |
| convert_request_failed | new_api_error | 500 | リクエスト変換段階 | 请求格式转换失败 | Request conversion failed | チャネル種別がこのエンドポイントに非対応、またはパラメータ非互換 | エンドポイントとチャネル種別の互換性確認 |
| channel:no_available_key | channel_error | 500 | チャネル Key 選択段階 | 渠道无可用 Key | No available key | チャネルに設定された API Key がすべて無効または上限到達 | 新しい API Key の追加・交換 |
| channel:invalid_key | channel_error | 401 | チャネル Key 検証段階 | 渠道 Key 无效 | Invalid channel key | 設定済み API Key の期限切れ、上流側での無効化 | チャネル API Key を更新 |
| channel:response_time_exceeded | channel_error | 504 | リクエストタイムアウト段階 | 渠道响应超时 | Channel response timeout | 上流レスポンスがシステムのタイムアウト閾値を超過 | タイムアウト値の調整、上流サービス状態の確認 |
| do_request_failed | new_api_error | 500 | HTTP リクエスト段階 | 请求上游失败 | Failed to send request to upstream | ネットワーク障害、DNS エラー、上流サーバーへの接続拒否 | ネットワークと上流サーバーの状態を確認 |
| api_not_implemented | new_api_error | 501 | ルーティングマッチ段階 | API 端点未实现 | API endpoint not implemented | 該当エンドポイントが現行バージョンで未実装 | 実装を待つか、別エンドポイントを利用 |