오류
요청이나 작업이 실패한 이유와 다음에 무엇을 해야 하는지 알아보세요. 요청은 HTTP 오류와 함께 즉시 실패할 수 있으며, 작업은 이후에 task_error와 함께 실패할 수 있습니다.
요청 오류
Meshy는 요청을 거부할 때 이러한 오류를 즉시 반환합니다. 무엇이 잘못되었는지 확인하려면 HTTP 상태 코드와 message 필드를 확인하세요.
응답 형식
오류 응답에는 무엇이 잘못되었는지 설명하는 message 필드가 있습니다:
- Name
- message
- Type
- string
- Description
오류에 대한 간단한 설명입니다.
상태 코드
- Name
2xx- Description
성공.
- Name
200 - OK- Description
요청이 성공적으로 처리되었습니다.
- Name
202 - Accepted- Description
Meshy가 요청을 수락했으며, 처리가 아직 완료되지 않았습니다. 예를 들어, 작업을 생성하는 요청은
202를 반환합니다.
- Name
4xx- Description
요청 또는 계정에 문제가 있습니다. 각 상태는 무엇을 해야 하는지 알려줍니다.
- Name
400 - Bad Request- Description
요청이 유효하지 않습니다. 필수 파라미터가 누락되었거나 파라미터 형식이 잘못된 경우가 많습니다.
- Name
401 - Unauthorized- Description
API 키가 없거나, 유효하지 않거나, 이 엔드포인트에 접근할 수 없습니다. 인증을 참고하세요.
- Name
402 - Payment Required- Description
API 키의 계정에 요청을 처리할 만큼 충분한 크레딧이 없습니다. Free 플랜에서는 작업을 생성하는 대부분의 요청도
402를 반환합니다.
- Name
403 - Forbidden- Description
다음과 같은 이유로 이 요청을 수행할 수 없습니다:
- 요청이 API 키의 IP 허용 목록에 없는 주소에서 왔습니다.
- 작업을 읽을 때 조직의 IP 필터링이 작업 파일을 차단했습니다.
- 해당 엔드포인트는 사용 중인 플랜에서 이용할 수 없습니다.
- 콘텐츠 moderation이 입력을 차단했습니다. 일부 엔드포인트는 이 경우 대신
400을 반환하며, 각 엔드포인트 페이지에 해당 코드가 명시되어 있습니다. - API 키가 더 이상 팀에서 활동하지 않는 팀원 소유입니다.
- 계정이 정지되었습니다.
- Name
404 - Not Found- Description
리소스가 존재하지 않습니다. 예를 들어, 존재하지 않는 ID로 작업을 조회하면
404가 반환됩니다.
- Name
409 - Conflict- Description
리소스는 존재하지만, 해당 상태에서는 작업을 수행할 수 없습니다. 예를 들어
IN_PROGRESS상태인 작업을 삭제하려고 하면409가 반환되는데, 이는 워커가 이미 시작한 작업을 Meshy가 환불할 수 없기 때문입니다. 작업은 계속 실행되며, 최종 상태 (SUCCEEDED,FAILED, 또는CANCELED)가 될 때까지 기다린 후 작업을 삭제하세요.
- Name
422 - Unprocessable Entity- Description
요청은 유효하지만 Meshy가 그 입력을 처리할 수 없습니다. 예를 들어, 리깅은 모델에서 사람 형태의 신체를 찾을 수 없을 때
422를 반환합니다.
- Name
429 - Too Many Requests- Description
너무 많은 요청을 보냈거나, 대기 중이거나 실행 중인 작업이 너무 많습니다. 응답에
Retry-After헤더가 있으면 그 시간(초)만큼 기다린 후 다시 시도하세요. 자세한 내용은 속도 제한을 참고하세요.
Example: 400 Bad Request
{
"message": "Invalid model file extension: .3dm"
}
작업 오류
Meshy가 생성한 작업은 실행 중에도 실패할 수 있습니다. 이 경우 status가 FAILED로 바뀌고, Meshy는 해당 크레딧을 환불하며, task_error가 그 이유를 설명합니다.
실패한 작업의 task_error에는 다음 필드가 있습니다:
- Name
- type
- Type
- string
- Description
오류 카테고리입니다. 실패한 작업에는 항상 존재합니다. 재시도 여부를 결정할 때 이 값을 기준으로 분기하세요. 오류 유형을 참고하세요.
- Name
- message
- Type
- string
- Description
사람이 읽을 수 있는 오류 설명입니다. 실패한 작업에는 항상 존재합니다.
- Name
- code
- Type
- string
- 선택
- Description
조치할 수 있는 구체적이고 문서화된 문제입니다. Meshy에 더 자세한 정보가 있을 때 존재합니다. 오류 코드를 참고하세요. Meshy는 코드를 추가할 수 있으므로, 인식하지 못하는 코드는
type을 기준으로 처리하세요.
- Name
- doc_url
- Type
- string
- 선택
- Description
해결 방법이 설명된 이 페이지의 해당 코드 항목으로 연결되는 링크입니다.
code가 존재할 때 함께 존재합니다.
Error with details
{
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"status": "FAILED",
"task_error": {
"type": "invalid_input",
"code": "image_too_complex",
"message": "The uploaded image is too complex for 3D generation.",
"doc_url": "https://docs.meshy.ai/en/api/errors#image-too-complex"
}
}
Error without details
{
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"status": "FAILED",
"task_error": {
"type": "server_error",
"message": "An internal error occurred. Please retry."
}
}
오류 유형
type은 실패를 나타내는 큰 범주입니다. 이를 통해 다음에 무엇을 해야 할지 결정하세요.
- Name
invalid_input- Description
전송한 입력값에 문제가 있습니다.
code와message를 확인하여 입력값을 수정한 후 새 작업을 생성하세요.
- Name
timeout- Description
작업이 서버 측 시간 제한(처리 또는 대기열 대기)을 초과하여 실패했습니다. Meshy는 크레딧을 환불합니다. 이는 일시적인 경우가 많습니다. 작업을 다시 생성하고, 계속 실패한다면 더 단순한 입력값으로 시도해 보세요.
- Name
service_unavailable- Description
서비스를 일시적으로 사용할 수 없습니다. 잠시 기다린 후 작업을 다시 생성하세요.
- Name
server_error- Description
작업이 실행되는 동안 Meshy 측에서 문제가 발생했습니다. 작업을 다시 생성하세요. 계속 실패한다면 작업 ID와 함께 지원팀에 문의하세요.
오류 코드
code가 존재하는 경우, 이는 다음 문제 중 하나를 나타냅니다.
image_too_complex
입력 이미지 또는 prompt가 3D 생성에 비해 기하학적으로 너무 복잡한 대상을 설명하고 있습니다.
예를 들면:
- 과일이 가득한 상자나 쌓인 책 더미처럼 작은 물체가 빽빽하게 쌓인 경우
- 격자 구조, 비계, 철망 등 복잡하게 반복되는 패턴
- 창문과 발코니가 많은 다층 건물과 같은 복잡한 건축물
- 하나의 대상이 아니라 한 이미지에 여러 개의 별개 사물이 있는 경우
다음과 같은 입력은 너무 복잡할 가능성이 높습니다:




