Durum Yanıt Kodları

Aşağıdaki durum kodları gRPC yanıtlarında döndürülebilir. Bu durum, bu sitede belgelenen tüm gRPC sürümleri için geçerlidir.

Kod Durum Notlar
0 OK Success tarihinde dönün
1 CANCELLED İşlem, genellikle arayan tarafından iptal edildi.
2 UNKNOWN Örneğin, başka bir adres alanından alınan Durum değeri bu adres alanında bilinmeyen bir hata alanına ait olduğunda bu hata döndürülebilir. Ayrıca, yeterli hata bilgisi döndürmeyen API'lerin oluşturduğu hatalar da bu hataya dönüştürülebilir.
3 INVALID_ARGUMENT İstemci, geçersiz bir bağımsız değişken belirtti.
4 DEADLINE_EXCEEDED İşlem tamamlanmadan önce son tarih geçerliliğini yitirdi. Sistemin durumunu değiştiren işlemlerde, işlem başarıyla tamamlanmış olsa bile bu hata döndürülebilir. Örneğin, son tarihin sona ereceği kadar uzun süre gecikmiş bir sunucudan gelen başarılı yanıt.
5 NOT_FOUND İstenen bazı varlıklar bulunamadı.
6 ALREADY_EXISTS Bir istemcinin oluşturmaya çalıştığı varlık zaten var.
7 PERMISSION_DENIED Arayanın belirtilen işlemi yürütme izni yok. Bazı kaynakların tükenmesinden kaynaklanan retler için PERMISSION_DENIED kullanmayın; bu hatalar için bunun yerine RESOURCE_EXHAUSTED kullanın. Arayan kişi tanımlanamıyorsa PERMISSION_DENIED kullanmayın (bu hatalar için bunun yerine UNAUTHENTICATED kullanın). PERMISSION_DENIED hata kodu almak, isteğin geçerli olduğu, istenen varlığın var olduğu veya diğer ön koşulları karşıladığı anlamına gelmez.
8 RESOURCE_EXHAUSTED Kullanıcı başına kota gibi bir kaynak tükendi veya dosya sisteminin tamamında yer kalmadı.
9 FAILED_PRECONDITION Sistem, işlemin yürütülmesi için gerekli durumda olmadığından işlem reddedildi. Örneğin, silinecek dizin boş değildir veya dizin olmayan bir dizine rmdir işlemi uygulanmıştır.
10 ABORTED Genellikle sıralayıcı kontrolü hatası veya işlemin iptali gibi bir eşzamanlılık sorunu nedeniyle işlem iptal edilmiştir.
11 OUT_OF_RANGE İşlem geçerli aralığı aşacak şekilde yapılmaya çalışıldı.
12 UNIMPLEMENTED İşlem uygulanmadı veya bu hizmette desteklenmiyor/etkinleştirilmiyor.
13 INTERNAL Dahili hatalar. Bu, temel sistemin beklediği bazı sabitlerin bozulduğu anlamına gelir. Bu hata kodu ciddi hatalar için ayrılmıştır.
14 UNAVAILABLE Hizmet şu anda kullanılamıyor. Bu büyük olasılıkla geçici bir durumdur ve geri çekilme ile yeniden denetlendiğinde düzeltilebilir.
15 DATA_LOSS Kurtarılamaz veri kaybı veya bozulması
16 UNAUTHENTICATED İstekte işlem için geçerli kimlik doğrulama bilgileri bulunmuyor.

Bazen birden fazla hata kodu geçerli olabilir. Hizmetler, geçerli olan en spesifik hata kodunu döndürmelidir. Örneğin, her iki kod da geçerliyse FAILED_PRECONDITION yerine OUT_OF_RANGE tercih edin. Benzer şekilde, FAILED_PRECONDITION yerine NOT_FOUND veya ALREADY_EXISTS seçeneğini tercih edin.

FAILED_PRESTATUS - ABORTED - UNAVAILABLE karşılaştırması

Aşağıda FAILED_PRECONDITION, ABORTED ve UNAVAILABLE arasında karar vermenize yardımcı olabilecek bir değerlendirme testi verilmiştir:

  • İstemci yalnızca başarısız çağrıyı yeniden deneyebiliyorsa UNAVAILABLE değerini kullanın.
  • İstemcinin daha yüksek düzeyde yeniden denemesi gerekiyorsa (örneğin, istemci tarafından belirtilen bir test ve ayarlama başarısız olduğunda) ve istemcinin bir okuma-değiştirme-yazma sırasını yeniden başlatması gerektiğini belirten durumlarda ABORTED kullanın.
  • İstemcinin, sistem durumu açıkça düzeltilene kadar yeniden denememesi gerekiyorsa FAILED_PRECONDITION değerini kullanın. Örneğin, dizin boş olmadığı için bir "rmdir" başarısız olursa istemci, dosyalar dizinden silinmediği sürece yeniden deneme yapmayacağından en iyi yöntem FAILED_PRECONDITION hatası almaktır.

INVALID_ARGUMENT - FAILED_PRECondition - OUT_OF_RANGE karşılaştırması

Aşağıda INVALID_ARGUMENT, FAILED_PRECONDITION ve OUT_OF_RANGE arasında karar vermenize yardımcı olabilecek bir değerlendirme testi verilmiştir:

  • Sistemin durumundan bağımsız olarak bağımsız değişkenler sorunluysa INVALID_ARGUMENT kullanın. Örneğin: bozuk bir URL
  • Değer, sistemin durumu nedeniyle aralık dışındaysa OUT_OF_RANGE kullanın. Örneğin, başlangıç_tarihi start_date_restrict tarihinden öncedir.
  • Değer, sistemin durumu nedeniyle geçersizse ancak bir OUT_OF_RANGE değeri değilse FAILED_PRECONDITION değerini kullanın.