নিম্নলিখিত স্ট্যাটাস কোডগুলি জিআরপিসি প্রতিক্রিয়াগুলিতে ফেরত দেওয়া যেতে পারে। এই সাইটে নথিভুক্ত gRPC-এর সমস্ত সংস্করণের জন্য এটি প্রযোজ্য।
| কোড | স্ট্যাটাস | মন্তব্য |
|---|---|---|
| 0 | OK | Success ফিরে |
| 1 | CANCELLED | অপারেশনটি বাতিল করা হয়েছে, সাধারণত কলার দ্বারা। |
| 2 | UNKNOWN | উদাহরণস্বরূপ, এই ত্রুটিটি ফেরত দেওয়া হতে পারে যখন অন্য ঠিকানা স্থান থেকে প্রাপ্ত একটি স্ট্যাটাস মান একটি ত্রুটি-স্থানের অন্তর্গত হয় যা এই ঠিকানার স্থানটিতে পরিচিত নয়। এছাড়াও API-এর দ্বারা উত্থাপিত ত্রুটিগুলি যা যথেষ্ট ত্রুটির তথ্য প্রদান করে না এই ত্রুটিতে রূপান্তরিত হতে পারে৷ |
| 3 | INVALID_ARGUMENT | ক্লায়েন্ট একটি অবৈধ যুক্তি নির্দিষ্ট করেছে৷ |
| 4 | DEADLINE_EXCEEDED | অপারেশন সম্পূর্ণ হওয়ার আগেই সময়সীমা শেষ হয়ে গেছে। সিস্টেমের অবস্থা পরিবর্তন করে এমন অপারেশনগুলির জন্য, অপারেশনটি সফলভাবে সম্পন্ন হলেও এই ত্রুটিটি ফিরে আসতে পারে। উদাহরণস্বরূপ, একটি সার্ভার থেকে একটি সফল প্রতিক্রিয়া যা সময়সীমা শেষ হওয়ার জন্য যথেষ্ট দেরি হয়েছিল৷ |
| 5 | NOT_FOUND | কিছু অনুরোধ করা সত্তা খুঁজে পাওয়া যায়নি. |
| 6 | ALREADY_EXISTS | একটি ক্লায়েন্ট তৈরি করার চেষ্টা করেছে এমন সত্তা ইতিমধ্যেই বিদ্যমান। |
| 7 | PERMISSION_DENIED | কলারের নির্দিষ্ট অপারেশন চালানোর অনুমতি নেই। কিছু সম্পদ নিঃশেষ করার কারণে প্রত্যাখ্যানের জন্য PERMISSION_DENIED ব্যবহার করবেন না; সেই ত্রুটিগুলির জন্য পরিবর্তে RESOURCE_EXHAUSTED ব্যবহার করুন৷ যদি কলকারীকে সনাক্ত করা না যায় তবে PERMISSION_DENIED ব্যবহার করবেন না (সেই ত্রুটিগুলির জন্য UNAUTHENTICATED ব্যবহার করুন)। একটি PERMISSION_DENIED ত্রুটি কোড প্রাপ্ত করার জন্য অনুরোধটি বৈধ বা অনুরোধ করা সত্তা বিদ্যমান বা অন্যান্য পূর্ব-শর্তগুলিকে সন্তুষ্ট করে তা বোঝায় না৷ |
| 8 | RESOURCE_EXHAUSTED | কিছু রিসোর্স শেষ হয়ে গেছে, সম্ভবত একটি প্রতি-ব্যবহারকারী কোটা, অথবা সম্ভবত পুরো ফাইল সিস্টেমটি স্থানের বাইরে। |
| 9 | FAILED_PRECONDITION | অপারেশনটি প্রত্যাখ্যান করা হয়েছে কারণ অপারেশনটি কার্যকর করার জন্য সিস্টেমটি প্রয়োজনীয় অবস্থায় নেই৷ উদাহরণস্বরূপ, যে ডিরেক্টরিটি মুছে ফেলা হবে সেটি খালি নয় বা একটি অ-ডিরেক্টরিতে rmdir অপারেশন প্রয়োগ করা হয়। |
| 10 | ABORTED | অপারেশনটি স্থগিত করা হয়েছিল, সাধারণত একটি সিকোয়েন্সার চেক ব্যর্থতা বা লেনদেন বাতিলের মতো একযোগে সমস্যার কারণে। |
| 11 | OUT_OF_RANGE | অপারেশনটি বৈধ পরিসীমা অতিক্রম করার চেষ্টা করা হয়েছে৷ |
| 12 | UNIMPLEMENTED | অপারেশনটি বাস্তবায়িত হয় না বা এই পরিষেবাতে সমর্থিত/সক্ষম নয়৷ |
| 13 | INTERNAL | অভ্যন্তরীণ ত্রুটি. এর মানে হল যে অন্তর্নিহিত সিস্টেমের দ্বারা প্রত্যাশিত কিছু invariants ভেঙে গেছে। এই ত্রুটি কোড গুরুতর ত্রুটির জন্য সংরক্ষিত. |
| 14 | UNAVAILABLE | পরিষেবাটি বর্তমানে অনুপলব্ধ৷ এটি সম্ভবত একটি ক্ষণস্থায়ী অবস্থা যা ব্যাকঅফের সাথে পুনরায় চেষ্টা করলে সংশোধন করা যেতে পারে। |
| 15 | DATA_LOSS | পুনরুদ্ধারযোগ্য ডেটা ক্ষতি বা দুর্নীতি। |
| 16 | UNAUTHENTICATED | অনুরোধটির অপারেশনের জন্য বৈধ প্রমাণীকরণ শংসাপত্র নেই৷ |
কখনও কখনও একাধিক ত্রুটি কোড প্রযোজ্য হতে পারে. পরিষেবাগুলি প্রযোজ্য সবচেয়ে নির্দিষ্ট ত্রুটি কোডটি ফেরত দেবে। উদাহরণস্বরূপ, FAILED_PRECONDITION এর চেয়ে OUT_OF_RANGE পছন্দ করুন যদি উভয় কোডই প্রযোজ্য হয়। একইভাবে, FAILED_PRECONDITION এর চেয়ে NOT_FOUND বা ALREADY_EXISTS পছন্দ করুন।
FAILED_PRECONDITION বনাম ABORTED বনাম অনুপলব্ধ
নিম্নলিখিত একটি লিটমাস পরীক্ষা যা আপনাকে FAILED_PRECONDITION , ABORTED এবং UNAVAILABLE মধ্যে সিদ্ধান্ত নিতে সাহায্য করতে পারে:
-
UNAVAILABLEব্যবহার করুন যদি ক্লায়েন্ট শুধুমাত্র ব্যর্থ কল পুনরায় চেষ্টা করতে পারে। -
ABORTEDব্যবহার করুন যদি ক্লায়েন্টকে উচ্চ-স্তরে পুনরায় চেষ্টা করা উচিত, যেমন যখন একটি ক্লায়েন্ট-নির্দিষ্ট পরীক্ষা-এবং-সেট ব্যর্থ হয় যা নির্দেশ করে যে ক্লায়েন্টের একটি পঠন-সংশোধন-লেখার ক্রম পুনরায় চালু করা উচিত। -
FAILED_PRECONDITIONব্যবহার করুন যদি সিস্টেমের অবস্থা স্পষ্টভাবে ঠিক না হওয়া পর্যন্ত ক্লায়েন্ট পুনরায় চেষ্টা না করে। উদাহরণস্বরূপ, যদি একটি "rmdir" ব্যর্থ হয় কারণ ডিরেক্টরিটি খালি না থাকে, তাহলেFAILED_PRECONDITIONফেরত দেওয়া ভাল কারণ ক্লায়েন্টকে ফাইলগুলি ডিরেক্টরি থেকে মুছে না দেওয়া পর্যন্ত পুনরায় চেষ্টা করা উচিত নয়।
INVALID_ARGUMENT বনাম FAILED_PRECONDITION বনাম OUT_OF_RANGE
নিম্নলিখিতটি একটি লিটমাস পরীক্ষা যা আপনাকে INVALID_ARGUMENT , FAILED_PRECONDITION , এবং OUT_OF_RANGE এর মধ্যে সিদ্ধান্ত নিতে সাহায্য করতে পারে :
- সিস্টেমের অবস্থা নির্বিশেষে আর্গুমেন্ট সমস্যাযুক্ত হলে
INVALID_ARGUMENTব্যবহার করুন। যেমন: একটি বিকৃত URL - সিস্টেমের অবস্থার কারণে কোনো মান পরিসীমার বাইরে থাকলে
OUT_OF_RANGEব্যবহার করুন। উদাহরণস্বরূপ, start_date হলstart_date_restrictএর আগে। - সিস্টেমের অবস্থার কারণে মানটি অবৈধ হলে
FAILED_PRECONDITIONব্যবহার করুন, কিন্তু এটি একটিOUT_OF_RANGEমান নয়৷