Ana içeriğe geç

Hatalar ve diller

GuildGate hata yanıtı kararlı bir kod, kullanıcı mesajı, HTTP durumu ve retry bilgisinden oluşur.

if (!result.ok) {
console.error({
requestId: result.meta.requestId,
code: result.error.code,
status: result.error.status,
retryable: result.error.retryable,
});
}

Yanıt biçimi​

{
ok: false,
error: {
code: "revision_conflict",
message: "Kaynak başka bir işlem tarafından değiştirildi.",
status: 409,
retryable: false,
details: {
expected: 4,
current: 5,
},
},
meta: {
requestId: "...",
locale: "tr",
},
}

details yalnızca istemci için güvenli alanları içermelidir. SQL, stack, token veya ham driver hatası döndürme.

Dil çözümü​

Request locale desteklenen biçime çevrilir; desteklenmeyen değer için config default'u kullanılır. Paket tr ve en mesajları içerir.

locale: {
default: "tr",
messages: {
tr: {
maintenance: "Panel kısa süreli bakımda.",
},
},
}

Override anahtarı kararlı hata koduyla eşleşmelidir. Kod ile gösterilen mesajı birbirinden ayır; frontend mantığını çevrilmiş metne bağlama.

Önemli 1.1 hata alanları​

  • deadline/timeout
  • idempotency conflict
  • idempotency reservation loss
  • revision conflict
  • lock/lease alınamaması
  • malformed audit cursor
  • origin veya CSRF reddi
  • session required/expired/revoked
  • maintenance veya policy block
  • realtime subscription/message sınırı

Tam kod listesi için kurulu sürümün errors.d.ts ve runtime sonucunu esas al.

Retry kararı​

retryable: true, istemcinin hemen sınırsız tekrar yapması anlamına gelmez. İstemci:

  • Retry-After veya rate metadata'sını kullanmalı
  • exponential backoff uygulamalı
  • aynı idempotency key'i korumalı
  • kullanıcı etkileşimi gerektiren authorization hatasını tekrar etmemeli

Commit sonrası sorunlar​

Başarılı sonuçta meta.postCommitIssues bulunabilir. Bu durum domain yazımının başarısız olduğu anlamına gelmez. UI başarılı state'i göstermeli; server cache/realtime/audit tekrar yolunu işletmelidir.

Request ID​

Kullanıcıya destek kodu olarak requestId gösterilebilir. Aynı ID'yi application log, trace ve audit kaydında taşıyarak zinciri birleştir.

HTTP bağdaştırıcısı​

Resmi adapter'lar status ve cookie metadata'sını işler. Custom adapter:

  • status'u yalnızca bir kez yazmalı
  • error code'u değiştirmemeli
  • locale mesajını güvenli biçimde serializable hale getirmeli
  • clearSessionCookie ve replacement token'ları uygulamalı
  • server error cause'u istemciye sızdırmamalı