Skip to main content
LogBrew API hataları tek bir JSON zarfı kullanır. Program davranışı için code ve next_action alanlarını kullanın. error ve next alanlarını düz metin olarak gösterin. error veya next metninin ifadesiyle eşleştirme yapmayın.
Bazı yanıtlar limit, reset_at veya retry_after_seconds gibi alanlar ekler. Hata kodları tablosu bu alanları adlandırır.

Hata yanıtını ele alın

  1. HTTP durumunu okuyun.
  2. code alanını okumadan önce gövdenin JSON olduğundan emin olun.
  3. İstemci dalını seçmek için durumu ve code değerini birlikte kullanın.
  4. error ve next alanlarını düz metin olarak gösterin. Bunları HTML olarak işlemeyin veya komut olarak çalıştırmayın.
  5. Otomatik kurtarma için next_action kullanın. İstemci aksiyonu tanımıyorsa durun ve hatayı gösterin.
  6. Dönen limit, reset_at ve retry_after_seconds değerlerini başarısız istekle birlikte saklayın.
  7. Yeniden denemeden önce yeniden deneme kurallarını uygulayın.
Yanıtta JSON zarfı yoksa HTTP durumunu saklayın ve kodu kullanılamıyor olarak kaydedin. LogBrew code değeri uydurmayın. Bir proxy veya ağ hatası bu sonucu üretebilir. LogBrew code değerini HTTP durum adıyla değiştirmeyin. Örneğin bir 400 yanıtı invalid_json veya invalid_path içerebilir. Her kod farklı bir düzeltme gerektirir. Loglar için HTTP durumunu ve code değerini kaydedin. Gövdenin tamamını, kimlik bilgilerini veya kurtarma tokenlarını loglamayın.

Hata kodları

Aynı code birden fazla rotada görülebilir. next metni ve next_action değerleri rotaya göre değişebilir. Dönen değerleri kullanın. Bir uç nokta yalnızca kendi kimlik doğrulamasına, yöntemine, gövdesine ve sınırlarına uyan kodları döndürür. Bilinmeyen bir kimlik ile erişemediğiniz bir kimlik aynı yanıtı döndürebilir. Bir kimliğin hangi hesaba ait olduğunu bulmak için hata metnini kullanmayın. Bilinmeyen bir API yolu not_found ile 404 döndürür.

Sınır alanları

Güncel kotayı ve kullanımı hesap API’sinden okuyun.

Yeniden deneme kuralları

Yeniden deneme kararı için kodu ve işlemi kullanın. Durum tek başına yeterli değildir.
  • Başarısız tek bir istek için paralel yeniden denemeler başlatmayın.
  • rate_limited için yanıtta Retry-After ve X-RateLimit-After başlıkları da bulunur. İkisi de retry_after_seconds ile aynı saniye sayısını içerir.
  • Zaman aşımı, sonucun boş olduğunu kanıtlamaz.
Hız sınırı istek sıklığını denetler. Kullanım sınırı ise faturalandırma dönemi için hesap kotasını denetler. İkisi de 429 kullanır. Alanlarını ayrı tutun. Sınırlardan biri sürerken veri toplamanın veya okumanın geciktiğini gösterin. Eski verileri yeni bir okumanın sonucu gibi göstermeyin.

Yazma işlemleri

Zaman aşımı, 5xx yanıtı veya ağ hatası, bir yazma işleminin başarısız olduğunu kanıtlamaz. Bir yazma işlemini yeniden göndermeden önce:
  1. Rota idempotency anahtarını destekliyorsa aynı anahtarı ve aynı gövdeyi yeniden gönderin. Yeni anahtarı yalnızca yeni iş için kullanın.
  2. Rotanın idempotency anahtarı yoksa önce kaynağı okuyun. Yazma işlemini yalnızca değişiklik yoksa yeniden gönderin.
  3. Sonucu bulamıyorsanız otomatik yeniden denemeleri durdurun ve kullanıcıya bildirin.
Şu rotalar yeniden deneme anahtarı kabul eder: Bir Idempotency-Key değeri 1 ile 128 arasında görünür ASCII karakterden oluşur. Diğer değerler validation_failed ile 422 döndürür. idempotency_conflict, anahtarın farklı bir isteğe ait olduğu anlamına gelir. Asıl anahtarı kullanan bir yeniden denemenin gövdesini değiştirmeyin.

