---
title: "Hatalar ve kodlar"
url: https://lumean.app/tr/developers/docs/errors
locale: tr
description: "HTTP kodları ve makine `reason` değerleri açıklamalı: ne oldu, neden ve sırada ne yapılmalı."
generated: 2026-10-17
---

# Hatalar ve kodlar

HTTP kodları ve makine `reason` değerleri açıklamalı: ne oldu, neden ve sırada ne yapılmalı.

| HTTP | reason | Başlık | `Retry-After` başlığı | Sayfa |
| --- | --- | --- | --- | --- |
| 401 | — | 401 — key rejected | hayır | [401](https://lumean.app/tr/developers/docs/md/errors/401) |
| 402 | — | 402 — payment required | hayır | [402](https://lumean.app/tr/developers/docs/md/errors/402) |
| 403 | — | 403 — insufficient permissions | hayır | [403](https://lumean.app/tr/developers/docs/md/errors/403) |
| 404 | — | 404 — resource not found | hayır | [404](https://lumean.app/tr/developers/docs/md/errors/404) |
| 409 | — | 409 — state conflict | hayır | [409](https://lumean.app/tr/developers/docs/md/errors/409) |
| 422 | — | 422 — request not accepted | hayır | [422](https://lumean.app/tr/developers/docs/md/errors/422) |
| 429 | — | 429 — one of five limits was hit | bazen | [429](https://lumean.app/tr/developers/docs/md/errors/429) |
| 402 | `payg_topup_required` | payg_topup_required — PAYG top-up required | hayır | [payg-topup-required](https://lumean.app/tr/developers/docs/md/errors/payg-topup-required) |
| 409 | `quote_mismatch` | quote_mismatch — top-up quote is stale | hayır | [quote-mismatch](https://lumean.app/tr/developers/docs/md/errors/quote-mismatch) |
| 402 | `insufficient_balance` | insufficient_balance — not enough LMC | hayır | [insufficient-balance](https://lumean.app/tr/developers/docs/md/errors/insufficient-balance) |
| 402 | `insufficient_allowance` | insufficient_allowance — top-up not possible | hayır | [insufficient-allowance](https://lumean.app/tr/developers/docs/md/errors/insufficient-allowance) |
| 429 | `token_quota_exceeded` | token_quota_exceeded — key token quota exhausted | evet | [token-quota-exceeded](https://lumean.app/tr/developers/docs/md/errors/token-quota-exceeded) |
| 429 | `limit_exceeded` | limit_exceeded — subscription usage limit exceeded | hayır | [limit-exceeded](https://lumean.app/tr/developers/docs/md/errors/limit-exceeded) |
| 429 | `concurrency_limit_exceeded` | concurrency_limit_exceeded — concurrent task slots are full | hayır | [concurrency-limit-exceeded](https://lumean.app/tr/developers/docs/md/errors/concurrency-limit-exceeded) |
| 429 | `policy_cooldown_active` | policy_cooldown_active — cooldown after policy blocks | evet | [policy-cooldown-active](https://lumean.app/tr/developers/docs/md/errors/policy-cooldown-active) |
| 422 | `content_blocked` | content_blocked — text is on the blocklist | hayır | [content-blocked](https://lumean.app/tr/developers/docs/md/errors/content-blocked) |
| 422 | `text_empty` | text_empty — nothing to voice | hayır | [text-empty](https://lumean.app/tr/developers/docs/md/errors/text-empty) |
| 202 | `policy_flagged` | policy_flagged — chunk rejected by policy | hayır | [policy-flagged](https://lumean.app/tr/developers/docs/md/errors/policy-flagged) |
| 403 | `template_access_denied` | template_access_denied — no access to the template | hayır | [template-access-denied](https://lumean.app/tr/developers/docs/md/errors/template-access-denied) |
| 422 | `service_not_found` | service_not_found — no such service | hayır | [service-not-found](https://lumean.app/tr/developers/docs/md/errors/service-not-found) |
| 422 | `invalid_order_status` | invalid_order_status — order is in the wrong status | hayır | [invalid-order-status](https://lumean.app/tr/developers/docs/md/errors/invalid-order-status) |
| 202 | `max_attempts_reached` | max_attempts_reached — chunk attempts exhausted | hayır | [max-attempts-reached](https://lumean.app/tr/developers/docs/md/errors/max-attempts-reached) |
| 404 | `storage_expired` | storage_expired — files deleted by retention | hayır | [storage-expired](https://lumean.app/tr/developers/docs/md/errors/storage-expired) |

## 429'un beş kaynağı

| Kaynak | reason | `Retry-After` başlığı | Nasıl ayırt edilir | Ne yapmalı |
| --- | --- | --- | --- | --- |
| Key rate limit (request frequency) | — | hayır | There is no `reason` in the body at all, and no `Retry-After` header either — the body consists of `success` and `message`. This is the only one of the five sources without a machine code. | Client-side backoff based on the configured windows of the key (`limits.requests.per_minute\|per_hour\|per_day`). The default is "no limit", not 60/min: a key without explicit request windows is not rate-limited at all, and a numeric default applies only if an operator has set one. The active windows are visible in the developer section. |
| Key token quota (generation volume) | `token_quota_exceeded` | evet | The only detailed body: `window`, `limit`, `used`, `requested`, `reset_at`, `retry_after` — plus a `Retry-After` header. | Wait for `reset_at`, or reduce the size of a single request so that `requested` fits into what remains in the window (`limit − used`). The check happens before the order is created, so a 429 comes instead of a 201 and nothing is charged. |
| Subscription usage limit | `limit_exceeded` | hayır | `reason: "limit_exceeded"`, but there are no window fields and no `Retry-After`. It is precisely the missing header that distinguishes it from the token quota. | Wait for the end of the billing period (`period_end` / `resets_in` in `GET /usage`) or change your plan. The limit is account-wide: switching keys does not help, all keys hit the same counter. |
| Concurrently active task limit | `concurrency_limit_exceeded` | hayır | `reason: "concurrency_limit_exceeded"`, no `Retry-After`. Typical context: a burst of many orders while quotas are free. | Wait for YOUR OWN active orders to finish, not for the end of the period: a retry right after any of them reaches a terminal status goes through. The fix is a queue with a concurrency cap, not pauses. The ceiling and the current count are in the `limit_type: "concurrent"` entry in `GET /usage`. |
| Cooldown after policy blocks | `policy_cooldown_active` | evet | `reason: "policy_cooldown_active"` plus `retry_after` / `retry_at` in the body and a `Retry-After` header. The second and last source with the header — it differs from the token quota precisely by `reason`. | Edit the text instead of waiting: the same text will be blocked again after the pause and raise the step (5 → 10 → 15 minutes). Any successfully completed task resets both the counter and the step. |

---

- Bu sayfa tarayıcıda: https://lumean.app/tr/developers/docs/errors
- Makine tarafından okunabilir tam başvuru: https://api.lumean.app/docs/llm.md
