> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# エラーとレート制限の処理

> エラーレスポンスの共通構造、ステータスクラスごとの意味、再試行に値する失敗の見分け方

> このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、[英語版](/en/api-reference/guides/errors) を参照してください。

記載されているエラーは、いずれも同じ 3 フィールドの JSON 構造で返ります。

```json theme={null}
{
  "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` の値はこのページに記載のものと同じで、同じルールで分類できます。詳細は [ストリーミングレスポンスの処理](/ja/api-reference/guides/streaming) を参照してください。

## 再試行の判断

* **バックオフして再試行**：`too_many_requests`、`500`、ネットワーク障害。
* **そのまま再試行しない**：バリデーションエラー（まずリクエストを修正）、認可の失敗、クォータエラー（クォータがリセットされるまで解消しない）。
* **再試行ではなく修正**：再開呼び出しの `404` は、`user` の誤りか実行が存在しないことを意味します。再試行せず、識別子を修正してください。
