> 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.

# Błędy

## Błędy API

ElevenLabs używa standardowych kodów stanu HTTP, aby wskazać powodzenie lub niepowodzenie żądania. Dodatkowo wszystkie żądania API zwracają obiekt JSON z właściwością `detail`, która zawiera informacje o błędzie.

Zwykle kod stanu HTTP `200` oznacza udane żądanie. Kod `4xx` wskazuje problem z żądaniem, np. nieprawidłowy parametr lub brak wymaganego pola. Kod stanu HTTP `500` wskazuje problem z serwerami ElevenLabs, co powinno zdarzać się rzadko.

### Właściwości błędu

| Właściwość   | Opis                                                                                                                  |
| ------------ | --------------------------------------------------------------------------------------------------------------------- |
| `type`       | Typ błędu, który wystąpił. Możliwe wartości znajdziesz w tabeli poniżej.                                              |
| `code`       | Kod błędu. Jest bardziej szczegółowy niż typ i pozwala określić przyczynę błędu.                                      |
| `message`    | Komunikat błędu. Zawiera więcej szczegółów o błędzie.                                                                 |
| `status`     | Status błędu. To starsze pole, które nie jest już używane — zamiast niego używaj właściwości `code`.                  |
| `request_id` | Identyfikator żądania, w którym wystąpił błąd. To unikalny identyfikator, który możesz wykorzystać do diagnozy błędu. |
| `param`      | Parametr, który spowodował błąd. W przypadku błędu walidacji wskazuje nieprawidłowy parametr.                         |

### Przykładowa odpowiedź z błędem

Oto odpowiedź na żądanie API, w którym użyto nieprawidłowego identyfikatora modelu:

```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"
  }
}
```

Na podstawie właściwości błędu widzimy, że jest to błąd walidacji, a kod to `invalid_parameters`. Komunikat zawiera więcej szczegółów, a `request_id` to unikalny identyfikator żądania, który możesz wykorzystać do diagnozy błędu. Właściwość `param` wskazuje parametr, który spowodował błąd.

### Obsługa błędów SDK

SDK ElevenLabs udostępniają typowane klasy błędów, które dają dostęp do szczegółów błędu.

```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");
      }
    }
  }
}
```

Jeśli nie możesz rozwiązać problemu, napisz do działu wsparcia na [support@elevenlabs.io](mailto:support@elevenlabs.io). Podaj `request_id` z odpowiedzi błędu, pełny komunikat błędu oraz kroki pozwalające odtworzyć problem.

#### Limity żądań i współbieżność

Jeśli otrzymasz kod stanu HTTP 429, oznacza to, że w krótkim czasie wysłano zbyt wiele żądań i przekroczono limit żądań dla endpointu API albo przekroczono limit współbieżności dla tego endpointu. Odpowiedni `code` błędu to `rate_limit_exceeded` lub `concurrent_limit_exceeded`.

W przypadku limitu żądań zaimplementuj w kodzie exponential backoff po otrzymaniu błędu 429. Oznacza to dodanie opóźnienia przed ponowną próbą wysłania żądania.

