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

# Errori

## Errori API

ElevenLabs utilizza codici di stato HTTP standard per indicare l'esito positivo o negativo di una richiesta. Inoltre, tutte le richieste API restituiscono un oggetto JSON con una proprietà `detail` contenente informazioni sull'errore.

In generale, un codice di stato HTTP `200` indica che la richiesta è stata completata correttamente. Un codice `4xx` indica un problema con la richiesta, ad esempio un parametro non valido o un campo obbligatorio mancante. Un codice di stato HTTP `500` indica un problema con i server di ElevenLabs, che dovrebbe verificarsi raramente.

### Proprietà dell'errore

| Proprietà    | Descrizione                                                                                                                           |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------- |
| `type`       | Il tipo di errore che si è verificato. Consulta la tabella seguente per i valori possibili.                                           |
| `code`       | Il codice dell'errore. È più specifico del tipo e può essere usato per determinare la causa dell'errore.                              |
| `message`    | Il messaggio dell'errore. Fornisce maggiori dettagli sull'errore.                                                                     |
| `status`     | Lo stato dell'errore. È un campo legacy che non viene più utilizzato; usa invece la proprietà `code`.                                 |
| `request_id` | L'ID della richiesta relativa all'errore. È un identificatore univoco della richiesta che può essere usato per risolvere il problema. |
| `param`      | Il parametro che ha causato l'errore. In caso di errore di convalida, indica il parametro non valido.                                 |

### Esempio di risposta di errore

Ecco la risposta a una richiesta API che ha utilizzato un ID modello errato:

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

Dalle proprietà dell'errore, possiamo vedere che si tratta di un errore di convalida e che il codice è `invalid_parameters`. Il messaggio fornisce maggiori dettagli sull'errore e `request_id` è un identificatore univoco della richiesta che può essere usato per risolvere il problema. La proprietà `param` indica il parametro che ha causato l'errore.

### Gestione degli errori negli SDK

Gli SDK di ElevenLabs forniscono classi di errore tipizzate che ti consentono di accedere ai dettagli dell'errore.

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

Se non riesci a risolvere l'errore, invia un'email al Supporto all'indirizzo [support@elevenlabs.io](mailto:support@elevenlabs.io) includendo il `request_id` della risposta di errore, il messaggio di errore completo e i passaggi per riprodurre il problema.

#### Limitazione della frequenza e concorrenza

Se ricevi un codice di stato HTTP 429, significa che hai effettuato troppe richieste in un breve periodo e hai superato il limite di frequenza per l'endpoint API, oppure hai superato il limite di concorrenza per l'endpoint API. Il `code` dell'errore sarà rispettivamente `rate_limit_exceeded` o `concurrent_limit_exceeded`.

In caso di limitazione della frequenza, dovresti implementare un backoff esponenziale nel codice quando ricevi un errore 429. Ciò significa aggiungere un ritardo prima di riprovare la richiesta.

