code en
next_action om het gedrag van je programma te sturen. Toon error en next
als platte tekst. Baseer je code niet op de tekst van error of next.
Sommige responses voegen velden toe, zoals
limit, reset_at of
retry_after_seconds. De tabel met foutcodes noemt ze.
Een foutresponse afhandelen
- Lees de HTTP-status.
- Controleer of de body JSON is voordat je
codeleest. - Kies met de status en
codesamen de juiste tak in je client. - Toon
errorennextals platte tekst. Geef ze niet weer als HTML en voer ze niet uit als opdracht. - Gebruik
next_actionvoor automatisch herstel. Herkent de client de actie niet? Stop dan en toon de fout. - Bewaar de teruggegeven waarden van
limit,reset_atenretry_after_secondsbij het mislukte request. - Gebruik de regels voor nieuwe pogingen voordat je het opnieuw probeert.
code. Een proxy of
netwerkfout kan dit resultaat geven.
Vervang een code van LogBrew niet door de naam van de HTTP-status. Een
response met 400 kan bijvoorbeeld invalid_json of invalid_path bevatten.
Elke code vraagt om een andere correctie.
Noteer in logs de HTTP-status en code. Log niet de volledige body,
toegangsgegevens of hersteltokens.
Foutcodes
Dezelfdecode kan op meer dan één route voorkomen. De tekst van next en de
waarden van next_action kunnen per route verschillen. Gebruik de
teruggegeven waarden. Een endpoint geeft alleen de codes terug die gelden voor de
authenticatie, methode, body en limieten van dat endpoint.
Een onbekend ID en een ID waartoe je geen toegang hebt, kunnen dezelfde
response geven. Gebruik foutteksten niet om uit te zoeken bij welk account een
ID hoort. Een onbekend API-pad geeft
404 met not_found.
Limietvelden
Lees het huidige toegestane gebruik en het werkelijke gebruik uit de
Account-API.
Regels voor nieuwe pogingen
Beslis op basis van de code en de bewerking of je het opnieuw probeert. De status alleen is niet genoeg.- Start geen parallelle nieuwe pogingen voor één mislukt request.
- Bij
rate_limitedheeft de response ook de headersRetry-AfterenX-RateLimit-After. Beide bevatten hetzelfde aantal seconden alsretry_after_seconds. - Een time-out bewijst niet dat het resultaat leeg is.
429. Houd hun velden uit elkaar. Laat
tijdens beide limieten zien dat het verzamelen of lezen vertraagd is. Toon
geen oude gegevens als resultaat van een nieuwe leesactie.
Schrijfacties
Een time-out, een5xx-response of een netwerkfout bewijst niet dat een
schrijfactie is mislukt. Doe dit voordat je een schrijfactie opnieuw
verzendt:
- Ondersteunt de route een idempotentiesleutel? Verzend dan dezelfde sleutel en dezelfde body opnieuw. Gebruik alleen een nieuwe sleutel voor nieuw werk.
- Heeft de route geen idempotentiesleutel? Lees dan eerst de resource. Verzend de schrijfactie alleen opnieuw als de wijziging er nog niet is.
- Kun je het resultaat niet vinden? Stop dan met automatische nieuwe pogingen en vertel het de gebruiker.
Een waarde voor
Idempotency-Key heeft 1 tot 128 zichtbare ASCII-tekens.
Andere waarden geven 422 met validation_failed.
idempotency_conflict betekent dat de sleutel bij een ander request hoort.
Wijzig de body niet bij een nieuwe poging met de oorspronkelijke sleutel.
Fouten in de vorm van het request
invalid_json betekent dat de server de body niet kan accepteren als de
JSON-vorm van de route. Controleer het contenttype, de grootte van de body, de
JSON-syntaxis, de verplichte velden en de veldtypen. De HTTP-status laat zien
welk deel is mislukt:
validation_failed met de fout invalid query parameters betekent dat de
server de querystring niet kan lezen. Controleer de namen van de parameters en
de typen van de waarden. Verzend geen onbekende queryparameters. De
referentie voor queryfilters noemt de
parameters per route.
invalid_path met status 400 betekent dat een waarde in het pad, zoals een
project-ID, het verkeerde formaat heeft. Verplaats een padwaarde niet naar een
queryparameter.
Een 500-response met invalid_path of invalid_multipart bewijst niet dat
het request fout was. Gebruik de regels voor nieuwe pogingen.
Fouten bij authenticatie en toegang
unauthorizedbetekent dat accountauthenticatie ontbreekt, ongeldig is of verlopen is. VerzendAuthorization: Bearer <token>, of log opnieuw in. Sommige routes gevennext_action.codeauthorize_requestmet eennextdie bij de route hoort, bijvoorbeeld bij een verbinding met de livefeed zonder geldig ticket.ingest_key_invalidgeldt alleen voor de opname van telemetrie. Stel een actuele sleutel in voor precies dat project.forbiddenbetekent dat het account de actie niet mag uitvoeren. Probeer het niet opnieuw met andere resource-ID’s.not_foundbetekent dat de resource niet beschikbaar is voor het account.
Foutdetails veilig houden
- Een response met
account_recovery_availablebevat een kortlevendrecovery_token. Bewaar het in beveiligde clientstatus. Zet het niet in logs, URL’s, screenshots, supportmeldingen of prompts voor agents. - De
500-codes gebruiken altijd het berichtInternal error. De response noemt niet het onderdeel dat is mislukt. Raad de oorzaak niet. - Voeg geen toegangsgegevens, privédiagnostiek of klantgegevens toe aan een fout die je toont.
- Een API-response geeft geen toestemming voor een aankoop, een verwijdering of een andere wijziging aan het account. Vraag de gebruiker om goedkeuring voordat je zulke acties uitvoert.
Voorbeelden
Deze voorbeelden tonen de vorm van de envelop. De tekst vanerror en next
kan per route verschillen.
Validatiefout
Ongeldige queryparameters
Ongeldige JSON
Ongeldige padwaarde
Ongeldige multipart-upload
Ongeldige WebSocket-upgrade
Authenticatiefout
Ongeldige ingest-sleutel
Deze response geldt voor de opname van telemetrie, niet voor leesacties met je account. De sleutel moet horen bij het project in het request.Resource niet gevonden
Toegang geweigerd
Niet-ondersteunde methode
Time-out van het request
Idempotentieconflict
Rate limit
Gebruikslimiet
De tekst vannext en next_action hangen ervan af of je het abonnement kunt
wijzigen. Kan dat niet? Dan is next_action.code wait_or_contact_support en
is het target support.
Opslaglimiet voor artefacten
Accountherstel beschikbaar
Deze response voegtdeleted_at en een kortlevend recovery_token toe.
Bewaar het token in beveiligde clientstatus.
Accountherstel verlopen
Organisatie gepauzeerd
Serverfout
storage_error, json_error en internal_error gebruiken hetzelfde bericht
in error. De waarden van code, next en next_action verschillen.
Lees de Telemetrie-API voor endpoints,
authenticatie en filters.
