Errores

Explora los mensajes de error y sus soluciones.

Errores de la API

ElevenLabs utiliza códigos de estado HTTP estándar para indicar si una solicitud se ha realizado correctamente o ha fallado. Además, todas las solicitudes a la API devuelven un objeto JSON con una propiedad detail que contiene información sobre el error.

En general, un código de estado HTTP 200 indica que la solicitud se ha realizado correctamente. Un código 4xx indica un problema con la solicitud, como un parámetro no válido o la falta de un campo obligatorio. Un código de estado HTTP 500 indica un problema con los servidores de ElevenLabs, algo que debería ocurrir rara vez.

Propiedades de los errores

PropiedadDescripción
typeEl tipo de error que se ha producido. Consulta la tabla siguiente para ver los posibles valores.
codeEl código del error. Es más específico que el tipo y puede utilizarse para determinar la causa del error.
messageEl mensaje del error. Proporciona más detalles sobre el error.
statusEl estado del error. Es un campo heredado que ya no se utiliza; usa en su lugar la propiedad code.
request_idEl ID de solicitud del error. Es un identificador único de la solicitud que puede utilizarse para solucionar el error.
paramEl parámetro que ha causado el error. En caso de error de validación, indicará el parámetro que no es válido.

Ejemplo de respuesta de error

Esta es la respuesta de una solicitud a la API que ha utilizado un ID de modelo incorrecto:

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

Con las propiedades del error, podemos ver que se trata de un error de validación y que el código es invalid_parameters. El mensaje ofrece más detalles sobre el error y request_id es un identificador único de la solicitud que puede utilizarse para solucionar el error. La propiedad param indica el parámetro que ha causado el error.

Gestión de errores en los SDK

Los SDK de ElevenLabs proporcionan clases de error tipadas que te dan acceso a los detalles del error.

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

Límite de solicitudes y concurrencia

Si recibes un código de estado HTTP 429, significa que has realizado demasiadas solicitudes en poco tiempo y has superado el límite de solicitudes de la ruta de API, o que has superado el límite de concurrencia de la ruta de API. El code de error será rate_limit_exceeded o concurrent_limit_exceeded, respectivamente.

En caso de límite de solicitudes, debes implementar un retroceso exponencial en tu código cuando recibas un error 429. Esto implica añadir una espera antes de volver a intentar la solicitud.

En caso de concurrencia, debes esperar a que terminen las solicitudes actuales antes de hacer otras nuevas. Consulta la sección Concurrencia y prioridad para obtener más información.

Tipos de error

Un error incluye una propiedad type que indica el tipo de error que se ha producido. Consulta la tabla siguiente para ver los posibles valores.

TipoDescripciónCódigo de estado HTTP
validation_errorLa solicitud contiene valores de parámetros no válidos.400
invalid_requestLa estructura de la solicitud no es válida o faltan campos obligatorios.400
authentication_errorError de autenticación: clave o token de API no válido o ausente.401
payment_requiredEl usuario no tiene créditos suficientes o se requiere un pago.402
authorization_errorEl usuario autenticado no tiene los permisos necesarios para esta acción.403
not_foundNo se ha encontrado el recurso solicitado.404
conflictLa solicitud entra en conflicto con el estado actual del recurso.409
rate_limit_errorDemasiadas solicitudes; inténtalo de nuevo más tarde.429
internal_errorSe ha producido un error inesperado del servidor.500
service_unavailableEl servicio no está disponible temporalmente; debería ocurrir rara vez.503

Códigos de error

CódigoTipoDescripción
voice_not_foundnot_foundEl ID de voz especificado no existe. Comprueba el ID de voz e inténtalo de nuevo.
sample_not_foundnot_foundNo se ha encontrado la muestra de voz especificada.
voice_collection_not_foundnot_foundLa colección de voces especificada no existe.
user_not_foundnot_foundNo se ha encontrado el usuario especificado.
auth_account_not_foundnot_foundNo se ha encontrado la cuenta de autenticación.
workspace_not_foundnot_foundEl espacio de trabajo especificado no existe.
project_not_foundnot_foundNo se ha encontrado el proyecto especificado.
history_item_not_foundnot_foundEl elemento del historial especificado no existe.
collection_not_foundnot_foundNo se ha encontrado la colección especificada.
document_not_foundnot_foundEl documento especificado no existe.
file_not_foundnot_foundNo se ha encontrado el archivo especificado.
conversation_not_foundnot_foundLa conversación especificada no existe.
agent_not_foundnot_foundNo se ha encontrado el agente especificado.
dubbing_not_foundnot_foundEl proyecto de doblaje especificado no existe.
song_not_foundnot_foundNo se ha encontrado la canción especificada.
read_not_foundnot_foundNo se ha encontrado la lectura especificada.
pronunciation_dictionary_not_foundnot_foundEl diccionario de pronunciación especificado no existe.
knowledge_base_not_foundnot_foundNo se ha encontrado la base de conocimientos especificada.
phone_number_not_foundnot_foundEl número de teléfono especificado no existe.
tool_not_foundnot_foundNo se ha encontrado la herramienta especificada.
snapshot_not_foundnot_foundLa instantánea especificada no existe.
task_not_foundnot_foundNo se ha encontrado la tarea especificada.
model_not_foundnot_foundEl modelo especificado no existe.
transcript_not_foundnot_foundNo se ha encontrado la transcripción especificada.
keywords_list_not_foundnot_foundNo se ha encontrado la lista de palabras clave especificada.
category_not_foundnot_foundNo se ha encontrado la categoría especificada.
text_too_longvalidation_errorEl texto proporcionado supera la longitud máxima permitida.
text_too_shortvalidation_errorEl texto proporcionado es más corto que la longitud mínima requerida.
invalid_textvalidation_errorEl texto proporcionado contiene caracteres o formato no válidos.
empty_textvalidation_errorEl campo de texto no puede estar vacío.
invalid_parametersvalidation_error

