Ошибки
Узнайте, почему запрос или задача завершились неудачей, и что делать дальше. Запрос может завершиться неудачей сразу с ошибкой 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
Вам не разрешено выполнять этот запрос, например, по одной из следующих причин:
- Запрос поступил с адреса, не входящего в список разрешённых IP-адресов API-ключа.
- Фильтрация IP-адресов вашей организации заблокировала файлы задачи при их чтении.
- Эндпоинт недоступен на вашем тарифе.
- Модерация контента заблокировала входные данные. Некоторые эндпоинты в этом случае возвращают
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 не может обработать его входные данные. Например, Rigging возвращает
422, если не удаётся найти гуманоидное тело в модели.
- Name
429 - Too Many Requests- Description
Вы отправили слишком много запросов, либо слишком много ваших задач стоит в очереди или выполняется. Если в ответе есть заголовок
Retry-After, подождите указанное в нём количество секунд, а затем повторите запрос. См. Ограничения скорости.
- Name
5xx- Description
Что-то пошло не так на стороне Meshy. Повторите запрос с увеличивающейся задержкой. Если ошибка не исчезает, проверьте страницу состояния и свяжитесь с нами в Discord.
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 во время выполнения задачи. Создайте задачу заново. Если она продолжает завершаться ошибкой, обратитесь в поддержку, указав идентификатор задачи.
Коды ошибок
Когда присутствует code, он называет одну из следующих проблем.
image_too_complex
Входное изображение или prompt описывает объект, который слишком сложен геометрически для 3D-генерации.
Например:
- Плотные скопления мелких предметов, например ящик, полный фруктов, или стопка книг
- Замысловатые повторяющиеся узоры, например решётчатые конструкции, строительные леса или проволочные сетки
- Сложные здания, например многоэтажные дома с большим количеством окон и балконов
- Несколько отдельных объектов на одном изображении вместо одного объекта
Эти входные данные, скорее всего, слишком сложны:




Чтобы это исправить, попробуйте одно или несколько из следующего:
- Используйте один объект на изображение. Meshy работает лучше всего с одним чётким объектом, поэтому не помещайте несколько отдельных объектов в одно и то же изображение или prompt.
- Упростите свой объект. Например, используйте простую вазу вместо вазы, заполненной десятками цветов.
- Избегайте сцен. Целые здания, городские кварталы, меблированные комнаты и пейзажи, скорее всего, будут слишком сложными. Сосредоточьтесь на одном объекте.
- Избегайте плотных повторяющихся структур. Строительные леса, проволочные сетки, решётки и скопления мелких предметов — частые источники проблем.
model_missing_uv
Вы отправили модель на текстурирование с параметром enable_original_uv, установленным в true, но у модели отсутствуют UV-координаты. UV-координаты определяют, как 2D-текстура накладывается на 3D-поверхность.

Чтобы исправить это, выполните одно из следующих действий:
- Чтобы сохранить собственную UV-раскладку модели, например для пользовательского размещения швов, добавьте UV-координаты к модели в своём 3D-редакторе. Проверьте их в его UV-редакторе, затем загрузите модель снова. Файлы STL не могут хранить UV-координаты, поэтому используйте GLB, FBX или OBJ.
- Если вам не нужна собственная раскладка или вы не уверены, оставьте параметр
enable_original_uvпустым либо установите его вfalse. Тогда Meshy создаст UV-раскладку для модели. Новые UV-координаты хорошо покрывают модель, но вы не сможете контролировать расположение швов текстуры.
model_insufficient_uv
Модель имеет UV-координаты, но они покрывают слишком малую часть UV-пространства для качественного наложения текстуры. Это часто происходит с моделями, экспортер которых записал placeholder-координаты или схлопнутые UV без корректной развёртки.

