> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/reference/hi/errors-and-status-codes.md).

# त्रुटियाँ और स्टेटस कोड

Roboflow के डेवलपर टूल्स त्रुटि श्रेणियों का एक छोटा सेट साझा करते हैं, जिन्हें प्रत्येक टूल में अलग-अलग तरीके से दिखाया जाता है। यह पृष्ठ क्रॉस-कटिंग संदर्भ है।

## CLI निकास कोड

CLI चार सुव्यवस्थित निकास कोड का उपयोग करता है ताकि स्क्रिप्ट और AI एजेंट आउटपुट को पार्स किए बिना परिणाम के आधार पर शाखा बना सकें:

| निकास कोड | अर्थ                                                                                                       |
| --------- | ---------------------------------------------------------------------------------------------------------- |
| `0`       | सफलता                                                                                                      |
| `1`       | सामान्य त्रुटि (गलत इनपुट, नेटवर्क विफलता, अप्रत्याशित सर्वर प्रतिक्रिया)                                  |
| `2`       | प्रमाणीकरण विफलता (गायब या अमान्य API key, कोई workspace चयनित नहीं)                                       |
| `3`       | संसाधन नहीं मिला (project, version, workflow, deployment आदि मौजूद नहीं है या आपकी key को दिखाई नहीं देता) |

में `--json` मोड में CLI सफलता पर stdout में संरचित आउटपुट लिखता है और विफलता पर stderr में JSON त्रुटि ऑब्जेक्ट लिखता है, जिससे stdout खाली रहता है ताकि पाइपलाइनों को सुरक्षित रूप से पार्स किया जा सके:

```bash
roboflow --json project get nonexistent 2>error.json
echo $?       # 3
cat error.json
# {"error": {"message": "Project 'nonexistent' not found", "hint": "Run 'roboflow project list' to see your projects."}}
```

## SDK अपवाद

Python SDK विफलता पर Python अपवाद उठाता है। सबसे सामान्य प्रकार जिन्हें आप देखेंगे:

| अपवाद                                                | कब                                                                                                                                                               |
| ---------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `RuntimeError`                                       | ऑपरेशन तार्किक रूप से अमान्य है - जैसे कॉल करना `restore()` ऐसी project पर जो Trash में नहीं है, या ऐसी version पर training करना जो अभी तक generate नहीं हुई है। |
| `ValueError`                                         | पास किया गया argument गलत रूप से निर्मित है - जैसे कोई अपरिचित `model_format` के लिए `Version.download()`.                                                       |
| `roboflow.adapters.rfapi.RoboflowError`              | REST API ने non-2xx प्रतिक्रिया लौटाई। अपवाद की string में सर्वर का त्रुटि body होता है।                                                                         |
| `roboflow.adapters.deploymentapi.DeploymentApiError` | इसके समकक्ष `RoboflowError` dedicated-deployments सेवा के लिए।                                                                                                   |
| `requests.exceptions.HTTPError` / `ConnectionError`  | नेटवर्क-स्तरीय विफलताएँ (DNS, TLS, timeout)।                                                                                                                     |

सामान्य नियम: `RuntimeError` तार्किक समस्याओं के लिए, `RoboflowError` सर्वर-साइड अस्वीकृतियों के लिए, और बाकी सबको स्वयं ऊपर जाने दें।

```python
from roboflow.adapters import rfapi

try:
    project.restore()
except RuntimeError as e:
    print(f"Can't restore: {e}")
except rfapi.RoboflowError as e:
    print(f"Server rejected the request: {e}")
```

देखें [लॉगिंग और डिबगिंग](/reference/hi/platform/python-sdk/logging-and-debugging.md) जब कोई अपवाद पर्याप्त न हो, तो अंतर्निहित HTTP अनुरोध की जाँच कैसे करें, इसके लिए।

## REST API स्थिति कोड

REST API मानक HTTP स्थिति कोड का उपयोग करती है। Roboflow-विशिष्ट व्यवहार:

