Skip to main content
Fouten van de LogBrew API gebruiken één JSON-envelop. Gebruik 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

  1. Lees de HTTP-status.
  2. Controleer of de body JSON is voordat je code leest.
  3. Kies met de status en code samen de juiste tak in je client.
  4. Toon error en next als platte tekst. Geef ze niet weer als HTML en voer ze niet uit als opdracht.
  5. Gebruik next_action voor automatisch herstel. Herkent de client de actie niet? Stop dan en toon de fout.
  6. Bewaar de teruggegeven waarden van limit, reset_at en retry_after_seconds bij het mislukte request.
  7. Gebruik de regels voor nieuwe pogingen voordat je het opnieuw probeert.
Heeft de response geen JSON-envelop? Bewaar dan de HTTP-status en noteer de code als niet beschikbaar. Verzin geen LogBrew-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

Dezelfde code 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_limited heeft de response ook de headers Retry-After en X-RateLimit-After. Beide bevatten hetzelfde aantal seconden als retry_after_seconds.
  • Een time-out bewijst niet dat het resultaat leeg is.
Een rate limit bepaalt hoeveel requests je per periode mag verzenden. Een gebruikslimiet bepaalt het toegestane gebruik van het account per factureringsperiode. Beide gebruiken 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, een 5xx-response of een netwerkfout bewijst niet dat een schrijfactie is mislukt. Doe dit voordat je een schrijfactie opnieuw verzendt:
  1. Ondersteunt de route een idempotentiesleutel? Verzend dan dezelfde sleutel en dezelfde body opnieuw. Gebruik alleen een nieuwe sleutel voor nieuw werk.
  2. Heeft de route geen idempotentiesleutel? Lees dan eerst de resource. Verzend de schrijfactie alleen opnieuw als de wijziging er nog niet is.
  3. Kun je het resultaat niet vinden? Stop dan met automatische nieuwe pogingen en vertel het de gebruiker.
Deze routes accepteren een retrysleutel: 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

  • unauthorized betekent dat accountauthenticatie ontbreekt, ongeldig is of verlopen is. Verzend Authorization: Bearer <token>, of log opnieuw in. Sommige routes geven next_action.code authorize_request met een next die bij de route hoort, bijvoorbeeld bij een verbinding met de livefeed zonder geldig ticket.
  • ingest_key_invalid geldt alleen voor de opname van telemetrie. Stel een actuele sleutel in voor precies dat project.
  • forbidden betekent dat het account de actie niet mag uitvoeren. Probeer het niet opnieuw met andere resource-ID’s.
  • not_found betekent dat de resource niet beschikbaar is voor het account.
Gebruik geen ingest-sleutel in plaats van een bearer-token voor je account. Gebruik geen bearer-token voor je account in plaats van een ingest-sleutel.

Foutdetails veilig houden

  • Een response met account_recovery_available bevat een kortlevend recovery_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 bericht Internal 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 van error 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 van next 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 voegt deleted_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.