このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、英語版 を参照してください。
記載されているエラーは、いずれも同じ 3 フィールドの JSON 構造で返ります。
{
"code": "invalid_param",
"message": "user is required",
"status": 400
}
status は HTTP ステータスと同じ値です。code は分岐処理に使える安定した識別子で、message は人間が読むための詳細です。各エンドポイントページには、返る可能性のある code がすべて記載されています。
ステータスクラスの概要
| ステータス | 意味 | 主な code |
|---|
| 400 | リクエストまたはアプリの設定が無効 | invalid_param、bad_request、app_unavailable、プロバイダーエラー(後述) |
| 401 | API キーの欠落または無効 | unauthorized |
| 403 | このキーでは実行できない操作(アクセス制限またはプラン制限) | forbidden |
| 404 | リソースが存在しないか、このキーまたは user からは見えない | not_found |
| 413 / 415 | ファイルが大きすぎるか、サポート外のタイプ | file_too_large、unsupported_file_type |
| 429 | 現在のリクエストが多すぎるか、クォータを使い切った | too_many_requests、rate_limit_error |
| 500 | Dify 側での失敗 | internal_server_error |
プロバイダーエラーは設定の問題
よくある 4 つの 400 code は、リクエストではなくアプリのモデル設定の問題を示します。
provider_not_initialize:有効なモデル認証情報がない
provider_quota_exceeded:モデルプロバイダー側のクォータを使い切った
model_currently_not_support:モデルが現在サポートされていない
completion_request_error:テキスト生成リクエストの実行中にエラーが発生した
これらのエラーは再試行しても解決しません。Dify でアプリのモデル設定を修正してください。
レート制限とクォータ
2 つの 429 code は意味が異なります。
too_many_requests は同時実行数の上限です。このアプリへの同時リクエストが今は多すぎる状態です。バックオフして再試行してください。
rate_limit_error は Dify Cloud のプランクォータです(ワークフロー実行回数など)。再試行では解消されず、クォータ期間のリセットかプラン変更で解消します。
Dify Cloud では、ナレッジ系の書き込みエンドポイントもプラン制限を 403 レスポンスとして返します。code はアクセス制限と同じ forbidden のため、プラン制限かどうかは message でしか判別できません。403 の処理を code だけで分岐させないでください。
ストリーム内のエラー
ストリームが開いた時点で、HTTP ステータスはすでに 200 です。失敗は error イベントとして届き、ストリームを終了させます。イベントの code の値はこのページに記載のものと同じで、同じルールで分類できます。詳細は ストリーミングレスポンスの処理 を参照してください。
再試行の判断
- バックオフして再試行:
too_many_requests、500、ネットワーク障害。
- そのまま再試行しない:バリデーションエラー(まずリクエストを修正)、認可の失敗、クォータエラー(クォータがリセットされるまで解消しない)。
- 再試行ではなく修正:再開呼び出しの
404 は、user の誤りか実行が存在しないことを意味します。再試行せず、識別子を修正してください。
Last modified on July 9, 2026