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 का इस्तेमाल करें. (b) अगर क्लाइंट को बड़े लेवल पर फिर से कोशिश करनी है, तो ABORTED का इस्तेमाल करें. उदाहरण के लिए, जब क्लाइंट की ओर से तय किया गया टेस्ट और सेट पूरा नहीं हो पाता, तो क्लाइंट को 'रीड-राइट-राइट सीक्वेंस' रीस्टार्ट करना होगा. (c) अगर क्लाइंट को सिस्टम की स्थिति को ठीक किए जाने तक फिर से कोशिश नहीं करनी चाहिए, तो FAILED_PRECONDITION का इस्तेमाल करें. उदाहरण के लिए, अगर डायरेक्ट्री के खाली न होने की वजह से, "rmdir" काम नहीं करता, तो FAILED_PRECONDITION दिखाया जाना चाहिए. ऐसा इसलिए, क्योंकि क्लाइंट को डायरेक्ट्री से मिटाए जाने तक, फिर से कोशिश नहीं करनी चाहिए.

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

ABORTED

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

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

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

OUT_OF_RANGE

ऑपरेशन का मान्य सीमा से पहले प्रयास किया गया था. उदाहरण: फ़ाइल के आखिर में जानकारी ढूंढना या पढ़ना.

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