W przypadku współbieżności poczekaj, aż bieżące żądania się zakończą, zanim wyślesz kolejne. Więcej informacji znajdziesz w sekcji [Współbieżność i priorytet](/docs/pl/overview/models#concurrency-and-priority).

### Typy błędów

Błąd ma właściwość `type`, która wskazuje jego typ. Możliwe wartości znajdziesz w tabeli poniżej.

| Typ                    | Opis                                                                             | Kod stanu HTTP |
| ---------------------- | -------------------------------------------------------------------------------- | -------------- |
| `validation_error`     | Żądanie zawiera nieprawidłowe wartości parametrów.                               | 400            |
| `invalid_request`      | Struktura żądania jest nieprawidłowa lub brakuje wymaganych pól.                 | 400            |
| `authentication_error` | Uwierzytelnianie nie powiodło się — nieprawidłowy lub brakujący klucz/token API. | 401            |
| `payment_required`     | Użytkownik ma za mało środków lub wymagana jest płatność.                        | 402            |
| `authorization_error`  | Uwierzytelniony użytkownik nie ma wymaganych uprawnień do tej akcji.             | 403            |
| `not_found`            | Nie znaleziono żądanego zasobu.                                                  | 404            |
| `conflict`             | Żądanie jest sprzeczne z bieżącym stanem zasobu.                                 | 409            |
| `rate_limit_error`     | Zbyt wiele żądań — spróbuj ponownie później.                                     | 429            |
| `internal_error`       | Wystąpił nieoczekiwany błąd serwera.                                             | 500            |
| `service_unavailable`  | Usługa jest tymczasowo niedostępna, co powinno zdarzać się rzadko.               | 503            |

### Kody błędów

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

      <th>
        Typ
      </th>

      <th>
        Opis
      </th>
    </tr>
  </thead>

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

      <td>
        `not_found`
      </td>

      <td>
        Podany identyfikator głosu nie istnieje. Sprawdź identyfikator głosu i spróbuj ponownie.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Nie znaleziono podanej próbki głosu.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Podana kolekcja głosów nie istnieje.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Nie znaleziono podanego użytkownika.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Nie znaleziono konta uwierzytelniania.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Podany obszar roboczy nie istnieje.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Nie znaleziono podanego projektu.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Podany element historii nie istnieje.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Nie znaleziono podanej kolekcji.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Podany dokument nie istnieje.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Nie znaleziono podanego pliku.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Podana rozmowa nie istnieje.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Nie znaleziono podanego agenta.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Podany projekt dubbingowy nie istnieje.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Nie znaleziono podanego utworu.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Nie znaleziono podanego odczytu.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Podany słownik wymowy nie istnieje.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Nie znaleziono podanej bazy wiedzy.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Podany numer telefonu nie istnieje.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Nie znaleziono podanego narzędzia.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Podany migawka nie istnieje.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Nie znaleziono podanego zadania.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Podany model nie istnieje.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Nie znaleziono podanej transkrypcji.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Nie znaleziono podanej listy słów kluczowych.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Nie znaleziono podanej kategorii.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Podany tekst przekracza maksymalną dozwoloną długość.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Podany tekst jest krótszy niż wymagana minimalna długość.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Podany tekst zawiera nieprawidłowe znaki lub formatowanie.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Pole tekstowe nie może być puste.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Co najmniej jeden parametr żądania jest nieprawidłowy. Sprawdź właściwość `param`, aby znaleźć nieprawidłowy
        parametr.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        W żądaniu brakuje wymaganego pola. Sprawdź właściwość `param`, aby znaleźć brakujące
        pole.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Ustawienia głosu zawierają nieprawidłowe wartości. Sprawdź właściwość `param`, aby znaleźć nieprawidłowe ustawienia
        głosu.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Format identyfikatora głosu jest nieprawidłowy.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Podany model nie jest obsługiwany w tej operacji.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Podane audio jest nieprawidłowe lub uszkodzone.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Podany format audio nie jest obsługiwany.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Żądany format wyjściowy nie jest obsługiwany.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Audio przekracza maksymalną dozwoloną długość.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Audio jest krótsze niż wymagana minimalna długość.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Typ pliku nie jest obsługiwany.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Parametr rozmiaru strony jest poza dozwolonym zakresem.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Kursor stronicowania jest nieprawidłowy lub wygasł.
      </td>
    </tr>

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

      <td>
        `invalid_request`
      </td>

      <td>
        Serwer nie mógł zrozumieć żądania.
      </td>
    </tr>

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

      <td>
        `invalid_request`
      </td>

      <td>
        Treść żądania zawiera nieprawidłowy JSON.
      </td>
    </tr>

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

      <td>
        `invalid_request`
      </td>

      <td>
        Nagłówek Content-Type jest nieobecny lub nieprawidłowy.
      </td>
    </tr>

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

      <td>
        `invalid_request`
      </td>

      <td>
        Treść żądania przekracza maksymalny dozwolony rozmiar.
      </td>
    </tr>

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

      <td>
        `authentication_error`
      </td>

      <td>
        Podany klucz API jest nieprawidłowy.
      </td>
    </tr>

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

      <td>
        `authentication_error`
      </td>

      <td>
        W żądaniu nie podano klucza API.
      </td>
    </tr>

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

      <td>
        `authentication_error`
      </td>

      <td>
        Format nagłówka Authorization jest nieprawidłowy.
      </td>
    </tr>

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

      <td>
        `authentication_error`
      </td>

      <td>
        Uwierzytelnianie jest wymagane, aby uzyskać dostęp do tego zasobu.
      </td>
    </tr>

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

      <td>
        `authentication_error`
      </td>

      <td>
        Musisz się zalogować, aby wykonać tę akcję.
      </td>
    </tr>

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

      <td>
        `authorization_error`
      </td>

      <td>
        Dostęp do tego zasobu jest zabroniony.
      </td>
    </tr>

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

      <td>
        `authorization_error`
      </td>

      <td>
        Nie masz wymaganych uprawnień do tej akcji.
      </td>
    </tr>

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

      <td>
        `authorization_error`
      </td>

      <td>
        Nie masz dostępu do tego obszaru roboczego.
      </td>
    </tr>

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

      <td>
        `authorization_error`
      </td>

      <td>
        Ta funkcja nie jest dostępna w Twoim obecnym planie.
      </td>
    </tr>

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

      <td>
        `authorization_error`
      </td>

      <td>
        Do korzystania z tej funkcji wymagana jest płatna subskrypcja.
      </td>
    </tr>

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

      <td>
        `authorization_error`
      </td>

      <td>
        Nie masz dostępu do tego głosu.
      </td>
    </tr>

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

      <td>
        `authorization_error`
      </td>

      <td>
        Nie masz dostępu do tego modelu.
      </td>
    </tr>

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

      <td>
        `conflict`
      </td>

      <td>
        Wystąpił konflikt.
      </td>
    </tr>

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

      <td>
        `conflict`
      </td>

      <td>
        Zasób z tym samym identyfikatorem już istnieje.
      </td>
    </tr>

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

      <td>
        `conflict`
      </td>

      <td>
        Głos o tej nazwie już istnieje.
      </td>
    </tr>

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

      <td>
        `conflict`
      </td>

      <td>
        Operacja jest już uruchomiona.
      </td>
    </tr>

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

      <td>
        `conflict`
      </td>

      <td>
        Zasób jest już przetwarzany.
      </td>
    </tr>

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

      <td>
        `conflict`
      </td>

      <td>
        Zasób został zmieniony przez inne żądanie. Spróbuj ponownie z najnowszą wersją.
      </td>
    </tr>

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

      <td>
        `conflict`
      </td>

      <td>
        Zasób z tym slugiem już istnieje.
      </td>
    </tr>

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

      <td>
        `rate_limit_error`
      </td>

      <td>
        Zbyt wiele żądań. Poczekaj przed ponowną próbą.
      </td>
    </tr>

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

      <td>
        `rate_limit_error`
      </td>

      <td>
        Przekroczono maksymalną liczbę równoczesnych żądań. Wyższe poziomy subskrypcji mają wyższy
        limit współbieżności.
      </td>
    </tr>

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

      <td>
        `rate_limit_error`
      </td>

      <td>
        System jest obecnie zajęty. Spróbuj ponownie później.
      </td>
    </tr>

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

      <td>
        `payment_required`
      </td>

      <td>
        Na Twoim koncie nie ma wystarczającej liczby środków na tę operację.
      </td>
    </tr>

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

      <td>
        `internal_error`
      </td>

      <td>
        Wystąpił nieoczekiwany błąd. Skontaktuj się ze wsparciem, jeśli problem się powtarza.
      </td>
    </tr>

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

      <td>
        `service_unavailable`
      </td>

      <td>
        Usługa jest tymczasowo niedostępna. Spróbuj ponownie później.
      </td>
    </tr>

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

      <td>
        `service_unavailable`
      </td>

      <td>
        Usługa przechodzi zaplanowaną konserwację.
      </td>
    </tr>
  </tbody>
</table>