Code

gRPC API के लिए कैननिकल गड़बड़ी कोड.

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

Enums
OK

यह कोई गड़बड़ी नहीं है. यह अनुरोध पूरा होने पर दिखता है.

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

CANCELLED

कार्रवाई रद्द कर दी गई थी. आम तौर पर, ऐसा कॉल करने वाला व्यक्ति करता है.

एचटीटीपी मैपिंग: 499 अनुरोध की प्रोसेस होने के दौरान क्लाइंट ने कनेक्शन बंद कर दिया

UNKNOWN

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

HTTP मैपिंग: 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 Unauthorized

RESOURCE_EXHAUSTED

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

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

FAILED_PRECONDITION

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

सेवा लागू करने वाले लोग, इन दिशा-निर्देशों का इस्तेमाल करके यह तय कर सकते हैं कि FAILED_PRECONDITION, ABORTED, और UNAVAILABLE में से किसका इस्तेमाल करना है: (a) अगर क्लाइंट सिर्फ़ फ़ेल हुए कॉल को फिर से आज़मा सकता है, तो UNAVAILABLE का इस्तेमाल करें. (b) अगर क्लाइंट को ज़्यादा लेवल पर फिर से कोशिश करनी चाहिए, तो ABORTED का इस्तेमाल करें. उदाहरण के लिए, जब क्लाइंट की ओर से तय किया गया टेस्ट-एंड-सेट फ़ेल हो जाता है, तो इसका मतलब है कि क्लाइंट को read-modify-write सीक्वेंस को फिर से शुरू करना चाहिए. (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

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

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

UNAVAILABLE

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

FAILED_PRECONDITION, ABORTED, और UNAVAILABLE में से किसी एक को चुनने के लिए, ऊपर दिए गए दिशा-निर्देश देखें.

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

DATA_LOSS

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

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