Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Sorun giderme

Bu sayfa, entegrasyonda karşılaşacağınız sorunları belirti, neden, çözüm üçlüsüyle listeler. Belirtiyi hata kodundan ya da durum kodundan bulun. Kod tablolarının tamamı için hata referansı.

Not

Sorun bildirirken şunları ekleyin: çağrılan yol ve yöntem, durum kodu ve gövde (gizli değerler çıkarılmış), istek zamanı (UTC) ve eklenti uçlarında x-request-id/requestId. Sunucu hata ayrıntısı dışarı sızdırmaz; bu bilgiler incelemeyi hızlandırır.

Kimlik ve oturum

BelirtiOlası nedenÇözüm
Sunucu çağrısı 401 unauthorizedAuthorization: Bearer crx_live_… başlığı yok ya da biçimi yanlış; anahtar iptal edilmiş, devre dışı ya da süresi dolmuş; anahtar başka ortama aitBaşlığı ve anahtarı kontrol edin; panelde anahtarın durumuna ve ortamına bakın (API anahtarları). Sunucu “yanlış anahtar” ile “iptal edilmiş“i ayırt etmez
Sunucu çağrısı 403 permission deniedİstemci anahtarıyla sunucu ucu çağırıyorsunuzSunucu anahtarı kullanın (uç noktalar: “Sunucu anahtarı” olan uçlar)
Oyuncu çağrısı 401x-crx-env başlığı yok ya da UUID değil; oturum yok, süresi dolmuş ya da iptal; ortam uyuşmuyorBaşlığı ekleyin; oturumu yenileyin ya da yeniden giriş yapın. Yasaklı hesap da 401 görünür (ayrım yapılmaz)
Oyuncu 403 permission denied (POST)CSRF çifti eksik/eşleşmiyor; jeton zaten kullanılmış; Origin izinli değilAşağıdaki CSRF satırlarına bakın
Girişte 403 ve {"code":"account_banned"}Hesap yasaklıOyuncuya askı ekranı gösterin; yeniden deneme döngüsü kurmayın; yeni misafir açmayın
Oturum beklenenden önce bitiyor30 gün hiç istek yapılmadı; ya da 180 günlük mutlak tavan doldu; parola değişti (tüm oturumlar düşer); ortamda “tek aktif oturum” açık ve başka cihazdan girildiYeniden giriş akışı kurun; davranış güvenlik sayfasında
Tarayıcıda oturum çerezi hiç kurulmuyorHTTP üzerinden çalışıyorsunuz (Secure + __Secure- öneki); API başka bir alan adında (çerez üçüncü taraf olur, SameSite=Lax); tarayıcı çerezleri engelliyorHTTPS ve aynı köken kullanın (mimari ve barındırma)
429 rate limited giriş/kayıttaIP başına hız sınırı doldu (misafir 30/dk, e-posta girişi 5/dk…)Bekleyin; çok oyuncu tek IP’den geliyorsa ya da vekil istemci IP’sini iletmiyorsa hız sınırları ve üretim kontrol listesi
E-posta girişi başarısız, parola doğruBaşarısız deneme kilidi (adres + IP başına 10/15 dk)15 dakika bekleyin ya da parola sıfırlayın

CSRF ve Origin

BelirtiOlası nedenÇözüm
Her POST 403x-csrf-token başlığı ya da __Secure-crx.csrf çerezi gönderilmiyorGET /v1/auth/csrf ile jeton alın; çerezi ve başlığı birlikte gönderin. SDK bunu otomatik yapar
İlk POST geçiyor, ikincisi 403CSRF jetonu tek kullanımlıktır ve her başarılı yanıtla yenilenir; yanıtın yeni değerini saklamadınız ya da iki isteği aynı jetonla paralel gönderdinizHer yanıttaki yeni x-csrf-token ve Set-Cookie değerini kullanın; değiştirici istekleri sıraya koyun
Yalnız tarayıcıda 403, curl’de çalışıyorOrigin ortamın izinli kökenlerinde değil; Sec-Fetch-Site: cross-site ile gezinme isteğiOyunun alan adını ortam alan adı olarak tanımlayın (Oyun ayarları: ortamlar); API’yi aynı kökenden çağırın
Tarayıcı konsolunda “CORS policy” hatasıOyunun alan adı hiçbir ortamın alan adı listesinde ya da genel izinli listede değil (sunucu o origin’e CORS vermez); ya da https://<alan adı> dışında bir origin (http, port, null)Alan adını ortam alan adı olarak ekleyin (Oyun ayarları: ortamlar); olmuyorsa aynı köken ters vekil kurun. Vekilinize ek CORS başlığı eklemeyin

Çağrı hataları

