오류

오류 메시지와 해결 방법을 살펴보세요.

API 오류

ElevenLabs는 요청의 성공 또는 실패를 나타내기 위해 표준 HTTP 상태 코드를 사용합니다. 또한 모든 API 요청은 오류 정보를 포함하는 detail 속성이 있는 JSON 객체를 반환합니다.

일반적으로 200 HTTP 상태 코드는 요청이 성공했음을 나타냅니다. 4xx 코드는 잘못된 매개변수나 필수 필드 누락 등 요청에 문제가 있음을 나타냅니다. 500 HTTP 상태 코드는 ElevenLabs 서버에 문제가 있음을 나타내며, 이는 드물게 발생합니다.

오류 속성

속성설명
type발생한 오류의 유형입니다. 가능한 값은 아래 표를 참고하세요.
code오류 코드입니다. 유형보다 더 구체적이며, 오류 원인을 파악하는 데 사용할 수 있습니다.
message오류 메시지입니다. 오류에 관한 자세한 정보를 제공합니다.
status오류 상태입니다. 더 이상 사용되지 않는 레거시 필드이므로 대신 code 속성을 사용하세요.
request_id오류의 요청 ID입니다. 오류 해결에 사용할 수 있는 요청의 고유 식별자입니다.
param오류를 일으킨 매개변수입니다. 유효성 검사 오류의 경우 유효하지 않은 매개변수를 나타냅니다.

오류 응답 예시

잘못된 모델 ID를 사용한 API 요청의 응답은 다음과 같습니다.

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

오류 속성을 통해 이 오류가 유효성 검사 오류이고 코드가 invalid_parameters임을 알 수 있습니다. 메시지는 오류에 관한 자세한 정보를 제공하며, request_id는 오류 해결에 사용할 수 있는 요청의 고유 식별자입니다. param 속성은 오류를 일으킨 매개변수를 나타냅니다.

SDK 오류 처리

ElevenLabs SDK는 오류 세부 정보에 액세스할 수 있는 타입 지정 오류 클래스를 제공합니다.

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

속도 제한 및 동시성

429 HTTP 상태 코드를 받았다면 짧은 시간 안에 너무 많은 요청을 보내 API 엔드포인트의 속도 제한을 초과했거나, API 엔드포인트의 동시성 제한을 초과했다는 의미입니다. 오류 code는 각각 rate_limit_exceeded 또는 concurrent_limit_exceeded입니다.

속도 제한의 경우 429 오류를 받았을 때 코드에 지수 백오프를 구현해야 합니다. 즉, 요청을 다시 시도하기 전에 지연 시간을 추가해야 합니다.

동시성의 경우 새 요청을 보내기 전에 현재 요청이 완료될 때까지 기다려야 합니다. 자세한 내용은 동시성 및 우선순위 섹션을 참고하세요.

오류 유형

오류에는 발생한 오류의 유형을 나타내는 type 속성이 포함됩니다. 가능한 값은 아래 표를 참고하세요.

유형설명HTTP 상태 코드
validation_error요청에 유효하지 않은 매개변수 값이 포함되어 있습니다.400
invalid_request요청 구조가 잘못되었거나 필수 필드가 누락되었습니다.400
authentication_error인증에 실패했습니다. API 키/토큰이 잘못되었거나 누락되었습니다.401
payment_required사용자의 크레딧이 부족하거나 결제가 필요합니다.402
authorization_error인증된 사용자에게 이 작업에 필요한 권한이 없습니다.403
not_found요청한 리소스를 찾을 수 없습니다.404
conflict요청이 리소스의 현재 상태와 충돌합니다.409
rate_limit_error요청이 너무 많습니다. 나중에 다시 시도하세요.429
internal_error예기치 않은 서버 오류가 발생했습니다.500
service_unavailable서비스를 일시적으로 사용할 수 없습니다. 드물게 발생해야 합니다.503

오류 코드

코드유형설명
voice_not_foundnot_found지정한 음성 ID가 존재하지 않습니다. 음성 ID를 확인하고 다시 시도하세요.
sample_not_foundnot_found지정한 음성 샘플을 찾을 수 없습니다.
voice_collection_not_foundnot_found지정한 음성 컬렉션이 존재하지 않습니다.
user_not_foundnot_found지정한 사용자를 찾을 수 없습니다.
auth_account_not_foundnot_found인증 계정을 찾을 수 없습니다.
workspace_not_foundnot_found지정한 워크스페이스가 존재하지 않습니다.
project_not_foundnot_found지정한 프로젝트를 찾을 수 없습니다.
history_item_not_foundnot_found지정한 히스토리 항목이 존재하지 않습니다.
collection_not_foundnot_found지정한 컬렉션을 찾을 수 없습니다.
document_not_foundnot_found지정한 문서가 존재하지 않습니다.
file_not_foundnot_found지정한 파일을 찾을 수 없습니다.
conversation_not_foundnot_found지정한 대화가 존재하지 않습니다.
agent_not_foundnot_found지정한 에이전트를 찾을 수 없습니다.
dubbing_not_foundnot_found지정한 더빙 프로젝트가 존재하지 않습니다.
song_not_foundnot_found지정한 노래를 찾을 수 없습니다.
read_not_foundnot_found지정한 읽기 항목을 찾을 수 없습니다.
pronunciation_dictionary_not_foundnot_found지정한 발음 사전이 존재하지 않습니다.
knowledge_base_not_foundnot_found지정한 지식 베이스를 찾을 수 없습니다.
phone_number_not_foundnot_found지정한 전화번호가 존재하지 않습니다.
tool_not_foundnot_found지정한 도구를 찾을 수 없습니다.
snapshot_not_foundnot_found지정한 스냅샷이 존재하지 않습니다.
task_not_foundnot_found지정한 작업을 찾을 수 없습니다.
model_not_foundnot_found지정한 모델이 존재하지 않습니다.
transcript_not_foundnot_found지정한 트랜스크립트를 찾을 수 없습니다.
keywords_list_not_foundnot_found지정한 키워드 목록을 찾을 수 없습니다.
category_not_foundnot_found지정한 카테고리를 찾을 수 없습니다.
text_too_longvalidation_error제공된 텍스트가 허용되는 최대 길이를 초과합니다.
text_too_shortvalidation_error제공된 텍스트가 필수 최소 길이보다 짧습니다.
invalid_textvalidation_error제공된 텍스트에 유효하지 않은 문자 또는 형식이 포함되어 있습니다.
empty_textvalidation_error텍스트 필드는 비워 둘 수 없습니다.
invalid_parametersvalidation_error

