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

# Hatalar

> Hata biçimi, bütün hata türleri ve her biri için yapılacaklar.

Her hata aynı biçimdedir:

```json theme={null}
{
  "error": {
    "type": "invalid_attributes",
    "message": "Some attributes could not be stored.",
    "details": [{ "key": "exam_year", "message": "expected a number" }]
  }
}
```

`type` kararlı bir makine adıdır. Kodunuzu buna göre dallandırın. `message`
insan okuru için tek bir cümledir ve değişebilir. `details`, Kai hataya yol
açan özellikleri veya kimlikleri adlandırabildiğinde bulunur.

## Durum kodları

| Kod | Anlamı                                            |
| --- | ------------------------------------------------- |
| 200 | İstek başarılı oldu.                              |
| 201 | Bir kayıt oluşturuldu.                            |
| 400 | Kai isteği okuyamadı.                             |
| 401 | API anahtarı eksik veya geçerli değil.            |
| 403 | Anahtarda, bu uç noktanın gerektirdiği yetki yok. |
| 404 | Bu çalışma alanında böyle bir kayıt yok.          |
| 409 | Yazma işlemi, var olan bir kayıtla çakışıyor.     |
| 422 | Kai isteği okudu ama bir özelliği saklayamadı.    |

Toplu işlem uç noktası, Kai isteği anladığı her durumda 200 döndürür, içindeki
her işlem başarısız olsa bile. `summary.errors` değerini ve `results` dizisini
okuyun.

## Hata türleri

### `unauthorized` (401)

Anahtar eksik, tanınmıyor, iptal edilmiş veya süresi dolmuş. Mesaj dördü için
de aynıdır, böylece bir çağıran hangi anahtar kimliklerinin var olduğunu
öğrenemez.

Başlığın `Authorization: Bearer kai_live_...` biçiminde olduğundan emin olun.
Sonra anahtarın iptal edilmediğinden emin olun: **Ayarlar → API
(Settings → API)**.

### `forbidden` (403)

Anahtar geçerli, ama bir yetkisi eksik. Mesaj bu yetkinin adını verir. Bu
yetkiye sahip bir anahtar oluşturun: **Ayarlar → API (Settings → API)**.

### `invalid_request` (400)

Gövde veya bir sorgu parametresi yanlış. Mesaj hangisi olduğunu söyler. Sık
görülen nedenler:

* istek hiçbir kimlik taşımıyor, bu yüzden Kai'nin eşleştirecek bir şeyi yok;
* bir alan yanlış JSON türü tutuyor;
* çalışma alanının hiçbir üyesine ait olmayan bir `owner` değeri;
* Kai'nin vermediği bir `cursor` değeri.

### `identity_conflict` (409)

İstekteki kimlikler iki farklı kişiye aittir. Kai kişileri birleştirmez.
`details` bu kimliklerin adını verir.

Çakışmayı Kai içinde, **Kişiler** altında düzeltin veya her kişiye kendi Kai
kimliğiyle yazın. Bakınız: [Kimlik](/tr/concepts/identity).

### `invalid_attributes` (422)

Bir veya daha fazla özellik saklanamadı. `details` her anahtarı ve nedenini
verir:

| Neden                                  | Ne yapmalı                                                 |
| -------------------------------------- | ---------------------------------------------------------- |
| `no such workspace attribute`          | Özelliği `POST /attributes` ile oluşturun.                 |
| `this workspace attribute is archived` | `DELETE /attributes/{key}?restore=true` ile geri yükleyin. |
| `expected a number`                    | Bir sayı gönderin veya sayı tutan bir metin gönderin.      |
| `expected one of: ...`                 | `select` özelliğinin seçeneklerinden birini gönderin.      |
| `expected a date as YYYY-MM-DD`        | Zaman damgası değil, takvim günü gönderin.                 |

Hatalı bir özellik taşıyan bir istekte Kai özelliklerin hiçbirini saklamaz.
Değeri düzeltin ve isteği yeniden gönderin.

### `type_conflict` (409)

`POST /attributes`, var olan bir anahtarı farklı bir türle gönderiyor. Bir
özelliğin türü değişemez. Özelliği arşivleyin ve yeni bir API adıyla başka bir
özellik oluşturun.

### `too_many_operations` (400)

Bir toplu istek 1000'den fazla işlem taşıyor. Mesaj kaç istek göndermeniz
gerektiğini söyler. Bakınız:
[Çok sayıda kişi içe aktarma](/tr/guides/bulk-import).

### `not_found` (404)

Anahtarın çalışma alanında bu kimlikle bir kayıt yok. Bir anahtar yalnızca tek
bir çalışma alanına erişir, bu yüzden başka bir çalışma alanından gelen kimlik
403 değil 404 yanıtı alır.

## Yeniden deneme

Bir `500` yanıtı ve ağ zaman aşımı yeniden denenebilir. Bütün yazma uç
noktaları kimliğe göre eşleşir, bu yüzden yinelenen bir istek aynı kişiyi
günceller ve kopya oluşturmaz.

400, 403, 409 veya 422 yanıtlarını yeniden denemeyin. Aynı istek aynı biçimde
başarısız olur. Önce isteği düzeltin.
