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

# Hatalar ve Hata Ayıklama

> Krea API için HTTP hataları ve başarısız iş kodları: yanıt yapıları, durum kodları, eşzamanlılık 429'ları ve desteğe neleri göndermeniz gerektiği.

Bir çağrı iki noktada başarısız olabilir. İstek bir HTTP hatasıyla hemen reddedilebilir ya da kabul edilip daha sonra `status: "failed"` ile sonuçlanabilir. Başarısız ve iptal edilen işler için ücret alınmaz. Yalnızca tamamlanan işler için ödeme yaparsınız. Bir node uygulamasında, uygulamanın kendi işi hiçbir zaman ücretlendirilmez. Her üretim veya LLM node'u, kendi işi tamamlandığında ücretlendirilir. Bir başarısızlık paralel node'ları veya diğer dalları iptal etmez; bu nedenle uygulama zaten başarısız olduktan sonra tamamlanan bir node da ücretlendirilir ve bu ücretler iade edilmez. Başarısız olan, iptal edilen veya hiç başlamayan bir node ücretlendirilmez. Bkz. [API Anahtarları ve Faturalandırma](https://www.krea.ai/docs/tr/developers/api-keys-and-billing.md).

## İstek Anındaki Hatalar ve Başarısız İşler

**İstek anındaki hatalar** bir `4xx` veya `5xx` durum kodu döndürür. Hiçbir iş oluşturulmaz. Yanıt gövdesini aşağıda açıklandığı gibi okuyun.

**Başarısız işler** gönderim anında başarılı bir durum kodu döndürür. [GET `/jobs/{id}`](https://www.krea.ai/docs/tr/developers/job-lifecycle) ile sorgulayın veya bir [webhook](https://www.krea.ai/docs/tr/developers/webhooks.md) bekleyin. İş bittiğinde `status` değeri `"failed"` olur ve hata, üst düzey `error` nesnesinde yer alır. Başarısız bir işte `result` alanını okumayın: bu alan dahil edilmez (veya `null` olur). Çıktıyı yalnızca `status` değeri `"completed"` olduğunda içerir. `cancelled` durumundaki bir işte ne `result` ne de `error` bulunur.

`error.code` değerine göre dallanın. `message` atlanabilir; `provider_error` ve `internal` için ise serbest biçimli sağlayıcı metnidir. `message` alanını ayrıştırmayın.

```javascript theme={"theme":{"light":"github-light-default","dark":"vesper"}}
if (job.status === "failed") {
  switch (job.error?.code ?? "internal") {
    case "content_policy":
    case "model_unavailable":
      // Aynı isteği yeniden denemek büyük olasılıkla yine başarısız olur. Girdiyi veya modeli değiştirin.
      break;
    case "insufficient_balance":
      // API bakiyesini yükleyin, ardından yeniden gönderin.
      break;
    default:
      // timeout, auto_cancelled, provider_error, internal, node_app_node_failed
      // veya bilinmeyen bir kod: geri çekilmeyle yeniden gönderin.
  }
}
```

## Yanıt Gövdeleri

Generate, jobs, assets, styles ve node apps uç noktalarında, gövde JSON olduğunda `message ?? error` değerini okuyun. Bu iki alandan biri özeti taşır. Bazı `5xx` gövdeleri JSON değildir; buna gövdesi düz metin `error code: 502` olan bir `502` de dahildir. Savunmacı bir şekilde ayrıştırın: gövde JSON değilse HTTP durum koduna göre dallanın.

Çoğu hata `{ "message": "..." }` yapısını kullanır; bazen ek alanlarla (`limit`, `jobType`, `modelAccessDenial`). Geçersiz JSON ve aşağıdaki birkaç işleyici bunun yerine `{ "error": "..." }` kullanır.

`/mcp` gibi MCP uç noktaları, bu sayfadaki HTTP gövdelerini değil, JSON-RPC hatalarını (`{ "jsonrpc", "id", "error": { "code", "message" } }`) döndürür.

### `Accept: application/json` Gönderin

> [!WARNING]
>
> `Accept: application/json` olmadan bazı hatalar bir HTML sayfası olarak döner ve JSON ayrıştırıcınız başarısız olur.

`401` ve `404` dahil `{ "message" }` hataları, `Accept` değeri `application/json` veya `*/*` olduğunda JSON'dur. `Accept` eksik olduğunda veya `text/html` olduğunda bu durum kodları bir HTML sayfası (`Content-Type: text/html`) olarak döner ve JSON ayrıştırıcınız başarısız olur.

Bu, `Accept` başlığı göndermeyen istemciler için önemlidir. Python'un `urllib` modülü bunlardan biridir. curl varsayılan olarak `Accept: */*` gönderir, Node'un `fetch` işlevi de öyle; bu nedenle `Accept` değerini geçersiz kılmadığınız sürece ikisi de JSON alır.

Kimlik doğrulaması yapılmamış `POST /generate/...`, `GET /jobs/{id}`, `GET /styles` ve `GET /assets` istekleri, `*/*` ve `application/json` için `401` `{"message":"Unauthorized"}`, eksik `Accept` veya `text/html` için ise bir HTML sayfası döndürür. Bilinmeyen bir id için kimliği doğrulanmış bir `GET /jobs/{id}` isteği de durum koduyla aynı şekilde davranır: `Accept` JSON istediğinde `404` JSON `{"message":"Job not found or unauthorized"}`, `Accept` eksik olduğunda ise `404` `text/html`.

Geçersiz JSON (`400`) ve doğrulama (`422`) hataları `{ "error" }` kullanır ve `Accept` eksik olsa bile JSON olarak kalır. Aynısı kaldırılmış alan `422`'si, sunset `410`'u, Zero Data Retention `402`'si, node uygulaması `{ "error" }` yanıtları ve eşlenmiş [Agent İşlem API'si](#agent-operation-api) hataları için de geçerlidir. Bir `POST /generate/...` işinin kabulü sırasında dönen `402` ve `429` da, tarayıcı `Accept` değeri dahil, JSON'dur.

`413` ve `500`, `{ "message" }` kullanır ve `401` ile `404` gibi `Accept` değerini izler.

### Doğrulama (`422`)

```json theme={"theme":{"light":"github-light-default","dark":"vesper"}}
{
  "error": "Validation failed",
  "details": [
    {
      "field": "width",
      "message": "Too small: expected number to be >0",
      "code": "too_small"
    },
    {
      "field": "",
      "message": "Unrecognized key: \"foo\"",
      "code": "unrecognized_keys"
    },
    {
      "field": "prompt",
      "message": "Enter a prompt.",
      "code": "custom"
    }
  ]
}
```

`details` her sorunu listeler. `field`, `.` ile birleştirilmiş yoldur (`"image_style_references.0.url"`). Nesne düzeyindeki hatalar, yukarıdaki bilinmeyen anahtarda olduğu gibi boş bir dize kullanır. Birden fazla bilinmeyen anahtar `Unrecognized keys: ...` ve aynı boş `field` değerini üretir. `expected` yalnızca `code` değeri `"invalid_type"` olduğunda eklenir.

Geçersiz bir `X-Webhook-URL` başlığı da aynı `422`'yi kullanır.

Geçersiz sorgu parametreleriyle yapılan `GET /jobs` isteği de bu `422`'yi döndürür. Bu bir `400` değildir.

Araç içinde başarısız olan bir Zero Data Retention girdi kontrolü, açıklamayı `message` içinde taşıyan bir `422` döndürür (`{ "message" }` yapısı; bu yüzden `Accept` önemlidir). Bkz. [Zero Data Retention](https://www.krea.ai/docs/tr/developers/zdr.md).

### Kaldırılmış ve Kullanımdan Kaldırılmış Alanlar (`422`)

Kaldırılmış `batchSize` / `batch_size` alanı farklı bir `422` kullanır. `details` dizisi yoktur:

```json theme={"theme":{"light":"github-light-default","dark":"vesper"}}
{
  "error": "invalid_request",
  "reason": "removed_field",
  "field": "batchSize",
  "message": "Generation batch size is no longer supported. Submit one request per output.",
  "value": 2
}
```

`batch_size` da aynı şekilde kaldırılmıştır. `field`, gönderdiğiniz addır.

Kullanımdan kaldırılmış bir alan takma adı, `reason` olarak `"deprecated_field"` veya `"conflicting_fields"` değerini ve uygun olduğunda `replacement`, `sunset_date` ve `migration_url` alanlarını kullanır. `error` ve `reason` değerlerine göre dallanın. Bir kişiye gösterilecek cümle `message` alanıdır.

### Sunset Modeller (`410`)

Sunset tarihini geçmiş bir model, `Deprecation: true` ve bir `Sunset` başlığıyla (RFC 1123 tarihi) `410` döndürür:

```json theme={"theme":{"light":"github-light-default","dark":"vesper"}}
{
  "error": "model_unavailable",
  "reason": "deprecated",
  "message": "The model '<path>' was deprecated on <sunsetDate>. <reason> Use '<replacement>' instead.",
  "sunset_date": "YYYY-MM-DD",
  "replacement": "<optional>",
  "migration_url": "<optional>"
}
```

`error`, sabit `"model_unavailable"` değeridir. Önerilen bir yedek model olmadığında `replacement` ve `migration_url` dahil edilmez. Aynı modeli yeniden denemek `410` döndürmeye devam eder. Ayarlandığında `replacement` modeline geçin ve [Kullanımdan Kaldırmalar](https://www.krea.ai/docs/tr/developers/deprecations.md) sayfasına bakın.

Kullanımdan kaldırılmış ancak hâlâ çalışan bir model, hatalar dahil her yanıtta `Deprecation` ve `Sunset` gönderir. Kullanımdan kaldırılmış bir alan takma adı kullanmak da, kendi `422`'si dahil, aynı sonucu verir. Bir geçiş kılavuzu mevcut olduğunda `Link: <migration_url>; rel="deprecation"` başlığı da gönderilir.

## Durum Kodları

| Durum | Anlamı |
| - | - |
| `400` | Bir generate gövdesi geçerli JSON değil, bir node uygulaması girdi URL'si kullanılamadı veya asset ya da node uygulaması parametreleri geçersiz. Node uygulaması execute isteğinde geçersiz JSON `500` döndürür. |
| `401` | Kimlik bilgileri eksik veya geçersiz. |
| `402` | İstek, bir iş başlamadan önce reddedildi. Bkz. [402](#402-payment-required). |
| `403` | Çağıranın kimliği doğrulandı ancak bu kaynağı kullanmasına izin verilmiyor. |
| `404` | Hiçbir rota eşleşmedi, model yolu bilinmiyor veya sizin için kullanılabilir değil ya da bir iş, asset, stil veya node uygulaması bulunamadı. |
| `405` | Bu yol için HTTP yöntemine izin verilmiyor. |
| `410` | Modelin sunset tarihi geçti. Bkz. [Sunset Modeller](#sunset-models-410). |
| `413` | İstek gövdesi çok büyük. Bkz. [413](#413-payload-too-large). |
| `422` | Doğrulama başarısız oldu, kaldırılmış veya kullanımdan kaldırılmış bir alan gönderildi ya da bir girdi kalıcı olarak reddedildi. |
| `429` | Eşzamanlılık sınırı aşıldı ve iş backlog'a alınamıyor. Sınır yaklaşıktır. |
| `500` | İşlenmemiş sunucu hatası. `{ "message": "Internal Error" }`. İstisna metni yoktur. `Accept` değerini izler. |
| `502`, `504` | Yeniden denenebilir. Bir `502`, JSON değil Cloudflare düz metni `error code: 502` olarak gelir; bu nedenle durum koduna göre dallanın. `504` de düz metin olabilir. Bkz. [Girdi İndirmeleri](#input-downloads). |

### `400`

Generate üzerindeki geçersiz JSON, `Accept` başlığı gerektirmeden her zaman JSON'dur:

```json theme={"theme":{"light":"github-light-default","dark":"vesper"}}
{
  "error": "Invalid JSON: Expected property name or '}' in JSON at position 1 (line 1 column 2)"
}
```

Node uygulaması execute, kullanamadığı bir girdi URL'si için `{ "error" }` kullanır: `Invalid URL for input "<key>"` veya `Failed to download URL for <key>: …`. İndirme mesajı geçici hataları da kapsar; bu nedenle generate'in aksine (bkz. [Girdi İndirmeleri](#input-downloads)) bir node uygulaması indirme hatası her zaman `400`'dür. URL geçerliyse bir kez yeniden deneyin.

`POST /node-apps/{id}/execute` üzerindeki geçersiz JSON, yukarıdaki generate `400`'ü değildir. İstisna metni olmadan `500` `{ "message": "Internal Error" }` olur ve `Accept` değerini izler.

Asset'ler ve node uygulamalarındaki diğer `400` yanıtları, kısa bir açıklamayla `{ "message": "..." }` biçimindedir; örneğin presigned yüklemede `No file provided` veya node uygulaması sürümlerinde `Invalid pagination parameters`. Başarısız bir asset yüklemesi, yükleme hizmetinin durum kodunu (`400`, `401`, `404` veya `500`) aynen iletir ve hizmetin yanıt metnini `message` içine koyabilir. Bu metin bazen bir JSON dizesidir. `GET /jobs` üzerindeki geçersiz sorgu parametreleri `400` değil, [`422`](#validation-422) döndürür.

### `401`

Generate, jobs, assets, styles ve node apps:

```json theme={"theme":{"light":"github-light-default","dark":"vesper"}}
{ "message": "Unauthorized" }
```

Presigned yüklemeler `{ "message": "Presigned upload URL expired" }` veya `{ "message": "Invalid presigned upload URL" }` döndürür.

### `402` Ödeme Gerekli

API bakiyesi işi karşılamayan, API üzerinden faturalandırılan bir istemci için (bir API anahtarı veya API anahtarı kullanan MCP):

```json theme={"theme":{"light":"github-light-default","dark":"vesper"}}
{
  "message": "Your API balance is separate from your workspace compute balance. Please top up your API balance to continue using the API."
}
```

[krea.ai/app/api/ ↗](https://krea.ai/app/api/) adresinden bakiye yükleyin. Devam eden işler tamamlanır. Bkz. [API Anahtarları ve Faturalandırma](https://www.krea.ai/docs/tr/developers/api-keys-and-billing.md).

Herkese açık API'deki diğer `402` `message` değerleri:

| `message` | Ne zaman |
| - | - |
| `This tool is not available on your current plan.` | Planınız veya çalışma alanınız bu model için eşzamanlı işe izin vermiyor. |
| `MEMBER_USAGE_LIMIT_REACHED` | Plan üye kullanım sınırlarını uyguluyor ve bu üyenin bütçesi aşılacak. |
| `WORKSPACE_USAGE_LIMIT_REACHED` | Plan üye kullanım sınırlarını uyguluyor ve çalışma alanı bütçesi aşılacak. |
| `MEMBER_LIMIT_VIOLATION` | Çalışma alanında planının izin verdiğinden fazla üye var. |
| `K3_ULTRA_ACCESS_REQUIRED` | Krea 3 Ultra içermeyen bir planda, `thinking_mode` `"ultra"` (veya eski `"max"`) ve görüntü referanslarıyla Krea 3. Görüntü referansları olmadan Ultra, `"fast"` olarak çalışır. |
| `ENHANCER_RESOLUTION_LIMIT_REACHED` | Bir upscale, ücretsiz planın izin verdiğinden daha büyük. |

Zero Data Retention'ın etkin olmadığı bir çalışma alanında Zero Data Retention ile yapılan bir generate çağrısı, her zaman JSON olan şu gövdeyi döndürür:

```json theme={"theme":{"light":"github-light-default","dark":"vesper"}}
{ "error": "Zero data retention is not enabled for this workspace." }
```

[Agent İşlem API'si](#agent-operation-api) kendi `402` gövdelerini kullanır. Bunlar API bakiyesinden değil, çalışma alanı işlem bakiyesinden düşer.

### `403`

| `message` veya `error` | Ne zaman |
| - | - |
| `Use an API key or a plugin session` | Realtime, API anahtarı ya da OAuth veya eklenti oturumu olmadan çağrıldı. `{ "message" }`. |
| `This endpoint needs a workspace service API key` | Usage API, kimlik bilgisi bir çalışma alanı hizmet API anahtarı değil. `{ "message" }`. |
| `Your plan is not entitled to the usage API` | Usage API, plan bu hakka sahip değil. `{ "message" }`. |
| `FEATURE_RESTRICTED` | Model politikası reddi. Gövde ayrıca `modelAccessDenial` içerir. `{ "message" }`. |
| `MODEL_ACCESS_REQUIRED` | Model yalnızca dahili kullanıma açık. `{ "message" }`. |
| `This node app cannot be used via the API.` | Node uygulaması execute. `{ "error" }`, her zaman JSON. |
| `Free users cannot run node apps` | Ücretsiz plandaki bir çalışma alanında node uygulaması execute. `{ "message" }`. |
| `You do not own this style` | Sahibi olmadığınız bir stili değiştirme veya paylaşma. `{ "message" }`. |

### `404`

Her `404`, `{ "message" }` biçimindedir; örneğin bilinmeyen bir iş id'si için:

```json theme={"theme":{"light":"github-light-default","dark":"vesper"}}
{ "message": "Job not found or unauthorized" }
```

Eksik bir `Accept` başlığı bunları HTML yapar; anahtarınızın veya planınızın kullanamadığı bir model için dönen `Endpoint not found` ise istisnadır ve her zaman JSON'dur. Bilinmeyen bir id için `Accept` olmadan yapılan kimliği doğrulanmış bir `GET /jobs/{id}` isteği `404` `text/html` döndürür.

| `message` | Ne zaman |
| - | - |
| `Not Found` | Yolla hiçbir rota eşleşmedi. |
| `Endpoint not found` | `/generate` altında bilinmeyen veya bu API anahtarının ya da planın kullanamadığı bir model yolu. |
| `Job not found or unauthorized` | `DELETE /jobs/{id}` dahil, eksik veya geçersiz iş id'si. |
| `Asset not found` | Asset bulunamadı. |
| `Style not found` | Stil bulunamadı. Sahibi olmadığınız bir stili değiştirmek veya paylaşmak `Style not found or you are not the owner` döndürür. |
| `Node app not found` | Node uygulaması bulunamadı. |
| `Workspace not found` | Usage API, çalışma alanı bulunamadı. |

Bilinmeyen bir Agent işlemi de Agent `{ "error", "code" }` yapısını değil, `404` `{ "message": "Endpoint not found" }` döndürür.

### `405`

Gövde, `Accept` değeri `application/json` olduğunda bile JSON değil, `Content-Type` başlığı olmayan düz metindir. Metin, yöntem adı ve ardından ` method not allowed` ifadesinden oluşur; örneğin `GET method not allowed`. Bir `Allow` başlığı, yolun kabul ettiği yöntemleri listeler.

### `413` Yük Çok Büyük

Çok büyük bir istek gövdesi `413` ile reddedilir. API'nin kendisinden geldiğinde gövde `Accept` değerini izler:

```json theme={"theme":{"light":"github-light-default","dark":"vesper"}}
{ "message": "Payload Too Large" }
```

Çok büyük bir gövde, API'ye ulaşmadan önce bir HTML `413` sayfasıyla reddedilebilir. Dosyaları satır içi göndermeyin. Dosyayı `POST /assets` ile yükleyin ve dönen URL'yi generate isteğinde iletin.

### Girdi İndirmeleri

`404` veya `410` döndüren bir sunucu, kalıcı bir `422` ile sonuçlanır. Gövde JSON'dur ve `Accept` önemlidir:

```json theme={"theme":{"light":"github-light-default","dark":"vesper"}}
{ "message": "Input file rejected: fetching <url> returned HTTP 404" }
```

Sunucudan gelen bir `410`, aynı cümleyi `410` ile kullanır. Diğer kalıcı retler `Input file rejected: …` kullanır.

Yeniden denenebilir bir indirme hatası `502` veya `504`'tür. Gövdeye değil durum koduna göre dallanın ve yeniden deneyin.

| Durum | Ne alırsınız | Yeniden denenmeli mi? |
| - | - | - |
| `422` | Sunucu `404` döndürdüğünde JSON `{ "message": "Input file rejected: fetching <url> returned HTTP 404" }`. Sunucudan gelen bir `410`, aynı cümleyi `410` ile kullanır. | Hayır. Hata kalıcıdır. |
| `502` | `Content-Type: text/plain; charset=UTF-8` ile Cloudflare düz metni `error code: 502`. Dosya sunucusu `503`, `500` veya `429` döndürdüğünde ve alan adı çözümlenemediğinde doğrulanmıştır. | Evet. Durum koduna göre dallanın. |
| `504` | Canlı olarak test edilmedi. Bu da Cloudflare düz metni olarak gelebilir. | Evet. Durum koduna göre dallanın. |

Aynı URL için tekrarlanmaya devam eden bir `502`, büyük olasılıkla URL'nin engellendiği veya bozuk olduğu anlamına gelir. URL'yi değiştirin.

3D dışa aktarma dönüştürme hataları da `502`'dir. Bu yol canlı olarak test edilmedi; bu nedenle gövde de Cloudflare düz metni `error code: 502` olarak gelebilir. Durum koduna göre dallanın ve yeniden deneyin. Aynı model URL'si için tekrarlanmaya devam eden bir `502`, büyük olasılıkla URL'nin engellendiği veya bozuk olduğu anlamına gelir.

### `429` Eşzamanlılık

İş backlog'a alınamadığında, eşzamanlılık sınırını aşan bir istek `429` ve `Content-Type: application/json` ile reddedilebilir:

```json theme={"theme":{"light":"github-light-default","dark":"vesper"}}
{
  "message": "CONCURRENCY_LIMIT_REACHED",
  "limit": 4,
  "jobType": "k2"
}
```

`limit`, bu tür bir iş için eşzamanlılık sınırınızdır. Çalışma alanı başına değil, kullanıcı başına sayılır. Yaklaşıktır: kısa bir istek patlaması sınırın üzerinde kabul edilebilir, bu yüzden başarısız olanın `limit + 1` numaralı istek olacağına güvenmeyin. `jobType` herkese açık model yolu değil, dahili bir iş kategorisidir. Buna göre dallanmayın.

Krea 2, paylaşılan kuyruğu dolu olduğunda `limit` veya `jobType` olmadan yalnızca `{ "message": "CONCURRENCY_LIMIT_REACHED" }` da döndürebilir. Bu sizin sınırınız değildir. Geri çekilin ve yeniden deneyin.

Backlog yalnızca plan bunu içerdiğinde (Pro ve üzeri), model desteklediğinde ve istek [Zero Data Retention](https://www.krea.ai/docs/tr/developers/zdr.md) olmadığında açıktır. Krea 2 istekleri şu anda hiçbir planda backlog'a alınmaz; bu nedenle sınırın üzerinde `429` döndürür. Backlog açık olduğunda ek iş `status: "backlogged"` ile kabul edilir ve bir yer boşaldığında başlar. Ayrı bir backlog sınırı yoktur. Bkz. [Hız Sınırları](https://www.krea.ai/docs/tr/developers/rate-limits.md).

API, `Retry-After` veya `X-RateLimit-*` göndermez. Yanıt `cf-ray` içerir. `429` aldığınızda, devam eden işler tamamlandıktan sonra üstel geri çekilmeyle yeniden deneyin (`GET /jobs/{id}` ile sorgulayın veya bir webhook kullanın).

Daha sonraki bir tamamlanma bakiyeyi tüketirse, hâlâ backlog'da bekleyen işler `error.code` `"insufficient_balance"` ile başarısız olur. Bu bir HTTP `402` değil, başarısız bir iştir. Bu işler webhook göndermez; bu yüzden backlog'daki işler için `GET /jobs/{id}` ile sorgulama yapın.

## Agent İşlem API'si

`POST /agent/{operation}` ve `GET /agent/session/{sessionId}`, `{ "error", "code"?, "allowedModels"? }` döndürür. Yalnızca `error` zorunludur. `allowedModels` camelCase'dir. Kabul edildikten sonra başarısız olan bir tur, bu HTTP hatalarından biri olarak değil, oturumda `status: "failed"` olarak görünür. Bkz. [Agent](https://www.krea.ai/docs/tr/developers/agent.md).

| Durum | Gövde |
| - | - |
| `400` | `{ "error": "Invalid JSON body" }` |
| `401` | `{ "error": "Unauthorized" }` |
| `402` | `{ "error": "Insufficient compute balance for an Agent turn", "code": "compute_limit" }` veya `{ "error": "Free plan Agent message limit reached. Upgrade to keep using the Agent", "code": "free_message_limit" }`. |
| `403` | `{ "error": "Model is not included in the workspace plan", "code": "model_not_entitled", "allowedModels": ["..."] }`. |
| `404` | Bilinmeyen işlem: `{ "message": "Endpoint not found" }`. Aksi halde `{ "error": "Session not found or not accessible", "code": "not_found" }` veya `{ "error": "<file reference error>", "code": "attachment_not_found" }`. |
| `409` | `{ "error": "...", "code": "conflict" }`. |
| `422` | Hatalı girdi: [Doğrulama](#validation-422) bölümündeki gibi `{ "error": "Validation failed", "details": [...] }`. Diğer eşlenmiş hatalar `{ "error": "<message>" }` ve varsa `code` biçimindedir. Bağlantısı kesilmiş bir masaüstü uygulamasının `code` değeri yoktur; mesaj `That desktop app is not connected` ile başlar. |

Tanınmayan bir Agent hata kodu yine `{ "error", "code" }` ile `422` döndürür. Bilinmeyen işlem `404`'ü ve işlenmemiş bir `500`, `{ "message" }` kullanır ve `Accept` değerini izler.

## Başarısız İş `error.code` Değerleri

`GET /jobs` ve `GET /jobs/{id}`, `error` alanını yalnızca `status` değeri `"failed"` olduğunda ayarlar. Kullanılabilir bir `result` yoktur:

```json theme={"theme":{"light":"github-light-default","dark":"vesper"}}
{
  "status": "failed",
  "error": {
    "code": "content_policy",
    "message": "An external provider's moderation systems rejected the generation."
  }
}
```

> [!WARNING]
>
> `error.code` değerine göre dallanın. `message` alanını asla ayrıştırmayın.
>
> `message` atlanabilir. `provider_error` ve `internal` mesajları serbest biçimlidir ve bir `internal` mesajı, `failed to download media from the provided URL` gibi ham sağlayıcı metni olabilir. Tanımadığınız her `code` değerini `internal` olarak ele alın.

| `code` | `message` | Ne yapmalı |
| - | - | - |
| `content_policy` | `Krea's moderation systems rejected the generation.` veya `An external provider's moderation systems rejected the generation.` | Prompt'u veya girdileri değiştirin. Aynı istek büyük olasılıkla yine reddedilir. |
| `timeout` | `An external provider did not complete the generation in sufficient time.` | İşi yeniden deneyin. |
| `insufficient_balance` | Dahil edilmez. Bir node uygulaması bunun yerine `You are out of compute units. Add more compute units to continue running this node app.` döndürebilir. | Bakiye yükleyin, ardından yeniden gönderin. Bu iş daha önce kabul edilmişti; HTTP çağrısı `402` döndürmedi. |
| `auto_cancelled` | `Job repeatedly failed healthchecks and was automatically cancelled.` | İşi yeniden gönderin. |
| `model_unavailable` | Genellikle sağlayıcının kendi metni. Böyle bir metin yoksa `The provider retired this model. It no longer accepts new generations.` | Bu modeli çağırmayı bırakın. Varsa [Kullanımdan Kaldırmalar](https://www.krea.ai/docs/tr/developers/deprecations.md) sayfasındaki yedek modeli kullanın. |
| `provider_error` | Genellikle sağlayıcının kendi metni. | Geri çekilmeyle yeniden deneyin. |
| `internal` | Serbest biçimli veya dahil edilmez. | Daha sonra yeniden deneyin. Destekle iletişime geçerseniz `job_id` değerini belirtin. |
| `node_app_node_failed` | `Node "<type>" failed: <detail>` veya `Node "<type>" failed.` | `message` alanını okuyun. Node zaman aşımı gibi geçici bir sorunla karşılaştıysa uygulamayı yeniden çalıştırın. Aksi halde önce o node'u düzeltin. Uygulamanın kendi işi hiçbir zaman ücretlendirilmez. Her üretim veya LLM node'u, kendi işi tamamlandığında ücretlendirilir. Bir başarısızlık paralel node'ları veya diğer dalları iptal etmez; bu nedenle uygulama zaten başarısız olduktan sonra tamamlanan bir node da ücretlendirilir ve bu ücretler iade edilmez. Başarısız olan, iptal edilen veya hiç başlamayan bir node ücretlendirilmez. Node id'si ve node türü herkese açık iş nesnesinde yer almaz. |

Başarısız bir iş için webhook teslimatları, `error` dahil aynı iş nesnesini kullanır. İptal edilmiş bir teslimatta `error` bulunmaz. 256 KiB'den büyük bir yük gönderilmez ve o iş için başka teslimat yapılmaz; bu nedenle bunun yerine `GET /jobs/{id}` ile sorgulayın. Gövdeye güvenmeden önce imzayı doğrulayın. Bkz. [Webhooks](https://www.krea.ai/docs/tr/developers/webhooks.md).

## Hata Ayıklama

Krea'ya ait bir istek kimliği başlığı yoktur. Her yanıt Cloudflare'in `cf-ray` başlığını içerir. `Retry-After` veya `X-RateLimit-*` başlığı gönderilmez.

[support@krea.ai](mailto:support@krea.ai) adresine yazdığınızda şunları ekleyin:

* Çağrı bir iş oluşturduysa veya bir işi hedeflediyse `job_id`
* Zaman ve uç nokta
* İstek anındaki bir hata için `cf-ray` değeri

`Access-Control-Allow-Origin` değeri `*`'dır. Generate, jobs, assets, styles ve node apps uç noktalarında `Access-Control-Expose-Headers` ayarlı değildir; bu nedenle tarayıcı `fetch` işlevi `cf-ray`, `Deprecation` veya `Sunset` değerlerini okuyamaz. `cf-ray` değerini ağ günlüğünden veya sunucu tarafı bir istemciden kopyalayın.

Herhangi bir yanıtta, model çağrı kabul etmeyi bırakmadan önce `Deprecation` ve `Sunset` başlıklarını kontrol edin. Bkz. [Kullanımdan Kaldırmalar](https://www.krea.ai/docs/tr/developers/deprecations.md).

## Sonraki Adımlar

> **[İş Yaşam Döngüsü](https://www.krea.ai/docs/tr/developers/job-lifecycle.md)**
>
> İş tamamlanana, başarısız olana veya iptal edilene kadar durumu sorgulayın

> **[Webhooks](https://www.krea.ai/docs/tr/developers/webhooks.md)**
>
> Başarısız iş teslimatındaki imzayı doğrulayın

> **[Hız Sınırları](https://www.krea.ai/docs/tr/developers/rate-limits.md)**
>
> Ek işlerin ne zaman backlog'a alındığı ve ne zaman 429 döndürdüğü

> **[API Anahtarları ve Faturalandırma](https://www.krea.ai/docs/tr/developers/api-keys-and-billing.md)**
>
> 402 sonrasında API bakiyesini yükleyin


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.