---
title: خطاها
description: کدهای خطا و شکل پاکت‌های خطا در API دانا
---

دانا خطاها را در دو شکل مختلف بازمی‌گرداند که به رابط استفاده‌شده بستگی دارد.

## شکل خطا - رابط OpenAI

```json
{
  "error": {
    "message": "توضیح خطا",
    "type": "error_type",
    "param": null,
    "code": "error_code"
  }
}
```

## شکل خطا - رابط Anthropic

```json
{
  "error": {
    "type": "error_type",
    "message": "توضیح خطا"
  }
}
```

## کدهای HTTP

| کد | معنا |
|---|---|
| `200` | موفق |
| `400` | درخواست نامعتبر |
| `401` | احراز هویت ناموفق |
| `403` | دسترسی ممنوع |
| `404` | منبع پیدا نشد |
| `422` | داده‌های ورودی نامعتبر |
| `429` | تعداد درخواست از حد مجاز بیشتر است |
| `500` | خطای داخلی سرور |
| `503` | سرویس در دسترس نیست |

## خطاهای رایج

### 401 - احراز هویت ناموفق

```json
{"error": {"message": "Invalid API key.", "type": "authentication_error", "param": null, "code": "invalid_api_key"}}
```

علت: کلید API وجود ندارد، نامعتبر است، یا هدر `Authorization` ارسال نشده.

### 429 - Rate limit

```json
{"error": {"message": "Rate limit exceeded.", "type": "rate_limit_error", "param": null, "code": "rate_limit_exceeded"}}
```

علت: بیشتر از حد مجاز درخواست در بازه زمانی ارسال شده. برای جزئیات به [محدودیت‌ها](/docs/rate-limits) مراجعه کنید.

### 400 - مدل نامعتبر

```json
{"error": {"message": "The model `dana-7b` does not exist.", "type": "invalid_request_error", "param": "model", "code": "model_not_found"}}
```

علت: شناسه مدل اشتباه است. از `dana-1` یا `dana-1-fast` استفاده کنید.

### 503 - به‌زودی (coming_soon)

**رابط OpenAI:**

```json
{"error": {"message": "Dana model serving is coming soon.", "type": "api_error", "param": null, "code": "coming_soon"}}
```

**رابط Anthropic:**

```json
{"error": {"type": "api_error", "message": "Dana model serving is coming soon."}}
```

هر دو HTTP 503 برمی‌گردانند. این پیام در دوره راه‌اندازی نمایش داده می‌شود.

## بهترین روش‌ها

- روی `429` با exponential backoff تلاش مجدد کنید.
- روی `503` با `code === "coming_soon"` تلاش مجدد نکنید؛ منتظر اعلام زمان راه‌اندازی باشید.
- روی `5xx` (غیر از `503 coming_soon`) با حداکثر ۳ تلاش مجدد Retry کنید.
- خطاهای `4xx` (به جز `429`) را در کد خود مدیریت کنید؛ تلاش مجدد کمکی نمی‌کند.
