Vai alla navigazione

Errori

Esplora i messaggi di errore e le soluzioni.

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
typeIl tipo di errore che si è verificato. Consulta la tabella seguente per i valori possibili.
codeIl codice dell’errore. È più specifico del tipo e può essere usato per determinare la causa dell’errore.
messageIl messaggio dell’errore. Fornisce maggiori dettagli sull’errore.
statusLo stato dell’errore. È un campo legacy che non viene più utilizzato; usa invece la proprietà code.
request_idL’ID della richiesta relativa all’errore. È un identificatore univoco della richiesta che può essere usato per risolvere il problema.
paramIl 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:

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

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")

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

Tipi di errore

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

TipoDescrizioneCodice di stato HTTP
validation_errorLa richiesta contiene valori di parametro non validi.400
invalid_requestLa struttura della richiesta non è valida o mancano campi obbligatori.400
authentication_errorAutenticazione non riuscita: chiave API/token non valido o mancante.401
payment_requiredL’utente non dispone di crediti sufficienti oppure è richiesto un pagamento.402
authorization_errorL’utente autenticato non dispone delle autorizzazioni necessarie per questa azione.403
not_foundLa risorsa richiesta non è stata trovata.404
conflictLa richiesta è in conflitto con lo stato corrente della risorsa.409
rate_limit_errorTroppe richieste: riprova più tardi.429
internal_errorSi è verificato un errore del server imprevisto.500
service_unavailableIl servizio è temporaneamente non disponibile; dovrebbe verificarsi raramente.503

Codici di errore

CodiceTipoDescrizione
voice_not_foundnot_foundL’ID della voce specificato non esiste. Verifica l’ID della voce e riprova.
sample_not_foundnot_foundIl campione vocale specificato non è stato trovato.
voice_collection_not_foundnot_foundLa raccolta di voci specificata non esiste.
user_not_foundnot_foundL’utente specificato non è stato trovato.
auth_account_not_foundnot_foundL’account di autenticazione non è stato trovato.
workspace_not_foundnot_foundIl workspace specificato non esiste.
project_not_foundnot_foundIl progetto specificato non è stato trovato.
history_item_not_foundnot_foundL’elemento della cronologia specificato non esiste.
collection_not_foundnot_foundLa raccolta specificata non è stata trovata.
document_not_foundnot_foundIl documento specificato non esiste.
file_not_foundnot_foundIl file specificato non è stato trovato.
conversation_not_foundnot_foundLa conversazione specificata non esiste.
agent_not_foundnot_foundL’agente specificato non è stato trovato.
dubbing_not_foundnot_foundIl progetto di doppiaggio specificato non esiste.
song_not_foundnot_foundIl brano specificato non è stato trovato.
read_not_foundnot_foundLa lettura specificata non è stata trovata.
pronunciation_dictionary_not_foundnot_foundIl dizionario di pronuncia specificato non esiste.
knowledge_base_not_foundnot_foundLa knowledge base specificata non è stata trovata.
phone_number_not_foundnot_foundIl numero di telefono specificato non esiste.
tool_not_foundnot_foundLo strumento specificato non è stato trovato.
snapshot_not_foundnot_foundLo snapshot specificato non esiste.
task_not_foundnot_foundL’attività specificata non è stata trovata.
model_not_foundnot_foundIl modello specificato non esiste.
transcript_not_foundnot_foundLa trascrizione specificata non è stata trovata.
keywords_list_not_foundnot_foundL’elenco di parole chiave specificato non è stato trovato.
category_not_foundnot_foundLa categoria specificata non è stata trovata.
text_too_longvalidation_errorIl testo fornito supera la lunghezza massima consentita.
text_too_shortvalidation_errorIl testo fornito è più breve della lunghezza minima richiesta.
invalid_textvalidation_errorIl testo fornito contiene caratteri o formattazione non validi.
empty_textvalidation_errorIl campo di testo non può essere vuoto.
invalid_parametersvalidation_error

Uno o più parametri della richiesta non sono validi. Controlla la proprietà param per il parametro non valido.

missing_required_fieldvalidation_error

Manca un campo obbligatorio nella richiesta. Controlla la proprietà param per il campo mancante.

invalid_voice_settingsvalidation_error

Le impostazioni della voce contengono valori non validi. Controlla la proprietà param per le impostazioni della voce non valide.

invalid_voice_idvalidation_errorIl formato dell’ID della voce non è valido.
unsupported_modelvalidation_errorIl modello specificato non è supportato per questa operazione.
invalid_audiovalidation_errorL’audio fornito non è valido o è danneggiato.
invalid_audio_formatvalidation_errorIl formato audio specificato non è supportato.
invalid_output_formatvalidation_errorIl formato di output richiesto non è supportato.
audio_too_longvalidation_errorL’audio supera la durata massima consentita.
audio_too_shortvalidation_errorL’audio è più breve della durata minima richiesta.
invalid_file_typevalidation_errorIl tipo di file non è supportato.
invalid_page_sizevalidation_errorIl parametro relativo alla dimensione della pagina è al di fuori dell’intervallo consentito.
invalid_cursorvalidation_errorIl cursore di paginazione non è valido o è scaduto.
bad_requestinvalid_requestIl server non ha potuto comprendere la richiesta.
malformed_jsoninvalid_requestIl body della richiesta contiene JSON non valido.
invalid_content_typeinvalid_requestL’header Content-Type è mancante o non valido.
request_too_largeinvalid_requestIl body della richiesta supera la dimensione massima consentita.
invalid_api_keyauthentication_errorLa chiave API fornita non è valida.
missing_api_keyauthentication_errorNella richiesta non è stata fornita alcuna chiave API.
invalid_authorization_headerauthentication_errorIl formato dell’header Authorization non è valido.
unauthorizedauthentication_errorPer accedere a questa risorsa è necessaria l’autenticazione.
sign_in_requiredauthentication_errorDevi aver effettuato l’accesso per eseguire questa azione.
forbiddenauthorization_errorL’accesso a questa risorsa è vietato.
insufficient_permissionsauthorization_errorNon disponi delle autorizzazioni necessarie per questa azione.
workspace_access_deniedauthorization_errorNon hai accesso a questo workspace.
feature_not_availableauthorization_errorQuesta funzionalità non è disponibile nel tuo piano attuale.
subscription_requiredauthorization_errorPer accedere a questa funzionalità è richiesto un abbonamento a pagamento.
voice_access_deniedauthorization_errorNon hai accesso a questa voce.
model_access_deniedauthorization_errorNon hai accesso a questo modello.
conflictconflictSi è verificato un conflitto.
resource_already_existsconflictEsiste già una risorsa con lo stesso identificatore.
voice_already_existsconflictEsiste già una voce con questo nome.
already_runningconflictL’operazione è già in esecuzione.
already_processingconflictLa risorsa è già in fase di elaborazione.
concurrent_modificationconflictLa risorsa è stata modificata da un’altra richiesta. Riprova con la versione più recente.
slug_already_existsconflictEsiste già una risorsa con questo slug.
rate_limit_exceededrate_limit_errorTroppe richieste. Attendi prima di riprovare.
concurrent_limit_exceededrate_limit_error

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

system_busyrate_limit_errorIl sistema è attualmente occupato. Riprova più tardi.
insufficient_creditspayment_requiredIl tuo account non dispone di crediti sufficienti per questa operazione.
internal_errorinternal_errorSi è verificato un errore imprevisto. Contatta il supporto se il problema persiste.
service_unavailableservice_unavailableIl servizio è temporaneamente non disponibile. Riprova più tardi.
maintenanceservice_unavailableIl servizio è sottoposto a manutenzione programmata.