# Fehler

HTTP-Statuscodes und Fehlerantworten auswerten.

## Fehlerformat

```json
{
  "code": 400,
  "message": "Use a project slug, not an ID"
}
```

`message` beschreibt die Ursache. Werte bei der Fehlerbehandlung den HTTP-Status aus, statt dich auf einen bestimmten Meldungstext zu verlassen.

| Status | Ursache und nächster Schritt |
| --- | --- |
| 400 | Ungültiger Body, Slug, Feldtyp oder Pipeline-Graph. Eingaben korrigieren. |
| 401 | Authentifizierung fehlt, ist ungültig oder abgelaufen. Token prüfen. |
| 403 | Token gehört zu einem anderen Projekt oder Projektzugriff fehlt. Zuordnung prüfen. |
| 404 | Projekt, Event, Profil oder Step existiert nicht bzw. ist nicht zugänglich. Referenz prüfen. |
| 409 | Action-Limit, Ablauf, Step-Abhängigkeit, geschlossene Pipeline oder konkurrierende Änderung. Zustand lesen und fachlich prüfen. |
| 413 | Request oder Profilbild zu groß. Datenmenge reduzieren. |
| 500 | Serverfehler. Fehlerzeitpunkt und Request-Kontext ohne Zugangsdaten für die Diagnose festhalten. |

## Action-Ergebnisse

Ein ausgeführter Webhook kann bei HTTP `200` ein Action-Ergebnis mit `success: false` liefern. Prüfe neben dem HTTP-Status auch das fachliche Ergebnis und die protokollierten Erwartungen.

## Wiederholungen

Ein Verbindungsabbruch beweist nicht, dass der Request fehlgeschlagen ist. Event-Erstellung, Inkremente und Actions können bei Wiederholung zusätzliche Seiteneffekte auslösen. Siehe [Fehlerbehebung](/docs/guides/troubleshooting).

## Fehler in den SDKs

JavaScript / TypeScript wirft bei HTTP-Fehlern `HTTPResponseError` mit `status`, `statusText` und `message`. Next.js exportiert dieselbe Klasse aus dem Server-Einstieg. Swift wirft `TracklyticHTTPError` mit `statusCode`, `body` und `localizedDescription`. Transport- und Encoding-Fehler können separat auftreten.

Konkrete Fehlerbehandlung: [JavaScript / TypeScript](/sdks/javascript#fehler-behandeln-und-tracking-pausieren), [Next.js](/sdks/nextjs#profile-insights-und-fehler) und [Swift](/sdks/swift#fehler-und-deaktiviertes-tracking). Auch beim SDK-Aufruf gilt: Bei Action-Antworten zusätzlich `success` und `results` prüfen.