İstek yapısı hataları

invalid_json, sunucunun gövdeyi rotanın JSON yapısı olarak kabul edemediği anlamına gelir. İçerik türünü, gövde boyutunu, JSON söz dizimini, zorunlu alanları ve alan türlerini inceleyin. HTTP durumu hangi kısmın başarısız olduğunu gösterir: invalid query parameters hatasıyla birlikte validation_failed, sunucunun sorgu dizesini okuyamadığı anlamına gelir. Parametre adlarını ve değer türlerini inceleyin. Bilinmeyen sorgu parametreleri göndermeyin. Sorgu filtreleri sayfası her rotanın parametrelerini listeler. 400 durumuyla invalid_path, proje kimliği gibi bir yol değerinin biçiminin yanlış olduğu anlamına gelir. Bir yol değerini sorgu parametresine taşımayın. invalid_path veya invalid_multipart içeren bir 500 yanıtı, isteğin yanlış olduğunu kanıtlamaz. Yeniden deneme kurallarını uygulayın.

Kimlik doğrulama ve erişim hataları

  • unauthorized, hesap kimlik doğrulamasının olmadığı, geçersiz olduğu veya süresinin dolduğu anlamına gelir. Authorization: Bearer <token> gönderin veya yeniden giriş yapın. Bazı rotalar, rotaya özel bir next ile birlikte next_action.code için authorize_request döndürür; örneğin geçerli bir bileti olmayan canlı akış bağlantısı.
  • ingest_key_invalid yalnızca telemetri veri alımı için geçerlidir. Tam o proje için güncel bir anahtar yapılandırın.
  • forbidden, hesabın aksiyonu yapamadığı anlamına gelir. Başka kaynak kimlikleriyle yeniden denemeyin.
  • not_found, kaynağın hesap için kullanılamadığı anlamına gelir.
Hesap bearer tokenı yerine alım anahtarı kullanmayın. Alım anahtarı yerine hesap bearer tokenı kullanmayın.

Hata ayrıntılarını güvende tutun

  • account_recovery_available yanıtı kısa ömürlü bir recovery_token içerir. Bunu korumalı istemci durumunda tutun. Loglara, URL’lere, ekran görüntülerine, destek raporlarına veya agent promptlarına yazmayın.
  • 500 kodları her zaman Internal error mesajını kullanır. Yanıt, başarısız olan bileşeni adlandırmaz. Nedeni tahmin etmeyin.
  • Gösterdiğiniz bir hataya kimlik bilgisi, özel tanılama bilgisi veya müşteri verisi eklemeyin.
  • Bir API yanıtı satın alma, silme veya başka bir hesap değişikliği için izin vermez. Bu aksiyonlardan önce kullanıcının onayını alın.

Örnekler

Bu örnekler zarfın yapısını gösterir. error ve next metni her rotada farklı olabilir.

Doğrulama hatası

Geçersiz sorgu parametreleri

Geçersiz JSON

Geçersiz yol değeri

Geçersiz multipart yüklemesi

Geçersiz WebSocket yükseltmesi

Kimlik doğrulama hatası

Geçersiz alım anahtarı

Bu yanıt hesap okumaları için değil, telemetri veri alımı için geçerlidir. Anahtar, istekteki projeye ait olmalıdır.

Kaynak bulunamadı

Erişim reddedildi

Desteklenmeyen yöntem

İstek zaman aşımı

Idempotency çakışması

Hız sınırı

Kullanım sınırı

next metni ve next_action, plan değişikliğinin mümkün olup olmadığına bağlıdır. Mümkün değilse next_action.code değeri wait_or_contact_support, hedef ise support olur.

Derleme dosyası depolama sınırı

Hesap kurtarılabilir

Bu yanıt deleted_at ve kısa ömürlü bir recovery_token ekler. Tokenı korumalı istemci durumunda tutun.

Hesap kurtarma süresi doldu

Organizasyon duraklatıldı

Sunucu hatası

storage_error, json_error ve internal_error aynı error mesajını kullanır. code, next ve next_action değerleri farklıdır.
Uç noktalar, kimlik doğrulama ve filtreler için Telemetri API’si sayfasını okuyun.