Code

gRPC एपीआई के लिए कैननिकल गड़बड़ी के कोड.

कभी-कभी एक से ज़्यादा गड़बड़ी कोड लागू हो सकते हैं. सेवाओं को सबसे खास गड़बड़ी कोड लागू करना चाहिए, जो लागू हो. उदाहरण के लिए, अगर दोनों कोड लागू होते हैं, तो FAILED_PRECONDITION के बजाय OUT_OF_RANGE को प्राथमिकता दें. इसी तरह, FAILED_PRECONDITION की तुलना में NOT_FOUND या ALREADY_EXISTS ज़्यादा पसंद करें.

Enums
OK

कोई गड़बड़ी नहीं हुई, सफलता का मैसेज मिला.

एचटीटीपी मैपिंग: 200 ठीक

CANCELLED

कॉल को आम तौर पर, कॉल करने वाले व्यक्ति ने रद्द कर दिया.

एचटीटीपी मैपिंग: 499 क्लाइंट की तरफ़ से बंद अनुरोध

UNKNOWN

ऐसी गड़बड़ी जिसके बारे में कोई जानकारी नहीं है. उदाहरण के लिए, यह गड़बड़ी तब दिख सकती है, जब Status वैल्यू किसी अन्य ऐड्रेस स्पेस से मिली हो. यह गड़बड़ी वाली किसी ऐसी जगह से जुड़ी हो जिसे पते की जगह के तौर पर नहीं गिना गया है. इसके अलावा, एपीआई की ओर से इकट्ठा की गई ऐसी गड़बड़ियां जो गड़बड़ी की ज़्यादा जानकारी नहीं देती हैं, उन्हें इस गड़बड़ी में बदला जा सकता है.

एचटीटीपी मैपिंग: 500 सर्वर में गड़बड़ी

INVALID_ARGUMENT

क्लाइंट ने एक अमान्य तर्क दिया. ध्यान दें कि यह FAILED_PRECONDITION से अलग है. INVALID_ARGUMENT उन आर्ग्युमेंट को दिखाता है जो सिस्टम की स्थिति पर ध्यान दिए बिना समस्या पैदा करते हैं. जैसे, फ़ाइल का गलत नाम.

एचटीटीपी मैपिंग: 400 खराब अनुरोध

DEADLINE_EXCEEDED

कार्रवाई पूरी होने से पहले, समयसीमा खत्म हो गई थी. ऐसे ऑपरेशंस के लिए जो सिस्टम की स्थिति बदलते हैं, यह गड़बड़ी तब भी वापस आ सकती है, जब ऑपरेशन पूरा हो गया हो. उदाहरण के लिए, किसी सर्वर से मिले नतीजे के लिए, समयसीमा खत्म होने में ज़्यादा समय लग सकता है.

एचटीटीपी मैपिंग: 504 गेटवे टाइम आउट

NOT_FOUND

अनुरोध की गई कुछ इकाई (जैसे, फ़ाइल या निर्देशिका) नहीं मिली.

सर्वर डेवलपर के लिए नोट: अगर अनुरोध करने वाले सभी लोगों के लिए अनुरोध अस्वीकार कर दिया गया है, तो NOT_FOUND का इस्तेमाल किया जा सकता है. इसमें धीरे-धीरे सुविधा लॉन्च करने या बिना अनुमति वाली सूची में शामिल करने की अनुमति नहीं है. अगर किसी कक्षा के कुछ उपयोगकर्ताओं के लिए, ऐक्सेस को कंट्रोल करने का अनुरोध अस्वीकार किया जाता है, तो PERMISSION_DENIED का इस्तेमाल किया जाना चाहिए. जैसे, उपयोगकर्ता-आधारित ऐक्सेस कंट्रोल.

एचटीटीपी मैपिंग: 404 नहीं मिला

ALREADY_EXISTS

क्लाइंट ने जिस इकाई (जैसे, फ़ाइल या डायरेक्ट्री) को बनाने की कोशिश की वह पहले से मौजूद है.

एचटीटीपी मैपिंग: 409 विवाद

PERMISSION_DENIED

कॉल करने वाले व्यक्ति के पास यह कार्रवाई करने की अनुमति नहीं है. PERMISSION_DENIED का इस्तेमाल, कुछ संसाधनों को खत्म करने की वजह से अस्वीकार किए जाने के लिए नहीं किया जाना चाहिए (उन गड़बड़ियों के लिए RESOURCE_EXHAUSTED का इस्तेमाल करें). अगर कॉलर की पहचान नहीं हो पाती है, तो PERMISSION_DENIED का इस्तेमाल नहीं किया जाना चाहिए. इसके बजाय, UNAUTHENTICATED का इस्तेमाल करें. गड़बड़ी के इस कोड से यह पता नहीं चलता कि अनुरोध मान्य है या अनुरोध की गई इकाई मौजूद है या पहले की दूसरी शर्तों को पूरा करती है.

एचटीटीपी मैपिंग: 403 इस्तेमाल की अनुमति नहीं है

UNAUTHENTICATED

इस कार्रवाई में पुष्टि करने के लिए मिले मान्य क्रेडेंशियल नहीं हैं.

एचटीटीपी मैपिंग: 401 अनुमति नहीं है

RESOURCE_EXHAUSTED

कुछ संसाधन शायद खत्म हो गए हैं, यानी कि शायद हर उपयोगकर्ता के लिए कोई कोटा खत्म हो गया है या पूरे फ़ाइल सिस्टम में जगह नहीं बची है.