BelirtiOlası nedenÇözüm
404 ve JSON module_disabled (module alanı)Ürün modülü ortamda kapalıPanelde modülü açın (modüller)
404 not foundKaynak yok, silinmiş ya da yanlış ortamKimliği ve ortamı kontrol edin
400 “Idempotency-Key zorunlu” benzeri mesajAnahtar zorunlu uçta başlık yok ya da boş/200+ karakterBaşlığı ekleyin (idempotency)
400 “geçerli UUID olmalı”Klan, grup ya da turnuva ucunda anahtar UUID değilUUID v4 üretin
400 If-Match hatası*, W/"3", negatif ya da sayısal olmayan değerTam sürüm numarası gönderin (3 ya da "3")
409 version conflictKaynak siz okuduktan sonra değiştiYeniden okuyun, yeni sürümle tekrar edin
409 idempotent request in progressAynı anahtarlı istek hâlâ işleniyorKısa süre sonra aynı anahtarla tekrar edin
422 idempotency mismatchAynı anahtarı farklı gövdeyle kullandınızHer farklı işlem için yeni anahtar; aynı işlemin tekrarında gövdeyi değiştirmeyin (anahtarın ortam genelinde benzersiz olduğunu unutmayın)
422 unprocessable: …İş kuralı reddi (bakiye, stok, limit)Durumu okuyup kullanıcıya gösterin; aynı isteği tekrarlamayın
410Anahtarın 24 saatlik kayıt süresi dolduDurumu okuyup işlem uygulanmadıysa yeni anahtarla yeniden başlatın
413Gövde 2 MiB üstüGövdeyi küçültün; görsel için görsel yükleme ucunu kullanın
429Oran sınırı ya da kural bütçesiBekleyip aynı anahtarla tekrar edin; kural bütçesi için kuralı sadeleştirin
503 ve Retry-After: 30Ortamın yerleşimi geçici kullanılamıyorRetry-After kadar bekleyip tekrar edin
Büyük sayı bozuk (9007199254740993 yerine 9007199254740992)JSON’u JSON.parse ile okudunuz; int64 JS number’ına sığmadıSDK’nın bigint okumasını ya da lossless-json kullanın (sayılar)
Contract türünde SDK hatasıYanıt, SDK’nın bildiği şemaya uymuyor (sunucu daha yeni) ya da yanıt 2 MiB üstüSDK’yı güncelleyin; sunucu ve SDK sürümlerini eşleştirin

Eklentiler

BelirtiOlası nedenÇözüm
403 ve forbiddenEklenti ortamda etkin değil (salt okunur, boşaltılıyor, kapalı) ya da ortamın eklenti sürümü sunucudakiyle uyuşmuyor; CSRF/Origin reddiPanelde eklentinin durumuna ve sürümüne bakın (Eklentiler)
400 ve invalid_argument (“x-crx-schema-version is required”)x-crx-schema-version başlığı yok ya da şema sürümü yanlış; yük şemaya uymuyor; sorguda aynı parametre iki kezİşlemin schemaVersion değerini ve girdi şemasını şema belgesinden doğrulayın
404 ve not_foundEklenti kimliği ya da mesaj türü yanlış; mesaj türü ile işlem adını karıştırdınızŞema belgesindeki requestMessageType değerini yola yazın
409 idempotency_in_flightAynı anahtarlı komut işleniyorretryable: true; bekleyip aynı anahtarla tekrar edin
422 unprocessable + reasonEklenti iş kuralı reddireason eklentiye özgü koddur; eklentinin belgesine bakın; tekrar etmek işe yaramaz
Komut sonucu belirsizAğ koptu…/result?idempotency_key=… ile sorgulayın ya da aynı anahtarla tekrar edin (eklentileri çağırma)
SDK upgrade_required (plugin_binding_mismatch)Bağlamanın sabitlemesi (pin) elinizdeki beklentiyle ya da sunucudaki belgeyle uyuşmuyorGüncel belgeyi alıp bağlamayı yeniden üretin (bağlamalar)
Üretilmiş bağlamada Cannot find module '@open-play/sdk/player'Üretici içe aktarımı @open-play/sdk adıyla yazar; yayımlanan paketin adı @ferdiunal/open-play-ts’tirpackage.json’da takma ad tanımlayın: "@open-play/sdk": "npm:@ferdiunal/open-play-ts@<sürüm>"
crx plugins generate hatası: CRX TYPES FAILÖzet uyuşmuyor, çıktı dosyası zaten var, çıktı klasörü yok ya da yolda sembolik bağ varÖzeti belgedeki schemaSha256 ile eşleyin; mevcut çıktıyı silin; klasörü oluşturun

Realtime

