Vead
Käsitle HTTP API suletud veakoodide hulka ja nende struktureeritud üksikasju.
Iga ebaõnnestunud toiming tagastab ühesuguse JSON-kuju:
1{2 "error": {3 "code": "INVALID_ARGUMENT",4 "message": "Human-readable explanation",5 "details": {}6 }7}code ja message on alati olemas. details on valikuline ja sisaldab selle vea masinloetavat konteksti. Tee otsused välja code põhjal, mitte sõnumi teksti järgi.
Veakoodid
| Kood | HTTP olek | Tähendus |
|---|---|---|
INVALID_ARGUMENT | 400 | JSON või mõni argument on vigane, nõutud idempotencyKey puudub või on vaja kinnitust. |
UNAUTHENTICATED | 401 | Beareri mandaat puudub või on kehtetu. |
FORBIDDEN | 403 | Mandaadil pole toimingu jaoks vajalikku õigust või allkirjastatud tõendilink on kehtetu või aegunud. |
NOT_FOUND | 404 | Ressurssi pole olemas või kutsujal pole sellele ligipääsu. |
CONFLICT | 409 | Muudatus on vastuolus olemasolevaga, näiteks keskkonna nimi on juba kasutusel või idempotencyKey taaskasutati teiste argumentidega. |
LIMIT_REACHED | 402 | Reserveeritud paketi piirangute jaoks. Praegu seda ei tagastata: vaata Paketi piirangud. |
UNAVAILABLE | 503 | Autonomy ei saanud toimingut praegu lõpule viia. Proovi hiljem uuesti. |
Ootamatu viga kasutab samuti koodi UNAVAILABLE sõnumiga „The operation could not be completed.“, kuid tagastab HTTP 500.
Vigane JSON tagastab 400 INVALID_ARGUMENT sõnumiga „Invalid JSON body.“ ja keha, mis pole JSON-objekt, sõnumiga „The JSON body must be an object.“ 401 vastus sisaldab ka WWW-Authenticate väljakutset.
Levinud sõnumid
| Kood | Sõnum | details |
|---|---|---|
INVALID_ARGUMENT | idempotencyKey is required for this operation. | field |
INVALID_ARGUMENT | limit must be an integer between 1 and 100. | |
INVALID_ARGUMENT | Give exactly one of testCaseId or testPlanId. | |
INVALID_ARGUMENT | Give either environmentSlug or targets, not both. | |
FORBIDDEN | This operation requires the <scope> scope. | scope |
NOT_FOUND | Project not found. / Test Case not found. / Test Plan not found. / Run not found. / Environment not found. / Issue not found. | ID, mille saatsid |
CONFLICT | idempotencyKey was already used with different arguments. | |
CONFLICT | That name is taken in this organization. Pick another. |
Käivitus, mida ei saa alustada, tagastab samuti INVALID_ARGUMENT, näiteks kui testiplaanis pole ühtegi testjuhtumit või testjuhtumil on endiselt ainult enne v0.5 loodud sammud.
Kinnituse üksikasjad
Toimingud, mis midagi asendavad, tagastavad kirjutamise asemel eelvaate, kui confirm: true puudub. Näiteks test_case.update_steps tagastab:
1{2 "error": {3 "code": "INVALID_ARGUMENT",4 "message": "Replacing all Test Case steps requires confirm: true.",5 "details": {6 "confirmRequired": true,7 "wouldChange": {8 "stepCountBefore": 4,9 "stepCountAfter": 610 }11 }12 }13}| Toiming | Sõnum | wouldChange |
|---|---|---|
test_case.update_steps | Replacing all Test Case steps requires confirm: true. | stepCountBefore, stepCountAfter |
test_plan.set_members | Confirm removing cases from this plan. | removed ja added, kumbki [{ testCaseId, name }] |
environment.upsert | Updating an existing environment requires confirm: true. | Sinu antud fields ja platforms |
Midagi ei kirjutata enne, kui kinnitad. Loe eelvaade läbi ja saada siis sama päring koos väärtusega confirm: true ja sama idempotencyKey-ga. Päring, mis tagastab vea, ei salvesta oma võtme alla midagi, nii et võti on endiselt vaba.
Paketi piirangud
Kui paketi piirang toimingu peatab, näiteks Free-paketi käivituskrediit, kuu käivituste arv või testjuhtumite arv, tagastab API praegu UNAVAILABLE koos HTTP olekuga 500 ja sõnumiga „The operation could not be completed.“ Koodi LIMIT_REACHED see veel ei tagasta. Kui varem töötanud toiming hakkab seda viga tagastama, vaata Organization → Billing. Vaata Arveldus.
API-võtmete päringupiirangud
Organisatsiooni API-võtmega saab teha 1000 päringut tunnis võtme kohta. Piirangu saavutamisel tagastab API 429 RATE_LIMITED ja päise Retry-After, mis näitab ooteaega sekundites. Vigased, keelatud ja aegunud võtmed saavad endiselt vastuse 401.
See autentimise keeld kasutab enne toimingu käivitamist otsest JSON-objekti:
1{2 "code": "RATE_LIMITED",3 "message": "This API key has made too many requests. Try again in 120 seconds."4}Oota enne uuesti proovimist päises Retry-After märgitud aja. MCP tööriistad edastavad samuti RATE_LIMITED, kui API tagastab selle vastuse.
Ei leidnud?