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

# Apex Hataları ve Hız Sınırları

> Her OrbitFlare Apex hatası: JSON-RPC kodları -32001, -32029, -32602 ve -32603, düz HTTP durumları, QUIC kabul kodları, hız sınırları ve her biri için ne yapılması gerektiği.

## Kabul Edilmiş Olması Bloğa Girdiği Anlamına Gelmez

Başarılı bir yanıt, Apex uç noktasının işleminizi elinde tuttuğu ve onu bloğa girene veya blockhash'inin süresi dolana kadar liderlere yarıştırdığı anlamına gelir. İşlemin bloğa girdiği anlamına **gelmez**. Her gönderimi bir Solana RPC üzerinde `getSignatureStatuses` ile onaylayın. [En iyi uygulamalar](/tr/apex/best-practices#her-gönderimi-onaylayın) sayfasına bakın.

Apex bir işlemi şu sırayla kontrol eder: API anahtarı, hız sınırı, işlemin geçerliliği ve boyutu, ardından bahşiş. Hatayı ilk başarısız olan kontrol belirler. Her kontrol geçilene kadar hiçbir yere hiçbir şey gönderilmez, dolayısıyla reddedilen bir işlemin maliyeti yoktur.

## JSON-RPC Hataları

| Kod      | Anlamı                                                                                                     | Ne yapmalı                                                                       |
| -------- | ---------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| `-32001` | Yetkisiz. API anahtarı eksik veya geçersiz                                                                 | `x-api-key` başlığını veya `?api-key=` parametresini kontrol edin                |
| `-32029` | Hız sınırına takıldı. Anahtarınız saniyelik sınırını aştı                                                  | Kısa süre geri çekilin ve yeniden deneyin. Ani yoğunlukları yayın                |
| `-32602` | Geçersiz işlem veya bahşiş. Mesaj neyin başarısız olduğunu söyler ve bahşiş yetersizse tabanınızı belirtir | İşlemi düzeltin. Aynı baytları yeniden denemek yine başarısız olur               |
| `-32603` | Meşgul. Uç nokta yük atıyor                                                                                | Kısa bir gecikmeden sonra yeniden deneyin veya başka bir Apex uç noktasına geçin |

```json theme={null}
{
  "jsonrpc": "2.0",
  "id": 1,
  "error": {
    "code": -32602,
    "message": "..."
  }
}
```

## Düz HTTP Hataları

`/send` ve `/send-bin` üzerinde başarı, `{"signature": "..."}` içeren HTTP `200` yanıtıdır. `/send-batch`, `{"attempted": n, "accepted": n, "rejected": n, "results": [...]}` ile `200` yanıtı verir; buradaki her sonuç, çerçeve sırasına göre, ya `{"signature": "..."}` ya da `{"error": "<label>", "message": "..."}` olur. `/send-bundle`, `{"bundle_id": "...", "signatures": ["...", "..."]}` ile `200` yanıtı verir.

Hatalar, makine tarafından okunabilir bir etiket ve insan tarafından okunabilir bir mesaj içeren JSON'dur:

```json theme={null}
{ "error": "<label>", "message": "..." }
```

| Durum | Anlamı                                 | Etiketler                                                                                                                                           |
| ----- | -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `401` | Yetkisiz                               | `unauthorized`                                                                                                                                      |
| `429` | Hız sınırına takıldı                   | `rate_limited`                                                                                                                                      |
| `400` | Geçersiz istek, işlem veya bahşiş      | `invalid`, `malformed`, `no_signatures`, `no_tip`, `below_floor`, `multiple_tips`, `tip_not_static`, `tip_source_not_signer`, `too_large`, `bundle` |
| `408` | İstek gövdesi 2 saniye içinde ulaşmadı | `timeout`                                                                                                                                           |
| `413` | İstek gövdesi çok büyük                | `too_large`                                                                                                                                         |
| `503` | Meşgul                                 | `busy`                                                                                                                                              |

<Note>
  Önce HTTP durumuna göre dallanın. Sözleşmenin kararlı kısmı odur. `400` altında tanımadığınız bir etiketi "işlemi düzeltin" olarak değerlendirin.
</Note>

