> For the complete documentation index, see [llms.txt](https://help.citrusad.com/retail-media-interface/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.citrusad.com/retail-media-interface/partner/de/partner-api-overview/error-handling.md).

# Fehlerbehandlung

Epsilon Retail Media Partner-APIs folgen einem strukturierten und konsistenten Ansatz zur Fehlerbehandlung. Dies stellt sicher, dass Fehlerantworten vorhersehbar, einfach zu parsen und hilfreich für die Fehlersuche sind.

## Struktur der Fehlerantwort

Wenn ein Fehler auftritt, gibt die API Folgendes zurück:

* Einen Standard-HTTP-Statuscode.
* Einen strukturierten JSON-Body mit den Feldern code, message und optional details.
* Eine Liste von Verstößen auf Feldebene (falls zutreffend), sodass Clients mehrere Probleme auf einmal beheben können.

## Grundlegende Strategien zur Fehlerbehandlung

Wenn Sie auf einen Fehler stoßen, befolgen Sie diese Schritte:

1. **Lesen Sie die Fehlermeldung sorgfältig durch** - Die Fehlerantwort liefert spezifische Informationen darüber, was schiefgelaufen ist und welches Feld das Problem verursacht hat.
2. **Überprüfen Sie die Endpunkt-Seite** - Wenn Sie sich nicht sicher sind, wie Sie fortfahren sollen, lesen Sie die spezifische Seite für den Endpunkt, den Sie verwenden.
3. **Support kontaktieren** - Wenn weiterhin Probleme auftreten, können Sie ein Ticket in unserem Support-Portal erstellen. Bitte geben Sie Folgendes an:
   * Den genauen API-Aufruf, den Sie tätigen.
   * Den spezifischen Händler und das Team.
   * Die spezifische Entität, die Sie erstellen/aktualisieren.
   * Die vollständige Fehlerantwort, die Sie sehen.

Diese Informationen stellen sicher, dass unser Team Ihnen effizient und effektiv helfen kann.

### Beispiel für einen einzelnen Verstoß

```json
{
  "code": 3,
  "message": "Invalid argument(s) for product campaign creation",
  "details": [
    {
      "@type": "type.googleapis.com/google.rpc.BadRequest",
      "fieldViolations": [
        {
          "field": "maxBid",
          "description": "[maxBid] must be greater or equal [minBid]"
        }
      ]
    }
  ]
}
```

### Beispiel für mehrere Verstöße

```json
{
  "code": 3,
  "message": "Invalid argument(s) for product campaign update",
  "details": [
    {
      "@type": "type.googleapis.com/google.rpc.BadRequest",
      "fieldViolations": [
        {
          "field": "strategy.fixedTenancy.catalogCosts",
          "description": "all catalog cost percentages for fixed tenancy must sum to 100%"
        },
        {
          "field": "strategy.fixedTenancy.catalogCosts",
          "description": "fixed tenancy catalog cost [...] is duplicated in the list"
        }
      ]
    }
  ]
}
```

## Standard-HTTP-Statuscodes

| HTTP Status Code          | Bedeutung                            | Wann er auftritt                                          |
| ------------------------- | ------------------------------------ | --------------------------------------------------------- |
| 200 OK                    | Anfrage erfolgreich                  | Erfolgreicher API-Aufruf                                  |
| 204 No Content            | Erfolg, kein Antwort-Body            | Erfolgreiche Anfrage ohne Rückgabe-Payload                |
| 400 Bad Request           | Ungültige Eingabe                    | Fehlerhafte Anfrage oder Validierungsfehler               |
| 401 Unauthorized          | Fehlender oder ungültiger Token      | Token nicht bereitgestellt oder abgelaufen                |
| 403 Forbidden             | Zugriff verweigert                   | Token gültig, aber es fehlen Berechtigungen               |
| 404 Not Found             | Ressource nicht gefunden             | Ungültiger Endpunkt oder ungültige Ressourcen-ID          |
| 409 Conflict              | Doppelte oder widersprüchliche Daten | Ressource existiert bereits oder verletzt Einschränkungen |
| 429 Too Many Requests     | Ratenlimit überschritten             | Zu viele Anfragen in kurzer Zeit                          |
| 500 Internal Server Error | Serverseitiges Problem               | Unerwarteter Fehler auf dem Server                        |
| 503 Service Unavailable   | Vorübergehender Ausfall              | Dienst ist offline oder wird gewartet                     |

## Zuordnung von gRPC- zu HTTP-Fehlercodes

| gRPC Code | gRPC Name                    | HTTP Code | HTTP Name                  |
| --------- | ---------------------------- | --------- | -------------------------- |
| 0         | OK                           | 200       | OK                         |
| 1         | CANCELLED                    | 499       | Client Closed Request      |
| 2         | UNKNOWN                      | 500       | Internal Server Error      |
| 3         | INVALID\_ARGUMENT            | 400       | Bad Request                |
| 4         | FRIST\_ÜBERSCHRITTEN         | 504       | Gateway-Zeitüberschreitung |
| 5         | NICHT\_GEFUNDEN              | 404       | Nicht gefunden             |
| 6         | EXISTIERT\_BEREITS           | 409       | Konflikt                   |
| 7         | ZUGRIFF\_VERWEIGERT          | 403       | Verboten                   |
| 8         | RESSOURCE\_ERSCHÖPFT         | 429       | Zu viele Anfragen          |
| 9         | VORBEDINGUNG\_FEHLGESCHLAGEN | 400       | Bad Request                |
| 10        | ABGEBROCHEN                  | 409       | Konflikt                   |
| 11        | AUSSERHALB\_DES\_BEREICHS    | 400       | Bad Request                |
| 12        | NICHT\_IMPLEMENTIERT         | 501       | Nicht implementiert        |
| 13        | INTERN                       | 500       | Internal Server Error      |
| 14        | NICHT\_VERFÜGBAR             | 503       | Dienst nicht verfügbar     |
| 15        | DATENVERLUST                 | 500       | Internal Server Error      |
| 16        | NICHT\_AUTHENTIFIZIERT       | 401       | Nicht autorisiert          |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.citrusad.com/retail-media-interface/partner/de/partner-api-overview/error-handling.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
