Menu

Foutmeldingen

Elke mislukte aanroep antwoordt met JSON in dezelfde vorm, wat je Accept-header ook zegt. Bepaal je reactie aan de hand van de code.

De foutmelding

Een fout bevat een leesbare message en een vaste code:

{
    "code": "missing_ability",
    "message": "Invalid ability provided."
}

Bij een validatiefout komt daar errors bij: per veld de meldingen over wat er niet aan klopt.

{
    "code": "validation_failed",
    "message": "The lines field is required.",
    "errors": {
        "lines": ["The lines field is required."]
    }
}

De message is bedoeld voor mensen en kan veranderen. De code hoort bij het contract: er komen alleen codes bij, ze worden nooit hernoemd of verwijderd. Komt je koppeling een code tegen die ze niet kent, ga dan uit van de HTTP-status.

Alle codes

Code Status Wat er gebeurde Wat je doet
validation_failed 422 De body of query bevat een veld dat Picked niet kan accepteren. errors zegt welk. Verbeter het verzoek. Ongewijzigd opnieuw sturen mislukt opnieuw.
bad_request 400 Het verzoek is onjuist opgebouwd, bijvoorbeeld een Picked-Dry-Run-header die niet true of false is. Ook voor elke andere 4xx-status die niet in deze tabel staat. Verbeter het verzoek.
unauthenticated 401 Het token ontbreekt, is verkeerd overgenomen of is ingetrokken, of het teamlid dat het uitgaf is uit de werkruimte verwijderd. Stop, en controleer welk token je koppeling meestuurt.
missing_ability 403 Het token is geldig, maar mist het recht dat dit endpoint nodig heeft. Stop, en geef een token uit met het juiste recht. Zie Authenticatie en rechten.
forbidden 403 Het token mag hier niets, bijvoorbeeld omdat je er het adres van een andere werkruimte mee aanriep. Stop, en controleer het adres en het token.
not_found 404 Het adres bestaat niet, of wat je opvroeg staat niet in je werkruimte: een onbekende SKU, een onbekend ontvangst-id. Verbeter het verzoek. Probeer het niet opnieuw.
method_not_allowed 405 Het adres bestaat, maar niet voor deze HTTP-methode. Verbeter het verzoek.
conflict 409 Een Idempotency-Key is al gebruikt voor een ander verzoek, of een verzoek met die sleutel wordt nog afgehandeld. Stuur een nieuwe sleutel; wordt het verzoek nog afgehandeld, probeer het dan zo opnieuw.
gone 410 Waar je op terugbelde, wacht niet meer op je: het terugbellen van een stap nadat de tijd om was of die op een andere manier eindigde. Stop: het werk is zijn eigen weg gegaan. Probeer het niet opnieuw.
rate_limited 429 Je werkruimte deed deze minuut te veel aanroepen. Wacht het aantal seconden uit Retry-After en probeer het dan opnieuw. Zie Rate limits.
temporarily_unavailable 503 De aanroep liep tegen een gelijktijdige aanroep aan, of het werk waarop je terugbelde kan nog niet verder. Wacht het aantal seconden uit Retry-After en probeer het dan opnieuw.
server_error 500 Er ging iets mis aan de kant van Picked. Probeer het een paar keer opnieuw, met steeds een langere pauze. Blijft het misgaan, neem dan contact met ons op.

Veilig opnieuw proberen

Alleen rate_limited, temporarily_unavailable en server_error zijn het waard om opnieuw te proberen, altijd met een pauze ertussen. Bij elke andere code mislukt hetzelfde verzoek op dezelfde manier, met twee uitzonderingen die Idempotentie uitlegt: een ontvangst waarvan de reference op hetzelfde moment twee keer binnenkwam, en een procesgebeurtenis die Picked aannam maar nog niet kon verwerken.

Stuur een schrijfaanroep alleen opnieuw als Picked de herhaling herkent; op dezelfde pagina staat welke schrijfaanroepen het herkent.

Zoek een mislukte aanroep op

De pagina API-tokens toont de recente aanroepen van elk token onder Verzoeken. Je ziet alleen de mislukte, tot je Alleen fouten uitzet. Bij een fout bewaart Picked het antwoord dat het gaf; bij een 5xx alleen de code. Zo zie je het snelst welke aanroep misging en waarom.