`/send-batch`, isteğin kendisi düzgün biçimlendirilmiş olduğu sürece `200` yanıtı verir ve her çerçeveyi `results` içinde ayrı ayrı bildirir. Yalnızca durum koduna değil, `rejected` alanına ve her kayda bakın. [POST /send-batch](/tr/apex/sending-transactions#post-/send-batch) bölümüne bakın.

`bundle` etiketi (HTTP `400`), bir [paketin](/tr/apex/bundles) bütün olarak reddedildiği anlamına gelir: 4'ten fazla üye, yinelenen bir üye, bu anahtar veya uç nokta için paketlerin kullanılamaması ya da blok motorunun paketi reddetmesi. Tek bir üyeyle ilgili sorun kendi etiketini korur. 1232 baytı aşan bir üye, 1232 bayt sınırını belirten bir mesajla `malformed` olarak döner; bahşişli iki üye `multiple_tips`, bahşişli hiç üye olmaması ise `no_tip` olarak döner.

### Ayrıntılı Bahşiş Hataları

| Etiket                  | Ne yanlış gitti                                                       | Çözüm                                                                                      |
| ----------------------- | --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
| `no_tip`                | Yayınlanmış bir bahşiş hesabına üst düzey SystemProgram transferi yok | [Bahşiş talimatını](/tr/apex/tips) ekleyin. CPI aracılığıyla yapılan bir transfer sayılmaz |
| `below_floor`           | Bahşiş katmanınızın tabanının altında. Mesaj tabanı belirtir          | Bahşişi en az taban seviyesine yükseltin                                                   |
| `multiple_tips`         | Birden fazla bahşiş transferi var                                     | Tam olarak bir tane bırakın                                                                |
| `tip_not_static`        | Bahşiş hesabı bir adres arama tablosu üzerinden yüklendi              | Bahşiş hesabını statik hesap anahtarlarına koyun                                           |
| `tip_source_not_signer` | Bahşişi ödeyen hesap imzalamadı                                       | Bahşişi bir imzalayandan karşılayın                                                        |

## QUIC Kabul Kodları

Çift yönlü bir QUIC akışı tek bir kabul koduyla yanıt verir. Tek yönlü bir akış hiçbir şey döndürmez, bu yüzden entegrasyon sırasında çift yönlü bir akış kullanın.

| Kod | Ad               | Rust `AdmissionCode` | JSON-RPC karşılığı |
| --- | ---------------- | -------------------- | ------------------ |
| `0` | ok               | `Ok`                 | result             |
| `1` | unauthorized     | `Unauthorized`       | `-32001`           |
| `2` | rate limited     | `RateLimited`        | `-32029`           |
| `3` | invalid          | `Invalid`            | `-32602`           |
| `4` | no tip           | `NoTip`              | `-32602`           |
| `5` | below floor      | `BelowFloor`         | `-32602`           |
| `6` | busy             | `Busy`               | `-32603`           |
| `7` | malformed packet | `MalformedPacket`    | yok                |

QUIC **el sıkışmasının** kendisi reddedilirse bağlantı, uygulama hatası `1` (istemci sertifikası yok), `2` (bilinmeyen anahtar) veya `3` (çok fazla bağlantı) ile kapanır. [Kimlik doğrulama](/tr/apex/authentication#quic-istemci-sertifikası) sayfasına bakın.

Rust istemcisinde `send_transaction_with_response` bir reddi `Error::Rejected { code, message }` hatasına dönüştürür ve 4096 baytı aşan bir işlem, herhangi bir şey gönderilmeden önce yerel olarak `Error::TooLarge` ile başarısız olur.

## Hangi Hatalar Yeniden Denenmeli

| Hata                                         | Yeniden denensin mi?                                                                           |
| -------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| Hız sınırına takıldı (`-32029`, `429`)       | Evet, kısa bir geri çekilmeden sonra                                                           |
| Meşgul (`-32603`, `503`)                     | Evet, kısa bir gecikmeden sonra veya başka bir Apex uç noktasında                              |
| Yanıttan önce ağ hatası veya zaman aşımı     | Evet. Uç nokta imzaya göre tekilleştirir, dolayısıyla aynı işlemi yeniden göndermek güvenlidir |
| Geçersiz işlem veya bahşiş (`-32602`, `400`) | Hayır. İşlemi yeniden oluşturun                                                                |
| Yetkisiz (`-32001`, `401`)                   | Hayır. Anahtarı düzeltin                                                                       |

**Kabul edilmiş** bir işlemi yeniden göndermeniz gerekmez. Apex onu zaten bloğa girene veya blockhash'in süresi dolana kadar yeniden dener. O zamana kadar bloğa girmediyse onu yeni bir blockhash ile yeniden oluşturun ve yeni işlemi gönderin.

## Hız Sınırları

Hız sınırları **API anahtarı başınadır** ve anahtarın **katmanı** tarafından belirlenir. Sınır, tüm taşıma yöntemleri genelinde saniye başına işlemleri sayar: JSON-RPC, HTTP rotaları ve QUIC aynı kotadan yer ve toplu gönderimin her çerçevesi bir işlem olarak sayılır.

Sınırı aştığınızda `-32029`, HTTP `429` veya kabul kodu `2` alırsınız. Reddedilen işlem kuyruğa alınmaz, bu yüzden hâlâ önemliyse bir süre sonra yeniden gönderin.

Katmanınızın sınırı ve bahşiş tabanı, [OrbitFlare gösterge panelinde](https://orbitflare.com/dashboard) **Dashboard > Apex** altında anahtarın yanında gösterilir. Bunları yükseltmek için [Discord](https://discord.gg/orbitflare) üzerinden ekiple iletişime geçin.

## Bir Bakışta Sınırlar

| Sınır                        | Değer                                                                                           |
| ---------------------------- | ----------------------------------------------------------------------------------------------- |
| İşlem boyutu                 | Legacy ve v0: 1232 bayt. [v1](/tr/apex/transaction-v1): 4096 bayt                               |
| Toplu gönderim boyutu        | `/send-batch` isteği başına 16 işlem                                                            |
| Paket boyutu                 | 1 ila 4 işlem, her biri 1232 bayt                                                               |
| QUIC veri paketi boyutu      | 4160 bayt                                                                                       |
| QUIC bağlantıları            | API anahtarı başına 128, adres başına 64                                                        |
| QUIC boşta kalma zaman aşımı | 30 saniye. Rust istemcisi her saniye ping atar                                                  |
| Bağlantılar                  | Süreç ve Apex uç noktası başına bir QUIC istemcisi yeterlidir. Akışlar onun üzerinde çoğullanır |
