> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Fehler

## API-Fehler

ElevenLabs verwendet standardmäßige HTTP-Statuscodes, um den Erfolg oder Fehler einer Anfrage anzuzeigen. Zusätzlich geben alle API-Anfragen ein JSON-Objekt mit einer `detail`-Eigenschaft zurück, die Informationen zum Fehler enthält.

Im Allgemeinen weist ein HTTP-Statuscode `200` auf eine erfolgreiche Anfrage hin. Ein `4xx`-Code weist auf ein Problem mit der Anfrage hin, etwa einen ungültigen Parameter oder ein fehlendes Pflichtfeld. Ein HTTP-Statuscode `500` weist auf ein Problem mit den Servern von ElevenLabs hin, was selten vorkommen sollte.

### Fehlereigenschaften

| Eigenschaft  | Beschreibung                                                                                                                 |
| ------------ | ---------------------------------------------------------------------------------------------------------------------------- |
| `type`       | Der aufgetretene Fehlertyp. Mögliche Werte finden Sie in der folgenden Tabelle.                                              |
| `code`       | Der Fehlercode. Er ist spezifischer als der Typ und kann zur Bestimmung der Fehlerursache verwendet werden.                  |
| `message`    | Die Fehlermeldung. Sie enthält weitere Details zum Fehler.                                                                   |
| `status`     | Der Fehlerstatus. Dies ist ein nicht mehr verwendetes Legacy-Feld; nutzen Sie stattdessen die Eigenschaft `code`.            |
| `request_id` | Die Anfragen-ID des Fehlers. Dies ist eine eindeutige Kennung für die Anfrage, die zur Fehlerbehebung verwendet werden kann. |
| `param`      | Der Parameter, der den Fehler verursacht hat. Bei einem Validierungsfehler zeigt er den ungültigen Parameter an.             |

### Beispiel für eine Fehlerantwort

Hier ist die Antwort für eine API-Anfrage mit einer falschen Modell-ID:

```json
{
  "detail": {
    "type": "validation_error",
    "code": "invalid_parameters",
    "message": "The 'keyterms' parameter is only supported with the 'scribe_v2' model. You specified 'scribe_v1'.",
    "status": "invalid_parameters",
    "request_id": "3c807fc4c3a1705f9638ecc764a91c01",
    "param": "keyterms"
  }
}
```

Anhand der Fehlereigenschaften sehen wir, dass es sich um einen Validierungsfehler handelt und der Code `invalid_parameters` lautet. Die Meldung enthält weitere Details zum Fehler und die `request_id` ist eine eindeutige Kennung für die Anfrage, die zur Fehlerbehebung verwendet werden kann. Die Eigenschaft `param` gibt den Parameter an, der den Fehler verursacht hat.

### Fehlerbehandlung im SDK

Die ElevenLabs SDKs bieten typisierte Fehlerklassen, die Ihnen Zugriff auf die Fehlerdetails geben.

```python
from elevenlabs import ElevenLabs
from elevenlabs.core import ApiError

elevenlabs = ElevenLabs()

try:
    audio = elevenlabs.text_to_speech.convert(
        voice_id="invalid-voice-id",
        model_id="eleven_v4",
        text="Hello, world!",
    )
except ApiError as e:
    print(f"Status code: {e.status_code}")

    # Access the error body
    if e.body and "detail" in e.body:
        detail = e.body["detail"]
        print(f"Error type: {detail.get('type')}")
        print(f"Error code: {detail.get('code')}")
        print(f"Message: {detail.get('message')}")
        print(f"Request ID: {detail.get('request_id')}")

        # Handle specific error types
        if detail.get("type") == "rate_limit_error":
            print("Rate limited - implement exponential backoff")
        elif detail.get("type") == "authentication_error":
            print("Check your API key")
```

