---
title: エラーとレート制限の処理
sidebarTitle: エラーとレート制限
description: エラーレスポンスの共通構造、ステータスクラスごとの意味、再試行に値する失敗の見分け方
---

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

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

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

## 再試行の判断

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