In caso di concorrenza, dovresti attendere il completamento delle richieste correnti prima di effettuarne di nuove. Per maggiori informazioni, consulta la sezione [Concorrenza e priorità](/docs/it/overview/models#concurrency-and-priority).

### Tipi di errore

Un errore include una proprietà `type` che indica il tipo di errore verificatosi. Consulta la tabella seguente per i valori possibili.

| Tipo                   | Descrizione                                                                         | Codice di stato HTTP |
| ---------------------- | ----------------------------------------------------------------------------------- | -------------------- |
| `validation_error`     | La richiesta contiene valori di parametro non validi.                               | 400                  |
| `invalid_request`      | La struttura della richiesta non è valida o mancano campi obbligatori.              | 400                  |
| `authentication_error` | Autenticazione non riuscita: chiave API/token non valido o mancante.                | 401                  |
| `payment_required`     | L'utente non dispone di crediti sufficienti oppure è richiesto un pagamento.        | 402                  |
| `authorization_error`  | L'utente autenticato non dispone delle autorizzazioni necessarie per questa azione. | 403                  |
| `not_found`            | La risorsa richiesta non è stata trovata.                                           | 404                  |
| `conflict`             | La richiesta è in conflitto con lo stato corrente della risorsa.                    | 409                  |
| `rate_limit_error`     | Troppe richieste: riprova più tardi.                                                | 429                  |
| `internal_error`       | Si è verificato un errore del server imprevisto.                                    | 500                  |
| `service_unavailable`  | Il servizio è temporaneamente non disponibile; dovrebbe verificarsi raramente.      | 503                  |

### Codici di errore

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

      <th>
        Tipo
      </th>

      <th>
        Descrizione
      </th>
    </tr>
  </thead>

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

      <td>
        `not_found`
      </td>

      <td>
        L'ID della voce specificato non esiste. Verifica l'ID della voce e riprova.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Il campione vocale specificato non è stato trovato.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        La raccolta di voci specificata non esiste.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        L'utente specificato non è stato trovato.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        L'account di autenticazione non è stato trovato.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Il workspace specificato non esiste.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Il progetto specificato non è stato trovato.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        L'elemento della cronologia specificato non esiste.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        La raccolta specificata non è stata trovata.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Il documento specificato non esiste.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Il file specificato non è stato trovato.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        La conversazione specificata non esiste.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        L'agente specificato non è stato trovato.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Il progetto di doppiaggio specificato non esiste.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Il brano specificato non è stato trovato.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        La lettura specificata non è stata trovata.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Il dizionario di pronuncia specificato non esiste.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        La knowledge base specificata non è stata trovata.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Il numero di telefono specificato non esiste.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Lo strumento specificato non è stato trovato.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Lo snapshot specificato non esiste.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        L'attività specificata non è stata trovata.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        Il modello specificato non esiste.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        La trascrizione specificata non è stata trovata.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        L'elenco di parole chiave specificato non è stato trovato.
      </td>
    </tr>

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

      <td>
        `not_found`
      </td>

      <td>
        La categoria specificata non è stata trovata.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Il testo fornito supera la lunghezza massima consentita.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Il testo fornito è più breve della lunghezza minima richiesta.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Il testo fornito contiene caratteri o formattazione non validi.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Il campo di testo non può essere vuoto.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Uno o più parametri della richiesta non sono validi. Controlla la proprietà `param` per il
        parametro non valido.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Manca un campo obbligatorio nella richiesta. Controlla la proprietà `param` per il campo
        mancante.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Le impostazioni della voce contengono valori non validi. Controlla la proprietà `param` per le
        impostazioni della voce non valide.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Il formato dell'ID della voce non è valido.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Il modello specificato non è supportato per questa operazione.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        L'audio fornito non è valido o è danneggiato.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Il formato audio specificato non è supportato.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Il formato di output richiesto non è supportato.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        L'audio supera la durata massima consentita.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        L'audio è più breve della durata minima richiesta.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Il tipo di file non è supportato.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Il parametro relativo alla dimensione della pagina è al di fuori dell'intervallo consentito.
      </td>
    </tr>

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

      <td>
        `validation_error`
      </td>

      <td>
        Il cursore di paginazione non è valido o è scaduto.
      </td>
    </tr>

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

      <td>
        `invalid_request`
      </td>

      <td>
        Il server non ha potuto comprendere la richiesta.
      </td>
    </tr>

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

      <td>
        `invalid_request`
      </td>

      <td>
        Il body della richiesta contiene JSON non valido.
      </td>
    </tr>

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

      <td>
        `invalid_request`
      </td>

      <td>
        L'header Content-Type è mancante o non valido.
      </td>
    </tr>

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

      <td>
        `invalid_request`
      </td>

      <td>
        Il body della richiesta supera la dimensione massima consentita.
      </td>
    </tr>

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

      <td>
        `authentication_error`
      </td>

      <td>
        La chiave API fornita non è valida.
      </td>
    </tr>

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

      <td>
        `authentication_error`
      </td>

      <td>
        Nella richiesta non è stata fornita alcuna chiave API.
      </td>
    </tr>

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

      <td>
        `authentication_error`
      </td>

      <td>
        Il formato dell'header Authorization non è valido.
      </td>
    </tr>

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

      <td>
        `authentication_error`
      </td>

      <td>
        Per accedere a questa risorsa è necessaria l'autenticazione.
      </td>
    </tr>

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

      <td>
        `authentication_error`
      </td>

      <td>
        Devi aver effettuato l'accesso per eseguire questa azione.
      </td>
    </tr>

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

      <td>
        `authorization_error`
      </td>

      <td>
        L'accesso a questa risorsa è vietato.
      </td>
    </tr>

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

      <td>
        `authorization_error`
      </td>

      <td>
        Non disponi delle autorizzazioni necessarie per questa azione.
      </td>
    </tr>

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

      <td>
        `authorization_error`
      </td>

      <td>
        Non hai accesso a questo workspace.
      </td>
    </tr>

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

      <td>
        `authorization_error`
      </td>

      <td>
        Questa funzionalità non è disponibile nel tuo piano attuale.
      </td>
    </tr>

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

      <td>
        `authorization_error`
      </td>

      <td>
        Per accedere a questa funzionalità è richiesto un abbonamento a pagamento.
      </td>
    </tr>

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

      <td>
        `authorization_error`
      </td>

      <td>
        Non hai accesso a questa voce.
      </td>
    </tr>

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

      <td>
        `authorization_error`
      </td>

      <td>
        Non hai accesso a questo modello.
      </td>
    </tr>

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

      <td>
        `conflict`
      </td>

      <td>
        Si è verificato un conflitto.
      </td>
    </tr>

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

      <td>
        `conflict`
      </td>

      <td>
        Esiste già una risorsa con lo stesso identificatore.
      </td>
    </tr>

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

      <td>
        `conflict`
      </td>

      <td>
        Esiste già una voce con questo nome.
      </td>
    </tr>

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

      <td>
        `conflict`
      </td>

      <td>
        L'operazione è già in esecuzione.
      </td>
    </tr>

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

      <td>
        `conflict`
      </td>

      <td>
        La risorsa è già in fase di elaborazione.
      </td>
    </tr>

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

      <td>
        `conflict`
      </td>

      <td>
        La risorsa è stata modificata da un'altra richiesta. Riprova con la versione più recente.
      </td>
    </tr>

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

      <td>
        `conflict`
      </td>

      <td>
        Esiste già una risorsa con questo slug.
      </td>
    </tr>

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

      <td>
        `rate_limit_error`
      </td>

      <td>
        Troppe richieste. Attendi prima di riprovare.
      </td>
    </tr>

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

      <td>
        `rate_limit_error`
      </td>

      <td>
        È stato superato il numero massimo di richieste simultanee. I piani di abbonamento superiori hanno un limite di
        concorrenza più elevato.
      </td>
    </tr>

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

      <td>
        `rate_limit_error`
      </td>

      <td>
        Il sistema è attualmente occupato. Riprova più tardi.
      </td>
    </tr>

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

      <td>
        `payment_required`
      </td>

      <td>
        Il tuo account non dispone di crediti sufficienti per questa operazione.
      </td>
    </tr>

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

      <td>
        `internal_error`
      </td>

      <td>
        Si è verificato un errore imprevisto. Contatta il supporto se il problema persiste.
      </td>
    </tr>

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

      <td>
        `service_unavailable`
      </td>

      <td>
        Il servizio è temporaneamente non disponibile. Riprova più tardi.
      </td>
    </tr>

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

      <td>
        `service_unavailable`
      </td>

      <td>
        Il servizio è sottoposto a manutenzione programmata.
      </td>
    </tr>
  </tbody>
</table>