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

# エラー処理

> エラーコード、レスポンス形式、トラブルシューティング戦略について理解します。

## レスポンスコード

Legitmark は標準の HTTP コードを使用してリクエストの成功または失敗を示します。
一般的に、2xx HTTP コードは成功、4xx コードはユーザー関連のエラー、5xx コードはインフラストラクチャの問題を示します。

| ステータス | 説明                     |
| ----- | ---------------------- |
| 200   | リクエスト成功                |
| 201   | リソースが正常に作成されました        |
| 204   | コンテンツなしで成功             |
| 400   | パラメータが正しいか確認してください     |
| 401   | API キーがないか、認証が必要です     |
| 403   | API キーが無効か、権限が不十分です    |
| 404   | リソースが見つかりません           |
| 409   | 競合 - リソースの重複または制約違反    |
| 429   | レート制限を超過しました           |
| 500   | 内部サーバーエラー              |
| 501   | 未実装                    |
| 5xx   | Legitmark サーバーエラーを示します |

すべての可能な API エラーの完全な分類についてはエラーコードを確認してください。

## エラーレスポンス形式

すべてのエラーレスポンスは以下の構造に従います：

```json theme={null}
{
  "success": false,
  "error": {
    "code": 400,
    "timestamp": "2024-01-01T00:00:00.000Z",
    "message": "ユーザーフレンドリーなエラーメッセージ",
    "details": [
      {
        "code": "validation/missing-field",
        "message": "field_name は必須です。"
      }
    ]
  }
}
```

## エラーカテゴリ

### バリデーションエラー (400)

リクエストパラメータが要件を満たさない場合にバリデーションエラーが発生します：

```json theme={null}
{
  "success": false,
  "error": {
    "code": 400,
    "timestamp": "2024-01-01T00:00:00.000Z",
    "message": "リクエストパラメータが無効です。",
    "details": [
      {
        "code": "validation/missing-user_id",
        "message": "user_id は必須です。"
      },
      {
        "code": "validation/invalid-email",
        "message": "メールアドレスの形式が無効です。"
      }
    ]
  }
}
```

### 認証エラー (401)

API キーがない場合や無効な場合に認証エラーが発生します：

```json theme={null}
{
  "success": false,
  "error": {
    "code": 401,
    "timestamp": "2024-01-01T00:00:00.000Z",
    "message": "認証が必要です",
    "details": "authorization/missing_token"
  }
}
```

### 認可エラー (403)

API キーに必要な権限がない場合に認可エラーが発生します：

```json theme={null}
{
  "success": false,
  "error": {
    "code": 403,
    "timestamp": "2024-01-01T00:00:00.000Z",
    "message": "権限が不十分です",
    "details": "authorization/insufficient_permissions"
  }
}
```

### 未検出エラー (404)

リクエストされたリソースが存在しない場合に未検出エラーが発生します：

```json theme={null}
{
  "success": false,
  "error": {
    "code": 404,
    "timestamp": "2024-01-01T00:00:00.000Z",
    "message": "リソースが見つかりません",
    "details": "error/resource_not_found"
  }
}
```

### 競合エラー (409)

重複リソースの作成や制約違反時に競合エラーが発生します：

```json theme={null}
{
  "success": false,
  "error": {
    "code": 409,
    "timestamp": "2024-01-01T00:00:00.000Z",
    "message": "リソースは既に存在します",
    "details": "error/duplicate_resource"
  }
}
```

### サーバーエラー (5xx)

サーバーエラーは Legitmark インフラストラクチャの問題を示します：

```json theme={null}
{
  "success": false,
  "error": {
    "code": 500,
    "timestamp": "2024-01-01T00:00:00.000Z",
    "message": "内部サーバーエラー",
    "details": "error/internal_server_error"
  }
}
```

## トラブルシューティング

### よくある問題

**400 Bad Request**

* すべての必須パラメータが含まれているか確認
* パラメータのタイプと形式を検証
* JSON が正しくフォーマットされていることを確認
* フィールド名が snake\_case を使用しているか確認

**401 Unauthorized**

* Authorization ヘッダーに API キーが含まれているか確認
* API キーの形式を確認：`Bearer leo_xxxxxxxxx`
* API キーが有効で期限切れでないことを確認

**403 Forbidden**

* API キーに必要な権限があるか確認
* リソースアクセスが制限されているか確認
* 権限の問題についてはサポートに連絡

**404 Not Found**

* リソース ID/UUID が正しいか確認
* リソースが存在するか確認
* エンドポイント URL が正しいことを確認

**429 Rate Limited**

* 再試行前に待機（retry-after ヘッダーを確認）
* 指数バックオフを実装
* レート制限のアップグレードを検討

**500 Server Error**

* 少し待ってからリクエストを再試行
* Legitmark ステータスページを確認
* 問題が続く場合はサポートに連絡

### デバッグのヒント

1. **レスポンスヘッダーを確認**
   * Content-Type は `application/json` であるべき
   * レート制限ヘッダーで現在の使用状況を確認
   * サポート問い合わせ用のリクエスト ID

2. **リクエスト形式を検証**
   * 適切な Content-Type ヘッダーを使用
   * JSON 構文が有効であることを確認
   * すべての必須フィールドが含まれていることを確認

3. **最小限のデータでテスト**
   * 最もシンプルなリクエストから開始
   * 徐々に複雑さを増す
   * API プレイグラウンドでテスト

4. **レート制限を監視**
   * API 使用パターンを追跡
   * 適切な再試行ロジックを実装
   * 必要に応じてレスポンスをキャッシュ
