Zum Inhalt springen

Fehlerbilder

Jede Antwort folgt dem Muster {"error": "<text>"}. Status plus Text verraten dir Ursache und Fix. Alle Texte unten stehen wörtlich so im Code (internal/controller/*.go, validator.go). Das gilt für API-Antworten — wirfst du selbst im Hook, steuert msg den Fehlertext und json den Körper (ohne json echot der Server dein geworfenes Objekt; siehe Hooks schreiben).

Status Antwort Ursache Fix
404 project not found Projekt läuft auf diesem Server nicht (nicht registriert oder falscher Namespace) Projekt per JWT registrieren, dann Reload (siehe Token-Köpfe)
404 document not found / not found Datensatz-ID existiert nicht in dieser Collection ID und Collection-Namen prüfen
403 permission denied Kopf fehlt, Wert falsch oder Methode nicht erlaubt Header-Namen, Token-Wert und permissions-Block prüfen
403 permission denied: … Detail steht nach dem Doppelpunkt, z. B. fehlender Scope oder Bulk-Recht Text nach dem Doppelpunkt lesen: Scope nachtragen oder Einzel- statt Bulk-Route nutzen
403 aggregate permission denied / lookup permission denied Aggregation oder Lookup ohne Recht permissions-Eintrag für diese Operation ergänzen
403 permission denied for given projection Angeforderte Projektion nicht erlaubt Projektion aus der Anfrage entfernen oder freigeben
409 / 500 Doppelter Schlüssel (Konflikt) Eindeutiger Index verletzt, z. B. path+lang doppelt. Achtung Default: Standard ist Legacy-Modus (legacy.httpCodes), dort antwortet der Server 500 statt 409; 409 gibt es nur im modernen Modus Eindeutiges Feld ändern; bei 500 denselben Fall annehmen
400 / 422 validation failed + Feldliste Datensatz verstößt gegen Feld-Validatoren. Legacy-Default: 400; modern: 422 code je Feld aus der zweiten Tabelle lesen
400 invalid data type for data in return of … hook Hook gab falschen Typ zurück Hook-Rückgabe auf Objekt bzw. erwarteten Typ fixen

Der Server liefert zu jedem Feld {"code": "…", "message": "…"}. Alle Codes aus validator.go:

Code Bedeutung Typisches Beispiel
required Pflichtfeld fehlt oder leer Leerer Titel bei Pflichtfeld
type Falscher Datentyp Array statt String; Zahl statt Bool
format Format falsch email, url, uuid, slug verletzt
pattern Regulärer Ausdruck passt nicht validator.pattern greift nicht
min_length / max_length String zu kurz oder zu lang Titel über dem Limit
min / max Zahl zu klein oder zu groß Preis unter Minimum
min_date / max_date Datum außerhalb des Fensters Datum vor minDate
min_items / max_items Array hat zu wenige oder zu viele Einträge Leere Liste bei minItems: 1
in Wert nicht in der Allow-Liste Status nicht in validator.in
eval Eigene JS-Prüfung schlägt fehl message enthält den Hook-Text
unknown_field Feld steht nicht im Schema (nur bei strictFields) Tippfehler im Feldnamen
internal Validator selbst defekt, z. B. eval nicht kompiliert Config und Server-Logs prüfen
Fehlerbild einordnen
400/422 validation failed ──▶ code lesen ──▶ Feld fixen ──▶ erneut senden
403 permission denied ──▶ Doppelpunkt-Text lesen ──▶ Kopf oder Recht fixen
404 project not found ──▶ registrieren + Reload ──▶ erneut senden
409/500 Konflikt ──▶ eindeutiges Feld ändern ──▶ erneut senden

Verifiziert am 68b4278 2026-10-15 (tibi-server)