```typescript
import { ElevenLabsClient, ElevenLabsError } from "@elevenlabs/elevenlabs-js";

const elevenlabs = new ElevenLabsClient();

try {
  const audio = await elevenlabs.textToSpeech.convert("invalid-voice-id", {
    text: "Hello, world!",
    modelId: "eleven_v4",
  });
} catch (error) {
  if (error instanceof ElevenLabsError) {
    console.log(`Status code: ${error.statusCode}`);

    // Access the error body
    const detail = (error.body as any)?.detail;
    if (detail) {
      console.log(`Error type: ${detail.type}`);
      console.log(`Error code: ${detail.code}`);
      console.log(`Message: ${detail.message}`);
      console.log(`Request ID: ${detail.request_id}`);

      // Handle specific error types
      if (detail.type === "rate_limit_error") {
        console.log("Rate limited - implement exponential backoff");
      } else if (detail.type === "authentication_error") {
        console.log("Check your API key");
      }
    }
  }
}
```

Wenn Sie den Fehler nicht beheben können, senden Sie dem Support unter [support@elevenlabs.io](mailto:support@elevenlabs.io) eine E-Mail mit der `request_id` aus der Fehlerantwort, der vollständigen Fehlermeldung und Schritten zur Reproduktion des Problems.

#### Ratenbegrenzung und Parallelität

Wenn Sie einen HTTP-Statuscode 429 erhalten, haben Sie entweder in kurzer Zeit zu viele Anfragen gestellt und das Ratenlimit für den API-Endpunkt überschritten oder das Parallelitätslimit für den API-Endpunkt überschritten. Der Fehler-`code` lautet entsprechend `rate_limit_exceeded` oder `concurrent_limit_exceeded`.

Bei einer Ratenbegrenzung sollten Sie in Ihrem Code exponentielles Backoff implementieren, wenn ein 429-Fehler auftritt. Das bedeutet, vor dem erneuten Senden der Anfrage eine Verzögerung hinzuzufügen.