BelirtiOlası nedenÇözüm
Bilet isteği 403Kimlik, CSRF, Origin ya da x-crx-env hatası (hepsi aynı yanıtı alır)CSRF ve Origin kontrol edin; oyunun alan adı ortam alan adı listesinde olmalıdır
Yükseltme 401Sorgu dizesi var, openplay.realtime.v1 alt protokolü istenmedi ya da Origin izinli değilProtokol: soketi aç
Hemen AuthenticationFailed ve kapanmaBilet kullanılmış (tek kullanım), 30 sn dolmuş ya da farklı Origin’den alınmış; 5 sn içinde Authenticate gelmediHer bağlantıda yeni bilet; soket açılınca hemen Authenticate gönderin
UnexpectedFrameYanlış fazda çerçeve (kimlik doğrulamadan önce Join, ikinci Authenticate)Sırayı protokole göre kurun
InvalidPayloadBozuk JSON, bilinmeyen alan, şemaya uymayan yük, int64 sayı olarak gönderildiSayaçları ondalık metin gönderin; yükü şemaya göre doğrulayın
CapacityExceeded ve kapanmaÇerçeve hızı 40/sn üstü; oyuncu başına 4 ya da adres başına 8 soketGönderimi azaltın; eski sekmeleri kapatın
Soket 5 dakikada kapanıyor (4100)Boşta kapanma“Devam et” akışı; canlı tutma girdisi (limitler)
Girdiler Ack: StaleAynı oyuncunun daha yeni bir soketi açıldıEski soketi kapatın; tek soketle çalışın
ResyncRequired döngüsüSüresi geçmiş ya da boşluklu imleçle ısrarİmleci atın, imleçsiz Join edin
/v1/ws ya da /v1/chat/ws tarayıcıda 401Bu iki soket yükseltmede x-crx-env başlığı ister; tarayıcı başlık ekleyemezTarayıcıda REST kullanın (realtime genel bakış)

Webhook’lar

BelirtiOlası nedenÇözüm
Uç noktama hiç istek gelmiyorUç nokta kayıtlı değil, silinmiş ya da devre dışı; olay türü abone listesinde yok; webhooks modülü kapalı (teslimatlar yerinde bekler, veri silinmez); uç nokta herkese açık değilPanelde uç noktayı ve modülü kontrol edin (Webhook ve olay kuyruğu)
Kayıt 400Adres https değil; özel/loopback IP ya da kullanıcı bilgisi içeriyorGenel erişilebilir https adres verin (güvenlik)
İmza uyuşmuyorGövdeyi ayrıştırıp yeniden serileştirdiniz (ham bayt gerekir); gizli anahtar yanlış (whsec_… metnin kendisi, base64 değil); t. önekini unuttunuzHam gövdeyi doğrulayın; örnek: güvenlik
Zaman damgası reddiSunucunuzun saati sapmışSaati NTP ile eşitleyin; pencereyi 5 dakikada tutun
Aynı olay iki kez geldiTeslimat en az bir kez (at-least-once)X-Crx-Event-Id ile tekilleştirin
Teslimatlar failed10 denemede 2xx alınamadıAlıcı hatasını giderin. Panel teslimatları yalnız izlemek içindir (yeniden gönderme/replay eylemi yoktur); kaçırılan olayların etkisini ilgili kaynağı REST ile okuyarak telafi edin
Büyük olay gelmediGövde 64 KiB üstü gönderilmezOlay boyutunu küçültün

Unity

BelirtiOlası nedenÇözüm
Paket kurulmuyor~/.upmconfig.toml ya da kapsamlı kayıt defteri yapılandırması eksik; belirteçte read:packages yokUnity SDK kurulum adımları
WebGL’de istekler engelleniyorOyun ve API aynı kökende değil; Unity WebGL SDK’sı bugün aynı kökeni şart koşarAynı köken ters vekil kurun (Unity SDK)
UpgradeRequired (plugin_binding_mismatch)Pakete gömülü package-ride bağlaması sunucudakiyle uyuşmuyorSDK’yı güncelleyin
Çalışma zamanında oturum geri yüklenmiyorGizli saklama varsayılanı güvenli değil (PlayerPrefs)Unity SDK: kendi güvenli saklamanızı bağlayın

Hâlâ çözülmediyse

  1. Aynı isteği curl ile (gizli değerleri koruyarak) tekrarlayın; sorun SDK’da mı, ağda mı, sunucuda mı ayırın.
  2. Durum kodunu hata referansında bulun.
  3. Üretim kontrol listesindeki ağ maddelerini (başlık iletimi, istemci IP’si, HTTPS) gözden geçirin.
  4. Destek talebine yukarıdaki bilgileri ekleyin.