이 문제를 해결하려면 다음 중 하나 이상을 시도해 보세요:
- 이미지 하나당 사물 하나만 사용하세요. Meshy는 명확한 대상이 하나일 때 가장 잘 작동하므로, 여러 개의 별개 사물을 같은 이미지나 prompt에 넣지 마세요.
- 대상을 단순화하세요. 예를 들어, 수십 송이의 꽃으로 가득 찬 꽃병 대신 단순한 꽃병을 사용하세요.
- 장면은 피하세요. 건물 전체, 도시 블록, 가구가 배치된 방, 풍경 등은 너무 복잡할 가능성이 높습니다. 하나의 사물에 집중하세요.
- 빽빽하게 반복되는 구조는 피하세요. 비계, 철망, 격자, 작은 물건 더미는 흔히 문제를 일으키는 요소입니다.
model_missing_uv
enable_original_uv를 true로 설정하여 텍스처링을 위한 모델을 전송했지만, 모델에 UV 좌표가 없습니다. UV 좌표는 2D 텍스처가 3D 표면에 어떻게 입혀지는지를 정의합니다.

이를 해결하려면 다음 중 하나를 수행하세요:
- 사용자 지정 심(seam) 배치 등을 위해 모델 고유의 UV 레이아웃을 유지하려면, 3D 소프트웨어에서 모델에 UV를 추가하세요. 해당 소프트웨어의 UV 에디터에서 확인한 후, 모델을 다시 업로드하세요. STL 파일은 UV를 저장할 수 없으므로 GLB, FBX 또는 OBJ를 사용하세요.
- 자신만의 레이아웃이 필요하지 않거나 확실하지 않다면,
enable_original_uv를 생략하거나false로 설정하세요. 그러면 Meshy가 모델에 맞는 UV 레이아웃을 생성합니다. 새로운 UV는 모델을 잘 덮지만, 텍스처 심이 어디에 위치할지는 제어할 수 없습니다.
model_insufficient_uv
모델에 UV 좌표가 있지만, 텍스처를 제대로 적용하기에는 UV 공간을 차지하는 비중이 너무 적습니다. 익스포터가 제대로 된 언랩 없이 플레이스홀더 UV나 뭉쳐진 UV를 생성한 모델에서 자주 발생합니다.