하나 이상의 요청 매개변수가 유효하지 않습니다. 유효하지 않은 매개변수는 param 속성을 확인하세요.

missing_required_fieldvalidation_error

요청에 필수 필드가 누락되었습니다. 누락된 필드는 param 속성을 확인하세요.

invalid_voice_settingsvalidation_error

음성 설정에 유효하지 않은 값이 포함되어 있습니다. 유효하지 않은 음성 설정은 param 속성을 확인하세요.

invalid_voice_idvalidation_error음성 ID 형식이 유효하지 않습니다.
unsupported_modelvalidation_error지정한 모델은 이 작업에서 지원되지 않습니다.
invalid_audiovalidation_error제공된 오디오가 유효하지 않거나 손상되었습니다.
invalid_audio_formatvalidation_error지정한 오디오 형식은 지원되지 않습니다.
invalid_output_formatvalidation_error요청한 출력 형식은 지원되지 않습니다.
audio_too_longvalidation_error오디오가 허용되는 최대 길이를 초과합니다.
audio_too_shortvalidation_error오디오가 필수 최소 길이보다 짧습니다.
invalid_file_typevalidation_error파일 형식은 지원되지 않습니다.
invalid_page_sizevalidation_error페이지 크기 매개변수가 허용 범위를 벗어났습니다.
invalid_cursorvalidation_error페이지네이션 커서가 유효하지 않거나 만료되었습니다.
bad_requestinvalid_request서버가 요청을 이해할 수 없습니다.
malformed_jsoninvalid_request요청 본문에 유효하지 않은 JSON이 포함되어 있습니다.
invalid_content_typeinvalid_requestContent-Type 헤더가 누락되었거나 유효하지 않습니다.
request_too_largeinvalid_request요청 본문이 허용되는 최대 크기를 초과합니다.
invalid_api_keyauthentication_error제공된 API 키가 유효하지 않습니다.
missing_api_keyauthentication_error요청에 API 키가 제공되지 않았습니다.
invalid_authorization_headerauthentication_errorAuthorization 헤더 형식이 유효하지 않습니다.
unauthorizedauthentication_error이 리소스에 액세스하려면 인증이 필요합니다.
sign_in_requiredauthentication_error이 작업을 수행하려면 로그인해야 합니다.
forbiddenauthorization_error이 리소스에 대한 액세스가 금지되었습니다.
insufficient_permissionsauthorization_error이 작업에 필요한 권한이 없습니다.
workspace_access_deniedauthorization_error이 워크스페이스에 액세스할 수 없습니다.
feature_not_availableauthorization_error현재 요금제에서는 이 기능을 사용할 수 없습니다.
subscription_requiredauthorization_error이 기능에 액세스하려면 유료 구독이 필요합니다.
voice_access_deniedauthorization_error이 음성에 액세스할 수 없습니다.
model_access_deniedauthorization_error이 모델에 액세스할 수 없습니다.
conflictconflict충돌이 발생했습니다.
resource_already_existsconflict동일한 식별자를 가진 리소스가 이미 존재합니다.
voice_already_existsconflict이 이름의 음성이 이미 존재합니다.
already_runningconflict작업이 이미 실행 중입니다.
already_processingconflict리소스가 이미 처리 중입니다.
concurrent_modificationconflict다른 요청이 리소스를 수정했습니다. 최신 버전으로 다시 시도하세요.
slug_already_existsconflict이 슬러그를 가진 리소스가 이미 존재합니다.
rate_limit_exceededrate_limit_error요청이 너무 많습니다. 기다린 후 다시 시도하세요.
concurrent_limit_exceededrate_limit_error

최대 동시 요청 수를 초과했습니다. 더 높은 구독 등급일수록 더 높은 동시성 제한이 적용됩니다.

system_busyrate_limit_error현재 시스템이 사용 중입니다. 나중에 다시 시도하세요.
insufficient_creditspayment_required계정에 이 작업을 수행할 크레딧이 충분하지 않습니다.
internal_errorinternal_error예기치 않은 오류가 발생했습니다. 문제가 지속되면 지원팀에 문의하세요.
service_unavailableservice_unavailable서비스를 일시적으로 사용할 수 없습니다. 나중에 다시 시도하세요.
maintenanceservice_unavailable서비스가 예정된 유지 관리를 진행 중입니다.