Чтобы это исправить, сделайте одно из следующего:
- Чтобы сохранить собственную UV-раскладку, заново разверните UV модели в своём 3D-редакторе. Распределите острова по всему UV-пространству, а не в небольшом его углу.
- Если вам не нужна собственная раскладка, не указывайте
enable_original_uvили установите значениеfalse. В этом случае Meshy создаст новую UV-раскладку. Вы потеряете расположение швов, но новые 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 только после того, как задача преобразует его.
Чтобы это исправить, выберите вариант, подходящий для вашей модели:
- Сначала текстурируйте модель. Запустите Ретекстурирование на ней, либо сгенерируйте её с помощью задачи refine в Текст в 3D или задачи Изображение в 3D с
should_texture: true. Затем передайте эту задачу какinput_task_id. - Для модели с цветами по вершинам, например фотограмметрического сканирования или сетки, раскрашенной вручную, используйте
style: "cartoon", которая считываетCOLOR_0. - Для частично текстурированной модели или модели с несколькими текстурами при использовании
realisticзадайте UV-развёртку и одну и ту же базовую цветовую текстуру для каждой части сетки. Для этого текстурируйте оставшиеся части либо объедините текстуры в один атлас. Также можно переключиться наstyle: "cartoon".
textured_split_refused
Задача Auto Split с keep_texture: true не может сохранить текстуру исходной модели на частях. Например, у модели нет UV-развёртки, или на её текстуре нет места для новых граней, созданных разрезами. Meshy возвращает кредиты.
Чтобы это исправить, отправьте запрос снова без keep_texture или с keep_texture: false. В этом случае части будут возвращены с однотонным цветом каждая.
invalid_input
Входные данные не прошли проверку, и более конкретный код неприменим. Причина указана в message.
Например:
- Пустой или повреждённый файл модели
- Неподдерживаемый вариант формата файла, например ASCII-файл FBX или GLB-файл, сжатый с помощью meshopt
- Загруженная модель без допустимых 3D-объектов, например файл, содержащий только арматуры, камеры или источники света
- Контент, не прошедший проверку безопасности
Чтобы это исправить, прочитайте message, чтобы узнать причину проблемы. Проверьте, что ваши входные файлы и параметры соответствуют требованиям эндпоинта.
moderation_blocked
Фильтры безопасности отклонили ваш prompt или референсные изображения. Фильтры проверяют текст и изображения вместе.
Чтобы исправить это, выполните одно из следующих действий или оба сразу:
- Перефразируйте prompt, убрав провокационные или деликатные описания.
- Замените референсные изображения, содержащие контент, который могут заблокировать фильтры.
moderation_unavailable
Тип: server_error. Модерация контента была временно недоступна, поэтому Meshy завершил задачу с ошибкой вместо того, чтобы пропустить проверку. С вашим контентом всё в порядке.
Чтобы исправить это, создайте задачу заново.
timeout
Задача превысила серверное ограничение по времени — на обработку или на ожидание в очереди, — поэтому Meshy завершила её с ошибкой и вернула кредиты. Причиной может быть высокая нагрузка или входные данные, слишком сложные для обработки за отведённое время.
Это отличается от timeout в вашем собственном коде. Если ваш клиент перестал ждать, задача всё ещё выполняется. См. Сколько времени ждать.
Чтобы исправить это, выполните следующие шаги:
- Создайте задачу заново. Timeout часто носит временный характер, и новая задача может завершиться успешно.
- Если ошибка повторяется, упростите входные данные, например, уменьшив детализацию изображения или prompt. Про входные данные, которые сложнее обрабатывать, см.
image_too_complex.
queue_timeout
Тип: timeout. Задача слишком долго ждала в очереди и не началась, поэтому Meshy пометила её как неудачную (FAILED) и вернула все кредиты, списанные за неё. Ваши входные данные не стали причиной этой ошибки.
Чтобы исправить это, создайте задачу заново.
format_conversion_failed
Meshy сгенерировала модель, но конвертация её в запрошенный формат завершилась неудачей.
Чтобы исправить это, выполните следующие шаги:
- Создайте задачу заново.
- Если конвертация в определённый формат постоянно завершается неудачей, запросите другой формат, подходящий для ваших задач.
Best practices
- Повторяйте неудачные задачи. Для задачи, завершившейся с ошибкой
timeout,service_unavailableилиserver_error, создайте новую задачу с экспоненциальной задержкой. - Не создавайте новую задачу, если истекло время ожидания вашего собственного запроса. Первая задача может всё ещё выполняться, поэтому перед созданием новой проверьте, существует ли она. См. Сколько времени ждать.
- Записывайте идентификаторы задач. Указывайте ID при обращении в поддержку.
- Проверяйте входные данные перед отправкой. Убедитесь, что изображения и модели соответствуют требованиям к формату эндпоинта.
- Вызывайте API со своего сервера. Код, выполняющийся в браузере, раскрывает ваш API-ключ любому, кто откроет страницу.