이를 해결하려면 다음 중 하나를 수행하세요:
- 자신만의 UV 레이아웃을 유지하려면, 3D 소프트웨어에서 모델의 UV를 다시 언랩하세요. 아일랜드를 UV 공간의 작은 한쪽 구석이 아니라 전체에 걸쳐 고르게 펼치세요.
- 자신만의 레이아웃이 필요하지 않다면,
enable_original_uv를 생략하거나false로 설정하세요. 그러면 Meshy가 새로운 UV 레이아웃을 생성합니다. 기존 솔기(seam) 배치는 잃게 되지만, 새 UV는 텍스처를 적용하기에 충분한 공간을 차지하게 됩니다.
model_missing_texture
다색 프린트 작업의 입력 모델에 Meshy가 프린트 색상으로 분할할 수 있는 색상이 없습니다. Meshy는 모델의 색상으로 다색 3MF를 생성하므로, 단색 흰색 메시로는 작업할 것이 없습니다. 예를 들어, 텍스처가 적용된 적 없는 텍스트로 3D 또는 이미지로 3D 미리보기에는 색상이 없습니다. 프린팅 가능성 복구의 출력물이나, 텍스처를 유지하지 않은 Auto Split 작업도 마찬가지입니다.
무엇이 색상으로 간주되는지는 요청한 style에 따라 다릅니다:
realistic은 모델의 UV를 통해 베이스 컬러 텍스처를 샘플링합니다. 단일 베이스 컬러 텍스처와, 모든 메시 부분에 UV가 필요합니다.cartoon은 면 단위로 색상을 평탄화합니다. 어느 부분에든 있는 베이스 컬러 텍스처 또는 버텍스별 색상(COLOR_0)을 받아들입니다.
Meshy는 두 스타일 모두에 대해 베이스 컬러 텍스처도 버텍스 색상도 없는 모델을 거부하며, cartoon이 이를 단색 프린트로 변환하도록 두지 않습니다.
Meshy는 이러한 요청 대부분을 작업을 생성하기 전에 400과 동일한 설명과 함께 거부합니다. 이 코드는 보통 Meshy가 입력을 사전에 확인할 수 없는 경우에만 받게 됩니다. 예를 들어, Meshy는 .fbx 업로드를 작업이 이를 변환한 후에만 확인합니다.
이를 해결하려면 모델에 맞는 옵션을 사용하세요:
- 먼저 모델에 텍스처를 적용하세요. 리텍스처를 실행하거나, 텍스트로 3D refine 작업 또는
should_texture: true가 설정된 이미지로 3D 작업으로 생성하세요. 그런 다음 해당 작업을input_task_id로 전송하세요. - 포토그래메트리 스캔이나 수작업으로 색칠된 메시처럼 버텍스 색상이 있는 모델의 경우,
COLOR_0을 읽는style: "cartoon"을 사용하세요. realistic에서 부분적으로 텍스처가 적용되었거나 여러 텍스처가 있는 모델의 경우, 모든 메시 부분에 UV와 동일한 단일 베이스 컬러 텍스처를 지정하세요. 이를 위해 나머지 부분에 텍스처를 적용하거나, 텍스처를 하나의 아틀라스로 병합하세요.style: "cartoon"으로 전환할 수도 있습니다.
textured_split_refused
keep_texture: true로 설정된 Auto Split 작업이 입력 모델의 텍스처를 파츠에 유지할 수 없는 경우입니다. 예를 들어 모델에 UV가 없거나, 텍스처에 절단으로 생성된 새 면을 위한 공간이 없는 경우입니다. Meshy는 크레딧을 환불합니다.
이를 해결하려면 keep_texture 없이, 또는 keep_texture: false로 설정하여 요청을 다시 보내세요. 그러면 각 파츠는 단색으로 반환됩니다.
invalid_input
입력이 검사를 통과하지 못했고, 더 구체적으로 해당하는 코드가 없는 경우입니다. 이유는 message에 나타납니다.
예를 들면 다음과 같습니다:
- 비어 있거나 손상된 모델 파일
- ASCII FBX 파일이나 meshopt로 압축된 GLB 파일처럼 지원되지 않는 파일 형식의 변형
- 아마추어, 카메라, 조명만 포함된 파일처럼 유효한 3D 객체가 없는 업로드된 모델
- 안전 필터를 통과하지 못한 콘텐츠
이를 해결하려면 구체적인 문제를 확인하기 위해 message를 읽어보세요. 입력 파일과 매개변수가 엔드포인트의 요구 사항을 충족하는지 확인하세요.
moderation_blocked
안전 필터가 prompt 또는 참조 이미지를 거부했습니다. 필터는 텍스트와 이미지를 함께 검사합니다.
이 문제를 해결하려면 다음 중 하나 또는 둘 다를 수행하세요:
- 선정적이거나 민감한 설명을 제거하도록 prompt를 다시 작성하세요.
- 필터가 차단할 수 있는 콘텐츠를 보여주는 참조 이미지를 변경하세요.
moderation_unavailable
유형: server_error. 콘텐츠 moderation이 일시적으로 사용할 수 없어, Meshy가 검사를 건너뛰는 대신 작업을 실패 처리했습니다. 사용자의 콘텐츠에는 문제가 없습니다.
이 문제를 해결하려면 작업을 다시 생성하세요.
timeout
작업이 서버 측 시간 제한(처리 시간 또는 대기열 대기 시간)을 초과하여 Meshy가 작업을 실패 처리하고 크레딧을 환불했습니다. 높은 부하, 또는 시간 내에 처리하기에 너무 복잡한 입력이 원인일 수 있습니다.
이는 사용자 측 코드에서 발생하는 timeout과는 다릅니다. 클라이언트가 대기를 중단했더라도 작업은 계속 실행 중일 수 있습니다. How long to wait를 참조하세요.
이 문제를 해결하려면 다음 단계를 따르세요:
- 작업을 다시 생성하세요. timeout은 일시적인 경우가 많으며, 새로 생성한 작업은 성공할 수 있습니다.
- 계속 실패하는 경우, 이미지나 prompt의 세부 정도를 줄이는 등 입력을 단순화하세요. 처리하기 더 어려운 입력에 대해서는
image_too_complex를 참조하세요.
queue_timeout
유형: timeout. 작업이 큐에서 너무 오래 대기하다가 시작되지 못해, Meshy가 작업을 실패 처리하고 해당 작업에 청구된 크레딧을 환불했습니다. 이 오류는 입력으로 인해 발생한 것이 아닙니다.
이 문제를 해결하려면 작업을 다시 생성하세요.
format_conversion_failed
Meshy가 모델을 생성했지만, 요청한 포맷으로 변환하는 데 실패했습니다.
이 문제를 해결하려면 다음 단계를 따르세요.
- 작업을 다시 생성하세요.
- 특정 포맷이 계속 실패한다면, 필요에 맞는 다른 포맷을 요청하세요.
모범 사례
- 실패한 작업은 재시도하세요.
timeout,service_unavailable, 또는server_error로 실패한 작업의 경우, 지수 백오프를 적용해 새 작업을 생성하세요. - 요청이 timeout되었다고 해서 새 작업을 생성하지 마세요. 처음 작업이 여전히 실행 중일 수 있으므로, 다른 작업을 생성하기 전에 해당 작업이 존재하는지 확인하세요. 얼마나 기다려야 하는지를 참고하세요.
- 작업 ID를 기록하세요. 지원팀에 문의할 때 ID를 포함하세요.
- 입력값을 전송하기 전에 확인하세요. 이미지와 모델이 엔드포인트의 형식 요구사항을 충족하는지 확인하세요.
- 서버에서 API를 호출하세요. 브라우저에서 실행되는 코드는 페이지를 여는 모든 사람에게 API 키를 노출합니다.