एचटीटीपी मैपिंग: 429 कई बार अनुरोध किया गया

FAILED_PRECONDITION

ऑपरेशन अस्वीकार कर दिया गया, क्योंकि सिस्टम में ऑपरेशन नहीं किया जा सकता. उदाहरण के लिए, जिस डायरेक्ट्री को मिटाना है वह खाली नहीं है. साथ ही, किसी गैर-डायरेक्ट्री पर rmdir ऑपरेशन लागू किया जाता है.

सेवा लागू करने वाले लोग, FAILED_PRECONDITION, ABORTED, और UNAVAILABLE में से किसी एक को चुनने के लिए, इन दिशा-निर्देशों का इस्तेमाल कर सकते हैं: (a) UNAVAILABLE. अगर कोई व्यक्ति, कॉल न कर पाने की फिर से कोशिश कर सकता है, तो UNAVAILABLE का इस्तेमाल करें. (b) अगर क्लाइंट हाई लेवल पर फिर से कोशिश करेगा, तो ABORTED का इस्तेमाल करें. उदाहरण के लिए, जब कोई क्लाइंट- तय किया गया टेस्ट और सेट नहीं हो पाता है, तो क्लाइंट को पढ़ने वाला बदलाव लिखने का क्रम रीस्टार्ट होने की जानकारी दी जाती है. (c) अगर क्लाइंट को सिस्टम की गड़बड़ी ठीक होने तक दोबारा कोशिश नहीं करनी चाहिए, तो FAILED_PRECONDITION का इस्तेमाल करें. उदाहरण के लिए, अगर डायरेक्ट्री के खाली होने की वजह से "rmdir" काम नहीं करता, तो FAILED_PRECONDITION दिखाया जाएगा. ऐसा इसलिए, क्योंकि अगर क्लाइंट ने डायरेक्ट्री से फ़ाइलों को नहीं मिटाया है, तो दोबारा कोशिश नहीं करनी चाहिए.

एचटीटीपी मैपिंग: 400 खराब अनुरोध

ABORTED

यह कार्रवाई रद्द हो गई थी. आम तौर पर, सीक्वेंसर जांच में गड़बड़ी होने या लेन-देन रद्द होने जैसी कई समस्याओं की वजह से यह काम नहीं होता था.

FAILED_PRECONDITION, ABORTED, और UNAVAILABLE के बीच फ़ैसला करने के लिए ऊपर दिए गए दिशा-निर्देश देखें.

एचटीटीपी मैपिंग: 409 विवाद

OUT_OF_RANGE

यह कार्रवाई मान्य श्रेणी से बाहर की गई. जैसे, फ़ाइल के आखिर में जाना या पढ़ना.

INVALID_ARGUMENT के उलट, यह गड़बड़ी उस समस्या के बारे में बताती है जिसे सिस्टम की स्थिति बदलने पर ठीक किया जा सकता है. उदाहरण के लिए, अगर किसी ऐसे ऑफ़सेट पर पढ़ने के लिए कहा जाता है जो [0,2^32-1] की रेंज में नहीं है, तो 32-बिट वाला फ़ाइल सिस्टम INVALID_ARGUMENT जनरेट करेगा. हालांकि, अगर मौजूदा फ़ाइल के साइज़ के अलावा, किसी ऑफ़सेट से पढ़ने के लिए कहा जाएगा, तो वह OUT_OF_RANGE जनरेट करेगा.

FAILED_PRECONDITION और OUT_OF_RANGE के बीच सही तरीके से ओवरलैप हो रहा है. हमारा सुझाव है कि जब लागू हो, तब OUT_OF_RANGE (ज़्यादा खास गड़बड़ी) का इस्तेमाल करें, ताकि किसी कॉल को दोहराने वाले कॉलर, OUT_OF_RANGE वाली गड़बड़ी को आसानी से देख सकें.

एचटीटीपी मैपिंग: 400 खराब अनुरोध

UNIMPLEMENTED

इस कार्रवाई को लागू नहीं किया गया है या यह इस सेवा में काम नहीं कर रही है.

एचटीटीपी मैपिंग: 501 को लागू नहीं किया गया

INTERNAL

अंदरूनी गड़बड़ियां. इसका मतलब है कि मौजूदा सिस्टम से उम्मीद किए गए कुछ वैरिएंट में गड़बड़ी है. यह गड़बड़ी कोड गंभीर गड़बड़ियों के लिए रिज़र्व है.

एचटीटीपी मैपिंग: 500 सर्वर में गड़बड़ी

UNAVAILABLE

फ़िलहाल, सेवा उपलब्ध नहीं है. यह बहुत कम समय के लिए होती है, जिसे बैकऑफ़ के साथ फिर से कोशिश करके ठीक किया जा सकता है. ध्यान दें कि एक से ज़्यादा बार काम न करने वाली कार्रवाइयों के लिए फिर से कोशिश करना हमेशा सुरक्षित नहीं होता.

FAILED_PRECONDITION, ABORTED, और UNAVAILABLE के बीच फ़ैसला करने के लिए ऊपर दिए गए दिशा-निर्देश देखें.

एचटीटीपी मैपिंग: 503 सेवा उपलब्ध नहीं है

DATA_LOSS

डेटा वापस नहीं पाया जा सकता या खराब हो सकता है.

एचटीटीपी मैपिंग: 500 सर्वर में गड़बड़ी