Fehler
Die öffentliche API verwendet stabile HTTP-Statuscodes und eine maschinenlesbare Fehlerhülle. SDK-Aufrufer erhalten für jede Nicht-2xx-Antwort einen typisierten FabHubApiError.
Fehlerform
{
"error": {
"code": "SCOPE_REQUIRED",
"message": "This credential is missing the items:write scope",
"request_id": "req_8f3a...",
"details": {}
}
}
request_id ist in den meisten Antworten enthalten: geben Sie sie in Supportanfragen an. details ist bei Validierungsfehlern vorhanden. Verzweigen Sie anhand des stabilen error.code, nicht anhand von message.
Statuscodes
| Status | Bedeutung |
|---|---|
400 | Ungültige Anfrage oder Validierungsfehler |
401 | Fehlende, ungültige, abgelaufene oder widerrufene Anmeldeinformation |
403 | Fehlender Scope, Plan-Gate oder IP-Allowlist-Ablehnung |
404 | Ressource nicht gefunden |
409 | Idempotenzkonflikt (Schlüssel mit einer anderen Nutzlast wiederverwendet) |
429 | Ratenlimit überschritten |
500 | Serverfehler |
Fehlercodes
BAD_REQUEST,UNAUTHORIZED,FORBIDDEN,NOT_FOUND,CONFLICT,RATE_LIMITED,INTERNAL_ERRORSCOPE_REQUIRED: der Anmeldeinformation fehlt ein erforderlicher ScopePLAN_REQUIRED: der Plan des Tenants umfasst diese Fähigkeit nichtOBJECT_ACCESS_DENIED: das referenzierte Objekt liegt außerhalb des TenantsTENANT_DISABLED,ENDPOINT_DISABLED: NotabschalterMCP_CONFIRMATION_REQUIRED: ein schreibendes/destruktives MCP-Tool benötigt eine explizite Bestätigung
Beispiele
{ "error": { "code": "NOT_FOUND", "message": "Item not found", "request_id": "req_1a..." } }
{ "error": { "code": "RATE_LIMITED", "message": "Rate limit exceeded; retry after the window resets", "request_id": "req_2b..." } }
Hinweise für Clients
Behandeln Sie 401 und 403 als Konfigurations- oder Berechtigungsprobleme, nicht als wiederholbare Fehler. Behandeln Sie 429 nur dann als wiederholbar, wenn das Ratenlimit-Fenster zurückgesetzt wurde. Verwenden Sie Idempotenzschlüssel bei Schreibvorgängen, damit Sie Transportfehler sicher wiederholen können. Siehe Idempotenz und Ratenlimits.