Uno o más parámetros de la solicitud no son válidos. Consulta la propiedad param para ver el parámetro no válido.

missing_required_fieldvalidation_error

Falta un campo obligatorio en la solicitud. Consulta la propiedad param para ver el campo que falta.

invalid_voice_settingsvalidation_error

La configuración de voz contiene valores no válidos. Consulta la propiedad param para ver la configuración de voz no válida.

invalid_voice_idvalidation_errorEl formato del ID de voz no es válido.
unsupported_modelvalidation_errorEl modelo especificado no es compatible con esta operación.
invalid_audiovalidation_errorEl audio proporcionado no es válido o está dañado.
invalid_audio_formatvalidation_errorEl formato de audio especificado no es compatible.
invalid_output_formatvalidation_errorEl formato de salida solicitado no es compatible.
audio_too_longvalidation_errorEl audio supera la duración máxima permitida.
audio_too_shortvalidation_errorEl audio es más corto que la duración mínima requerida.
invalid_file_typevalidation_errorEl tipo de archivo no es compatible.
invalid_page_sizevalidation_errorEl parámetro de tamaño de página está fuera del intervalo permitido.
invalid_cursorvalidation_errorEl cursor de paginación no es válido o ha caducado.
bad_requestinvalid_requestEl servidor no ha podido entender la solicitud.
malformed_jsoninvalid_requestEl cuerpo de la solicitud contiene JSON no válido.
invalid_content_typeinvalid_requestLa cabecera Content-Type falta o no es válida.
request_too_largeinvalid_requestEl cuerpo de la solicitud supera el tamaño máximo permitido.
invalid_api_keyauthentication_errorLa clave de API proporcionada no es válida.
missing_api_keyauthentication_errorNo se ha proporcionado ninguna clave de API en la solicitud.
invalid_authorization_headerauthentication_errorEl formato de la cabecera Authorization no es válido.
unauthorizedauthentication_errorSe requiere autenticación para acceder a este recurso.
sign_in_requiredauthentication_errorDebes iniciar sesión para realizar esta acción.
forbiddenauthorization_errorEl acceso a este recurso está prohibido.
insufficient_permissionsauthorization_errorNo tienes los permisos necesarios para esta acción.
workspace_access_deniedauthorization_errorNo tienes acceso a este espacio de trabajo.
feature_not_availableauthorization_errorEsta función no está disponible en tu plan actual.
subscription_requiredauthorization_errorSe requiere una suscripción de pago para acceder a esta función.
voice_access_deniedauthorization_errorNo tienes acceso a esta voz.
model_access_deniedauthorization_errorNo tienes acceso a este modelo.
conflictconflictSe ha producido un conflicto.
resource_already_existsconflictYa existe un recurso con el mismo identificador.
voice_already_existsconflictYa existe una voz con este nombre.
already_runningconflictLa operación ya está en ejecución.
already_processingconflictEl recurso ya se está procesando.
concurrent_modificationconflictOtra solicitud ha modificado el recurso. Vuelve a intentarlo con la versión más reciente.
slug_already_existsconflictYa existe un recurso con este slug.
rate_limit_exceededrate_limit_errorDemasiadas solicitudes. Espera antes de volver a intentarlo.
concurrent_limit_exceededrate_limit_error

Se ha superado el número máximo de solicitudes simultáneas. Los niveles de suscripción superiores tienen un límite de concurrencia más alto.

system_busyrate_limit_errorEl sistema está ocupado actualmente. Inténtalo de nuevo más tarde.
insufficient_creditspayment_requiredTu cuenta no tiene suficientes créditos para esta operación.
internal_errorinternal_errorSe ha producido un error inesperado. Ponte en contacto con Soporte si el problema persiste.
service_unavailableservice_unavailableEl servicio no está disponible temporalmente. Inténtalo de nuevo más tarde.
maintenanceservice_unavailableEl servicio está en mantenimiento programado.