Bei Parallelität sollten Sie warten, bis die aktuellen Anfragen abgeschlossen sind, bevor Sie neue stellen. Weitere Informationen finden Sie im Abschnitt [Parallelität und Priorität](/docs/de/overview/models#concurrency-and-priority).

### Fehlertypen

Ein Fehler enthält eine `type`-Eigenschaft, die den aufgetretenen Fehlertyp angibt. Mögliche Werte finden Sie in der folgenden Tabelle.

| Typ                    | Beschreibung                                                                                | HTTP-Statuscode |
| ---------------------- | ------------------------------------------------------------------------------------------- | --------------- |
| `validation_error`     | Die Anfrage enthält ungültige Parameterwerte.                                               | 400             |
| `invalid_request`      | Die Anfragestruktur ist fehlerhaft oder Pflichtfelder fehlen.                               | 400             |
| `authentication_error` | Die Authentifizierung ist fehlgeschlagen – API-Schlüssel/Token ungültig oder fehlt.         | 401             |
| `payment_required`     | Der Benutzer verfügt über unzureichende Credits oder eine Zahlung ist erforderlich.         | 402             |
| `authorization_error`  | Der authentifizierte Benutzer hat nicht die erforderlichen Berechtigungen für diese Aktion. | 403             |
| `not_found`            | Die angeforderte Ressource wurde nicht gefunden.                                            | 404             |
| `conflict`             | Die Anfrage steht im Konflikt mit dem aktuellen Zustand der Ressource.                      | 409             |
| `rate_limit_error`     | Zu viele Anfragen – versuchen Sie es später erneut.                                         | 429             |
| `internal_error`       | Ein unerwarteter Serverfehler ist aufgetreten.                                              | 500             |
| `service_unavailable`  | Der Dienst ist vorübergehend nicht verfügbar. Dies sollte selten vorkommen.                 | 503             |

### Fehlercodes

<table searchable>
  <thead>
    <tr>
      <th>
        Code
      </th>

      <th>
        Typ
      </th>

      <th>
        Beschreibung
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        `voice_not_found`
      </td>

      <td>
        `not_found`
      </td>

      <td>
        Die angegebene Stimmen-ID existiert nicht. Prüfen Sie die Stimmen-ID und versuchen Sie es erneut.
      </td>
    </tr>

    <tr>
      <td>
        `sample_not_found`
      </td>

      <td>
        `not_found`
      </td>

      <td>
        Das angegebene Stimmen-Sample wurde nicht gefunden.
      </td>
    </tr>

    <tr>
      <td>
        `voice_collection_not_found`
      </td>

      <td>
        `not_found`
      </td>

      <td>
        Die angegebene Stimmensammlung existiert nicht.
      </td>
    </tr>

    <tr>
      <td>
        `user_not_found`
      </td>

      <td>
        `not_found`
      </td>

      <td>
        Der angegebene Benutzer wurde nicht gefunden.
      </td>
    </tr>

    <tr>
      <td>
        `auth_account_not_found`
      </td>

      <td>
        `not_found`
      </td>

      <td>
        Das Authentifizierungskonto wurde nicht gefunden.
      </td>
    </tr>

    <tr>
      <td>
        `workspace_not_found`
      </td>

      <td>
        `not_found`
      </td>

      <td>
        Der angegebene Workspace existiert nicht.
      </td>
    </tr>

    <tr>
      <td>
        `project_not_found`
      </td>

      <td>
        `not_found`
      </td>

      <td>
        Das angegebene Projekt wurde nicht gefunden.
      </td>
    </tr>

    <tr>
      <td>
        `history_item_not_found`
      </td>

      <td>
        `not_found`
      </td>

      <td>
        Das angegebene Verlaufselement existiert nicht.
      </td>
    </tr>

    <tr>
      <td>
        `collection_not_found`
      </td>

      <td>
        `not_found`
      </td>

      <td>
        Die angegebene Sammlung wurde nicht gefunden.
      </td>
    </tr>

    <tr>
      <td>
        `document_not_found`
      </td>

      <td>
        `not_found`
      </td>

      <td>
        Das angegebene Dokument existiert nicht.
      </td>
    </tr>

    <tr>
      <td>
        `file_not_found`
      </td>

      <td>
        `not_found`
      </td>

      <td>
        Die angegebene Datei wurde nicht gefunden.
      </td>
    </tr>

    <tr>
      <td>
        `conversation_not_found`
      </td>

      <td>
        `not_found`
      </td>

      <td>
        Die angegebene Unterhaltung existiert nicht.
      </td>
    </tr>

    <tr>
      <td>
        `agent_not_found`
      </td>

      <td>
        `not_found`
      </td>

      <td>
        Der angegebene Agent wurde nicht gefunden.
      </td>
    </tr>

    <tr>
      <td>
        `dubbing_not_found`
      </td>

      <td>
        `not_found`
      </td>

      <td>
        Das angegebene Synchronisationsprojekt existiert nicht.
      </td>
    </tr>

    <tr>
      <td>
        `song_not_found`
      </td>

      <td>
        `not_found`
      </td>

      <td>
        Der angegebene Song wurde nicht gefunden.
      </td>
    </tr>

    <tr>
      <td>
        `read_not_found`
      </td>

      <td>
        `not_found`
      </td>

      <td>
        Der angegebene Read wurde nicht gefunden.
      </td>
    </tr>

    <tr>
      <td>
        `pronunciation_dictionary_not_found`
      </td>

      <td>
        `not_found`
      </td>

      <td>
        Das angegebene Aussprachewörterbuch existiert nicht.
      </td>
    </tr>

    <tr>
      <td>
        `knowledge_base_not_found`
      </td>

      <td>
        `not_found`
      </td>

      <td>
        Die angegebene Wissensdatenbank wurde nicht gefunden.
      </td>
    </tr>

    <tr>
      <td>
        `phone_number_not_found`
      </td>

      <td>
        `not_found`
      </td>

      <td>
        Die angegebene Telefonnummer existiert nicht.
      </td>
    </tr>

    <tr>
      <td>
        `tool_not_found`
      </td>

      <td>
        `not_found`
      </td>

      <td>
        Das angegebene Tool wurde nicht gefunden.
      </td>
    </tr>

    <tr>
      <td>
        `snapshot_not_found`
      </td>

      <td>
        `not_found`
      </td>

      <td>
        Der angegebene Snapshot existiert nicht.
      </td>
    </tr>

    <tr>
      <td>
        `task_not_found`
      </td>

      <td>
        `not_found`
      </td>

      <td>
        Die angegebene Aufgabe wurde nicht gefunden.
      </td>
    </tr>

    <tr>
      <td>
        `model_not_found`
      </td>

      <td>
        `not_found`
      </td>

      <td>
        Das angegebene Modell existiert nicht.
      </td>
    </tr>

    <tr>
      <td>
        `transcript_not_found`
      </td>

      <td>
        `not_found`
      </td>

      <td>
        Das angegebene Transkript wurde nicht gefunden.
      </td>
    </tr>

    <tr>
      <td>
        `keywords_list_not_found`
      </td>

      <td>
        `not_found`
      </td>

      <td>
        Die angegebene Schlüsselwortliste wurde nicht gefunden.
      </td>
    </tr>

    <tr>
      <td>
        `category_not_found`
      </td>

      <td>
        `not_found`
      </td>

      <td>
        Die angegebene Kategorie wurde nicht gefunden.
      </td>
    </tr>

    <tr>
      <td>
        `text_too_long`
      </td>

      <td>
        `validation_error`
      </td>

      <td>
        Der bereitgestellte Text überschreitet die maximal zulässige Länge.
      </td>
    </tr>

    <tr>
      <td>
        `text_too_short`
      </td>

      <td>
        `validation_error`
      </td>

      <td>
        Der bereitgestellte Text ist kürzer als die erforderliche Mindestlänge.
      </td>
    </tr>

    <tr>
      <td>
        `invalid_text`
      </td>

      <td>
        `validation_error`
      </td>

      <td>
        Der bereitgestellte Text enthält ungültige Zeichen oder Formatierungen.
      </td>
    </tr>

    <tr>
      <td>
        `empty_text`
      </td>

      <td>
        `validation_error`
      </td>

      <td>
        Das Textfeld darf nicht leer sein.
      </td>
    </tr>

    <tr>
      <td>
        `invalid_parameters`
      </td>

      <td>
        `validation_error`
      </td>

      <td>
        Ein oder mehrere Anfrageparameter sind ungültig. Prüfen Sie die Eigenschaft `param` auf den ungültigen
        Parameter.
      </td>
    </tr>

    <tr>
      <td>
        `missing_required_field`
      </td>

      <td>
        `validation_error`
      </td>

      <td>
        Ein Pflichtfeld fehlt in der Anfrage. Prüfen Sie die Eigenschaft `param` auf das fehlende
        Feld.
      </td>
    </tr>

    <tr>
      <td>
        `invalid_voice_settings`
      </td>

      <td>
        `validation_error`
      </td>

      <td>
        Die Stimmeneinstellungen enthalten ungültige Werte. Prüfen Sie die Eigenschaft `param` auf die ungültigen Stimmeneinstellungen.
      </td>
    </tr>

    <tr>
      <td>
        `invalid_voice_id`
      </td>

      <td>
        `validation_error`
      </td>

      <td>
        Das Format der Stimmen-ID ist ungültig.
      </td>
    </tr>

    <tr>
      <td>
        `unsupported_model`
      </td>

      <td>
        `validation_error`
      </td>

      <td>
        Das angegebene Modell wird für diesen Vorgang nicht unterstützt.
      </td>
    </tr>

    <tr>
      <td>
        `invalid_audio`
      </td>

      <td>
        `validation_error`
      </td>

      <td>
        Das bereitgestellte Audio ist ungültig oder beschädigt.
      </td>
    </tr>

    <tr>
      <td>
        `invalid_audio_format`
      </td>

      <td>
        `validation_error`
      </td>

      <td>
        Das angegebene Audioformat wird nicht unterstützt.
      </td>
    </tr>

    <tr>
      <td>
        `invalid_output_format`
      </td>

      <td>
        `validation_error`
      </td>

      <td>
        Das angeforderte Ausgabeformat wird nicht unterstützt.
      </td>
    </tr>

    <tr>
      <td>
        `audio_too_long`
      </td>

      <td>
        `validation_error`
      </td>

      <td>
        Das Audio überschreitet die maximal zulässige Dauer.
      </td>
    </tr>

    <tr>
      <td>
        `audio_too_short`
      </td>

      <td>
        `validation_error`
      </td>

      <td>
        Das Audio ist kürzer als die erforderliche Mindestdauer.
      </td>
    </tr>

    <tr>
      <td>
        `invalid_file_type`
      </td>

      <td>
        `validation_error`
      </td>

      <td>
        Der Dateityp wird nicht unterstützt.
      </td>
    </tr>

    <tr>
      <td>
        `invalid_page_size`
      </td>

      <td>
        `validation_error`
      </td>

      <td>
        Der Parameter für die Seitengröße liegt außerhalb des zulässigen Bereichs.
      </td>
    </tr>

    <tr>
      <td>
        `invalid_cursor`
      </td>

      <td>
        `validation_error`
      </td>

      <td>
        Der Paginierungs-Cursor ist ungültig oder abgelaufen.
      </td>
    </tr>

    <tr>
      <td>
        `bad_request`
      </td>

      <td>
        `invalid_request`
      </td>

      <td>
        Der Server konnte die Anfrage nicht verstehen.
      </td>
    </tr>

    <tr>
      <td>
        `malformed_json`
      </td>

      <td>
        `invalid_request`
      </td>

      <td>
        Der Anfrage-Body enthält ungültiges JSON.
      </td>
    </tr>

    <tr>
      <td>
        `invalid_content_type`
      </td>

      <td>
        `invalid_request`
      </td>

      <td>
        Der Content-Type-Header fehlt oder ist ungültig.
      </td>
    </tr>

    <tr>
      <td>
        `request_too_large`
      </td>

      <td>
        `invalid_request`
      </td>

      <td>
        Der Anfrage-Body überschreitet die maximal zulässige Größe.
      </td>
    </tr>

    <tr>
      <td>
        `invalid_api_key`
      </td>

      <td>
        `authentication_error`
      </td>

      <td>
        Der bereitgestellte API-Schlüssel ist ungültig.
      </td>
    </tr>

    <tr>
      <td>
        `missing_api_key`
      </td>

      <td>
        `authentication_error`
      </td>

      <td>
        In der Anfrage wurde kein API-Schlüssel bereitgestellt.
      </td>
    </tr>

    <tr>
      <td>
        `invalid_authorization_header`
      </td>

      <td>
        `authentication_error`
      </td>

      <td>
        Das Format des Authorization-Headers ist ungültig.
      </td>
    </tr>

    <tr>
      <td>
        `unauthorized`
      </td>

      <td>
        `authentication_error`
      </td>

      <td>
        Für den Zugriff auf diese Ressource ist eine Authentifizierung erforderlich.
      </td>
    </tr>

    <tr>
      <td>
        `sign_in_required`
      </td>

      <td>
        `authentication_error`
      </td>

      <td>
        Sie müssen angemeldet sein, um diese Aktion auszuführen.
      </td>
    </tr>

    <tr>
      <td>
        `forbidden`
      </td>

      <td>
        `authorization_error`
      </td>

      <td>
        Der Zugriff auf diese Ressource ist untersagt.
      </td>
    </tr>

    <tr>
      <td>
        `insufficient_permissions`
      </td>

      <td>
        `authorization_error`
      </td>

      <td>
        Sie haben nicht die erforderlichen Berechtigungen für diese Aktion.
      </td>
    </tr>

    <tr>
      <td>
        `workspace_access_denied`
      </td>

      <td>
        `authorization_error`
      </td>

      <td>
        Sie haben keinen Zugriff auf diesen Workspace.
      </td>
    </tr>

    <tr>
      <td>
        `feature_not_available`
      </td>

      <td>
        `authorization_error`
      </td>

      <td>
        Diese Funktion ist in Ihrem aktuellen Tarif nicht verfügbar.
      </td>
    </tr>

    <tr>
      <td>
        `subscription_required`
      </td>

      <td>
        `authorization_error`
      </td>

      <td>
        Für den Zugriff auf diese Funktion ist ein kostenpflichtiges Abonnement erforderlich.
      </td>
    </tr>

    <tr>
      <td>
        `voice_access_denied`
      </td>

      <td>
        `authorization_error`
      </td>

      <td>
        Sie haben keinen Zugriff auf diese Stimme.
      </td>
    </tr>

    <tr>
      <td>
        `model_access_denied`
      </td>

      <td>
        `authorization_error`
      </td>

      <td>
        Sie haben keinen Zugriff auf dieses Modell.
      </td>
    </tr>

    <tr>
      <td>
        `conflict`
      </td>

      <td>
        `conflict`
      </td>

      <td>
        Ein Konflikt ist aufgetreten.
      </td>
    </tr>

    <tr>
      <td>
        `resource_already_exists`
      </td>

      <td>
        `conflict`
      </td>

      <td>
        Eine Ressource mit derselben Kennung existiert bereits.
      </td>
    </tr>

    <tr>
      <td>
        `voice_already_exists`
      </td>

      <td>
        `conflict`
      </td>

      <td>
        Eine Stimme mit diesem Namen existiert bereits.
      </td>
    </tr>

    <tr>
      <td>
        `already_running`
      </td>

      <td>
        `conflict`
      </td>

      <td>
        Der Vorgang wird bereits ausgeführt.
      </td>
    </tr>

    <tr>
      <td>
        `already_processing`
      </td>

      <td>
        `conflict`
      </td>

      <td>
        Die Ressource wird bereits verarbeitet.
      </td>
    </tr>

    <tr>
      <td>
        `concurrent_modification`
      </td>

      <td>
        `conflict`
      </td>

      <td>
        Die Ressource wurde durch eine andere Anfrage geändert. Wiederholen Sie den Vorgang mit der neuesten Version.
      </td>
    </tr>

    <tr>
      <td>
        `slug_already_exists`
      </td>

      <td>
        `conflict`
      </td>

      <td>
        Eine Ressource mit diesem Slug existiert bereits.
      </td>
    </tr>

    <tr>
      <td>
        `rate_limit_exceeded`
      </td>

      <td>
        `rate_limit_error`
      </td>

      <td>
        Zu viele Anfragen. Warten Sie, bevor Sie es erneut versuchen.
      </td>
    </tr>

    <tr>
      <td>
        `concurrent_limit_exceeded`
      </td>

      <td>
        `rate_limit_error`
      </td>

      <td>
        Die maximale Anzahl paralleler Anfragen wurde überschritten. Höhere Abonnementstufen haben ein höheres
        Parallelitätslimit.
      </td>
    </tr>

    <tr>
      <td>
        `system_busy`
      </td>

      <td>
        `rate_limit_error`
      </td>

      <td>
        Das System ist derzeit ausgelastet. Versuchen Sie es später erneut.
      </td>
    </tr>

    <tr>
      <td>
        `insufficient_credits`
      </td>

      <td>
        `payment_required`
      </td>

      <td>
        Ihr Konto hat nicht genügend Credits für diesen Vorgang.
      </td>
    </tr>

    <tr>
      <td>
        `internal_error`
      </td>

      <td>
        `internal_error`
      </td>

      <td>
        Ein unerwarteter Fehler ist aufgetreten. Wenden Sie sich an den Support, wenn das Problem weiterhin besteht.
      </td>
    </tr>

    <tr>
      <td>
        `service_unavailable`
      </td>

      <td>
        `service_unavailable`
      </td>

      <td>
        Der Dienst ist vorübergehend nicht verfügbar. Versuchen Sie es später erneut.
      </td>
    </tr>

    <tr>
      <td>
        `maintenance`
      </td>

      <td>
        `service_unavailable`
      </td>

      <td>
        Der Dienst wird planmäßig gewartet.
      </td>
    </tr>
  </tbody>
</table>