API-Fehlerbehebung: häufige Fehler
Jeder Endpoint in der Referenz ist heute als Planned markiert: Es handelt sich um den veröffentlichten Vertrag, der noch nicht antwortet. Diese Seite listet die Fehler auf, die die API zurückgeben wird, damit Ihr Code sie von Anfang an verarbeiten kann.
Lesen Sie zuerst den Fehler #
Jeder Fehler antwortet mit einem 4xx- oder 5xx-Status und dem gleichen Body:
{ "error": { "code": "forbidden", "message": "…" } }
message ist ein einfacher englischer Satz, der beschreibt, was schiefgelaufen ist. Protokollieren Sie ihn, verzweigen Sie Ihren Code aber anhand von code, niemals anhand von message.
401 unauthorized #
Die API hat Ihr Token nicht akzeptiert. Prüfen Sie in dieser Reihenfolge:
- Der Header lautet genau
Authorization: Bearer <token>, mit dem WortBearerund einem Leerzeichen. - Das Token wurde vollständig kopiert. Es wird nur einmal angezeigt, wenn Sie es erstellen.
- Das Token ist noch aktiv. In Users › API & MCP zeigt die Tabelle Access tokens das Ablaufdatum und den Status jedes Tokens, und Show revoked tokens listet die alten auf.
- Wenn es abgelaufen oder widerrufen wurde, erstellen Sie ein neues (oder Rotate es) und aktualisieren Sie Ihre Umgebungsvariable.
403 forbidden #
Das Token ist gültig, aber es fehlt die Berechtigung, die der Endpoint benötigt. Jeder Endpoint in der Referenz listet seine Berechtigung, z. B. can_fan_read oder can_sales_read.
- Finden Sie die Berechtigung in der Permission-Spalte des Endpoints.
- Gehen Sie in Users › API & MCP, klicken Sie auf Edit beim Token und aktivieren Sie sie.
- Rufen Sie
GET /v1/workspaceauf: Die Antwort listet auf, was das Token darf.
Ein 403 wird auch zurückgegeben, wenn ein Token, das kein Owner-Token ist, den Header LanaChat-Workspace sendet. Entfernen Sie ihn.
429 rate_limited #
Jedes Token darf 600 Anfragen pro Minute senden. Jede Antwort enthält RateLimit-Remaining und RateLimit-Reset.
- Warten Sie die Anzahl der Sekunden in
Retry-Afterund versuchen Sie es dann erneut. - Blättern Sie bei Listen mit
limit=100statt mit einem Aufruf pro Element. - Das Senden von Nachrichten an Fans unterliegt auch den eigenen Limits von Telegram: siehe Telegram accounts and pools.
Die anderen Codes #
| Status | code | Was zu tun ist |
|---|---|---|
| 400 | invalid_request | Ein Feld fehlt oder hat das falsche Format: message sagt welches |
| 402 | insufficient_balance | Laden Sie Guthaben auf, bevor Sie kaufen |
| 404 | not_found | Die ID existiert nicht in diesem Workspace: prüfen Sie, ob Sie das richtige Token verwenden |
| 409 | conflict | Die Änderung verletzt eine Regel oder ein Idempotency-Key wurde mit anderem Body wiederverwendet |
| 500 | server_error | Später mit demselben Idempotency-Key erneut versuchen |
Senden Sie bei jedem Idempotency-Key einen POST: Ein erneuter Versuch führt dann nie zu doppelter Ausführung. Der Helfer im Quick Start wiederholt 429 und 5xx für Sie.
Webhooks, die fehlschlagen #
Eine Zustellung gilt als fehlgeschlagen, wenn Ihr Server nicht innerhalb von 10 Sekunden mit einem 2xx antwortet.
- Antworten Sie schnell. Geben Sie sofort
2xxzurück, erledigen Sie die langsame Arbeit dann im Hintergrund. - Prüfen Sie die Signatur am rohen Body, bevor Sie JSON parsen. Ein geparster und neu serialisierter Body stimmt nie überein.
- Prüfen Sie die Uhrzeit Ihres Servers. Ein Zeitstempel, der älter als 5 Minuten ist, wird vom Beispielcode abgelehnt, eine driftende Uhr lehnt jede Zustellung ab.
- Akzeptieren Sie beide
v1-Werte während einer Geheimnisrotation. - Testen Sie mit
POST /webhooks/{id}/test(Planned), das einpingsendet, und senden Sie eine Zustellung mit/deliveries/{delivery_id}/retry(Planned) erneut, sobald Sie Ihre Seite behoben haben.
Fehlgeschlagene Zustellungen werden 8-mal über etwa 24 Stunden erneut versucht. Nach 3 Tagen mit Fehlern wird der Endpoint pausiert; setzen Sie ihn mit PATCH /webhooks/{id} (Planned) fort. Dasselbe Ereignis kann zweimal ankommen: Ignorieren Sie Duplikate anhand der id. Siehe Webhooks.
Noch immer Probleme? #
Öffnen Sie die Hilfeblase unten rechts in der Console und schreiben Sie dem Team mit dem Endpoint, dem Status, dem code und der Uhrzeit des Aufrufs. Fügen Sie niemals das Token selbst ein. Siehe Get help.