| स्थिति | अर्थ                                                                                                                                                                                                                                                                                                  |
| ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `200`  | सफलता। प्रतिक्रिया body JSON है।                                                                                                                                                                                                                                                                      |
| `204`  | सफलता, कोई body नहीं (कुछ `PATCH` / `DELETE` endpoints के लिए उपयोग किया जाता है)।                                                                                                                                                                                                                    |
| `400`  | गलत अनुरोध - आवश्यक field गायब, गलत संरचना, अमान्य मान।                                                                                                                                                                                                                                               |
| `401`  | प्रमाणीकरण विफलता। या तो कोई `api_key`नहीं, अमान्य key, या ऐसी key जो operation के लिए आवश्यक scope नहीं रखती।                                                                                                                                                                                        |
| `402`  | पेमेंट आवश्यक। workspace की योजना अनुरोधित ऑपरेशन का समर्थन नहीं करती। inference के लिए, इसका अर्थ है कि मॉडल या architecture केवल credit-based plan पर उपलब्ध है, या workspace का मासिक Hosted API inference quota पूरा हो गया है। प्रतिक्रिया body में एक `AccessException` त्रुटि प्रकार शामिल है। |
| `403`  | Forbidden. key ने प्रमाणीकरण तो किया, लेकिन target workspace या resource तक पहुँच नहीं है।                                                                                                                                                                                                            |
| `404`  | Not found. workspace, project, version, workflow, या अन्य resource मौजूद नहीं है (या आपकी key को दिखाई नहीं देता)।                                                                                                                                                                                    |
| `409`  | Conflict. resource ऐसी स्थिति में मौजूद है जो अनुरोधित ऑपरेशन को रोकती है (उदाहरण के लिए, ऐसी version को restore करना जिसका parent project भी Trash में है)।                                                                                                                                          |
| `423`  | Locked. workspace billing रुकी हुई है - कारण के लिए response body देखें।                                                                                                                                                                                                                              |
| `429`  | Rate limited. यदि response में एक `Retry-After` header है, तो पुनः प्रयास करने से पहले कम से कम उतने सेकंड प्रतीक्षा करें। अन्यथा exponential backoff के साथ पुनः प्रयास करें।                                                                                                                        |
| `5xx`  | सर्वर त्रुटि। backoff के साथ पुनः प्रयास करना सुरक्षित है।                                                                                                                                                                                                                                            |

### मानक त्रुटि body

त्रुटियाँ कम से कम एक शीर्ष-स्तरीय `error` field के साथ JSON लौटाती हैं:

```json
{
  "error": "Project 'nonexistent' not found"
}
```

कुछ endpoints में एक `hint` या एक संरचित त्रुटि ऑब्जेक्ट भी शामिल होता है - विवरण के लिए [REST API](/reference/hi/platform/rest-api.md) के अंतर्गत प्रति-endpoint दस्तावेज़ देखें।

### training read rate limits

training read endpoints (`GET /:workspace/:project/:version/v2/trainings`, `.../v2/trainings/get`और `.../v2/trainings/recipe`) अनुरोधों को प्रति API key और प्रति workspace गिनते हैं। उसी IP address से आने वाला अन्य ट्रैफ़िक आपके विरुद्ध नहीं गिना जाता। throttled अनुरोध एक `429` के साथ `Retry-After` header और यह body लौटाता है:

```json
{
  "error": {
    "code": "training_read_rate_limit_exceeded",
    "message": "Too many training read requests. Please retry later."
  }
}
```

गायब या अमान्य API key के साथ दोहराए गए अनुरोध अलग से, IP address के आधार पर सीमित किए जाते हैं। वे एक `429` plain text body के साथ और बिना `Retry-After` header के लौटते हैं।

### आवश्यक scopes

API keys में प्रति-resource scopes होते हैं। किसी write operation से आया 401 अक्सर इसका अर्थ होता है कि key के पास संबंधित `*:update` या `*:write` scope नहीं है, भले ही वह resource को पढ़ सकती हो। देखें [Scoped API Keys](/reference/hi/authentication/authentication/scoped-api-keys.md) scope संदर्भ के लिए।

## टूलों के बीच त्रुटि मैपिंग

| स्थिति                 | CLI exit | SDK                                      | REST  |
| ---------------------- | -------- | ---------------------------------------- | ----- |
| गायब / अमान्य API key  | `2`      | `RoboflowError` ("401")                  | `401` |
| संसाधन नहीं मिला       | `3`      | `RoboflowError` ("404") / `RuntimeError` | `404` |
| योजना सीमा / कोटा पार  | `1`      | `RoboflowError` ("402")                  | `402` |
| गलत इनपुट / गलत अनुरोध | `1`      | `ValueError` / `RoboflowError` ("400")   | `400` |
| सर्वर त्रुटि / अस्थायी | `1`      | `RoboflowError` ("5xx")                  | `5xx` |

पुनः प्रयास कॉन्फ़िगर करते समय इस तालिका का उपयोग करें: एक `2` / 401 को कभी भी स्वतः पुनः प्रयास नहीं करना चाहिए (key अधिक वैध नहीं हो जाएगी), एक `3` / 404 को कभी भी पुनः प्रयास नहीं करना चाहिए, लेकिन 5xx प्रतिक्रिया से आया एक `1` backoff के साथ पुनः प्रयास के लिए एक उम्मीदवार है।
