Ошибки
В этом руководстве мы расскажем о том, что происходит, когда что-то идёт не так во время работы с Meshy API.
Ошибки запроса
Эти ошибки возвращаются немедленно, когда ваш API-запрос отклонён. Проверьте код состояния HTTP и поле message, чтобы понять, что пошло не так.
Формат ответа
Ответ с ошибкой содержит одно поле message, описывающее, что пошло не так:
- Name
- message
- Type
- string
- Description
Краткое описание ошибки.
Коды состояния
- Name
2xx- Description
Код состояния 2xx означает успешный ответ.
- Name
200 - OK- Description
По умолчанию, если всё сработало как ожидалось, будет возвращён код состояния 200.
- Name
202 - Accepted- Description
Ваш запрос принят к обработке, но обработка ещё не завершена. Это ни к чему не обязывающий ответ от Meshy API. Например, запрос на создание новой задачи вернёт код состояния 202.
- Name
4xx- Description
Код состояния 4xx означает ошибку на стороне клиента.
- Name
400 - Bad Request- Description
Запрос был некорректным, часто из-за отсутствия обязательного параметра или из-за того, что один из параметров был неверно сформирован.
- Name
401 - Unauthorized- Description
Не предоставлен действительный API-ключ, либо предоставленный API-ключ не авторизован для доступа к эндпоинту Meshy API.
- Name
402 - Payment Required- Description
Недостаточно средств на счёте, связанном с предоставленным API-ключом.
- Name
403 - Forbidden- Description
Доступ к запрашиваемому ресурсу запрещён. Это может произойти, если вы пытаетесь обратиться к Meshy API напрямую из клиентского JavaScript-кода, так как межсайтовые запросы (Cross-Origin Resource Sharing, CORS) из браузеров не разрешены. Рассмотрите возможность использования серверного прокси для таких запросов. Подробнее см. в руководстве MDN по CORS.
- Name
404 - Not Found- Description
Запрашиваемый ресурс не существует. Например, если вы пытаетесь получить задачу по её ID, но указали недействительный ID, вы получите код состояния 404.
- Name
409 - Conflict- Description
Ресурс существует, но его текущее состояние не позволяет выполнить операцию. Например, удаление задачи, которая уже находится в состоянии
IN_PROGRESS, вернёт 409: воркер уже начал работу, которую нельзя отменить с возвратом средств, поэтому задача продолжает выполняться. Дождитесь финального статуса (SUCCEEDED,FAILEDилиCANCELED) и повторите попытку.
- Name
429 - Too Many Requests- Description
Слишком много запросов было отправлено к Meshy API слишком быстро. Подробности см. в руководстве Rate Limits.
- Name
5xx- Description
Код состояния 5xx означает ошибку на стороне сервера. Если вы его видите, пожалуйста, проверьте нашу страницу состояния для получения дополнительной информации и свяжитесь с нами через Discord за помощью.
Example: 400 Bad Request
{
"message": "Invalid model file extension: .3dm"
}
Ошибки задачи
Эти ошибки возникают после создания задачи и в процессе её выполнения. Проверьте объект task_error в ответе задачи для получения деталей ошибки.
Объект task_error содержит следующие поля:
- Name
- type
- Type
- string
- Description
Категория ошибки. Всегда присутствует в случае неудачных задач. См. Типы ошибок ниже.
- Name
- message
- Type
- string
- Description
Человеко-читаемое описание ошибки. Всегда присутствует в случае неудачных задач.
- Name
- code
- Type
- string
- Необязательный
- Description
Специфический код ошибки, идентифицирующий проблему. Присутствует, когда доступны дополнительные детали. См. Коды ошибок ниже.
- Name
- doc_url
- Type
- string
- Необязательный
- Description
Ссылка на подробную документацию по этому коду ошибки, включая рекомендации по разрешению. Присутствует, когда присутствует
code.
Ошибка с деталями
{
"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"
}
}
Ошибка без деталей
{
"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
Обработка превысила лимит времени. Это часто временное явление. Повторите запрос, и если он продолжает не выполняться, попробуйте упростить ввод.
- Name
service_unavailable- Description
Сервис временно недоступен. Подождите немного и повторите попытку.
- Name
server_error- Description
Во время обработки произошла внутренняя ошибка. Повторите запрос. Если проблема сохраняется, свяжитесь с поддержкой, указав ваш идентификатор задачи.
Ошибки
Когда поле code присутствует, оно указывает на конкретную проблему, которую можно решить. Ниже приведена полная справка по каждому коду ошибки.
image_too_complex
Эта ошибка возникает, когда входное изображение или prompt описывает объект, который слишком геометрически сложен для обработки моделью 3D-генерации.
Распространенные примеры включают:
- Плотные кучи мелких объектов (например, ящик, полный фруктов, стопка книг)
- Сложные повторяющиеся узоры (например, решетчатые структуры, строительные леса, проволочные сетки)
- Сложные строительные конструкции (например, многоэтажные здания с множеством окон и балконов)
- Несколько различных объектов на одном изображении вместо одного объекта
Примеры входных данных, которые, вероятно, слишком сложны:




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

Решение:
Правильное исправление зависит от того, почему вы установили enable_original_uv на true:
- Если вам нужно сохранить оригинальную UV-раскладку вашей модели (например, пользовательское размещение швов для точного наложения текстуры): ваша модель должна иметь действительные UV-координаты. Убедитесь, что UV существуют в редакторе UV вашего 3D-программного обеспечения перед загрузкой. Обратите внимание, что файлы STL не могут хранить UV-данные, поэтому используйте GLB, FBX или OBJ вместо них.
- Если вам не нужен специфический контроль UV (или вы не уверены): не указывайте
enable_original_uvили установите его наfalse. Система автоматически сгенерирует UV-раскладку для вашей модели. Автоматически сгенерированные UV оптимизированы для покрытия, но у вас не будет контроля над тем, где размещаются швы текстуры.
model_insufficient_uv
Эта ошибка возникает, когда у модели есть UV-координаты, но покрытие UV слишком мало для качественного текстурирования. Это часто происходит с моделями, экспортированными из 3D-инструментов, которые генерируют временные или сжатые UV без правильного развертывания.

Решение:
- Если вам нужно сохранить вашу оригинальную UV-раскладку: повторно разверните UV модели в вашем 3D-программном обеспечении. Убедитесь, что UV-острова правильно распределены по UV-пространству, а не сжаты в небольшую область.
- Если вам не нужен специфический контроль UV: опустите
enable_original_uvили установите его вfalse. Система автоматически сгенерирует новую UV-раскладку. Компромисс заключается в том, что вы потеряете оригинальное расположение швов, но автоматически сгенерированные UV будут иметь правильное покрытие для текстурирования.
model_missing_texture
Эта ошибка возникает, когда входная модель задачи многоцветной печати не содержит информации о цвете, которую конвертер мог бы разделить на цвета печати. Многоцветный 3MF строится на основе цветов модели, поэтому обычная белая сетка — например, предпросмотр Text to 3D или Image to 3D, для которого не создавалась текстура, либо результат восстановления / автоматического разделения — не даёт материала для работы.
То, что считается источником цвета, зависит от запрошенного style:
realisticсчитывает базовую цветовую текстуру по UV-координатам модели, поэтому требуется одна базовая цветовая текстура с UV-координатами на каждой части сетки.cartoonупрощает цвета по граням и принимает базовую цветовую текстуру на любой части или цвета по вершинам (COLOR_0).
Модель, у которой нет ни базовой цветовой текстуры, ни цветов по вершинам, отклоняется для обоих стилей; в противном случае для cartoon она "успешно" превратилась бы в одноцветную печать.
Большинство запросов отклоняются ещё до создания задачи (400 Bad Request с тем же объяснением), поэтому обычно этот код появляется только тогда, когда входные данные не удалось проверить заранее — например, загрузка .fbx проверяется только после того, как задача её нормализует.
Решение:
- Сначала создайте текстуру для модели. Запустите задачу Ретекстурирования для неё или создайте её с включённым текстурированием (задача refine для Text to 3D или задача Image to 3D с
should_texture: true), и передайте эту задачу какinput_task_id. - Модели с цветами по вершинам (сканы фотограмметрии, вручную раскрашенные сетки): запросите
style: "cartoon", который считываетCOLOR_0. - Частично текстурированные модели или модели с несколькими текстурами при
realistic: каждой части сетки нужны UV-координаты и одна и та же единая базовая цветовая текстура. Создайте текстуру для оставшихся частей или объедините текстуры в один атлас, либо переключитесь наstyle: "cartoon".
invalid_input
Это код ошибки по умолчанию, который используется, когда входные данные не проходят проверку, но более конкретный код не применим. Поле message содержит конкретную причину сбоя.
Общие причины включают:
- Пустые или поврежденные файлы моделей
- Неподдерживаемые вариации форматов файлов (например, ASCII FBX файлы, meshopt-сжатые GLB)
- В загруженной модели не найдено допустимых 3D объектов (например, файл содержит только арматуры, камеры или источники света)
- Контент, который не проходит фильтры безопасности
Решение: Проверьте поле message для получения подробной информации о том, что пошло не так. Убедитесь, что ваши входные файлы и параметры соответствуют требованиям эндпоинта.
moderation_blocked
Эта ошибка возникает, когда ваш prompt или эталонные изображения отклоняются фильтрами безопасности ИИ. Фильтр оценивает как текстовый prompt, так и любые эталонные изображения вместе.
Решение:
- Переформулируйте ваш текстовый prompt, чтобы убрать намеки или чувствительные описания.
- Измените эталонные изображения, если они содержат контент, который может вызвать срабатывание фильтров безопасности.
timeout
Эта ошибка означает, что время обработки вашей задачи превысило допустимый предел. Это может произойти из-за высокой нагрузки на систему или потому, что ввод слишком сложен для обработки в пределах временного лимита.
Решение:
- Повторите запрос. Таймауты часто являются временными, и повторная попытка может быть успешной.
- Упростите ваш ввод. Если повторные попытки продолжают не удаваться, ваш ввод может быть слишком сложным. Попробуйте уменьшить уровень детализации в вашем изображении или prompt. См.
image_too_complexдля получения рекомендаций о том, какие типы вводов сложнее обрабатывать.
format_conversion_failed
Эта ошибка возникает, когда сгенерированная 3D-модель не может быть преобразована в запрашиваемый вами выходной формат. Модель была успешно сгенерирована, но этап преобразования завершился неудачей.
Решение:
- Повторите запрос.
- Попробуйте другой выходной формат. Если определенный формат продолжает давать сбой, переключитесь на другой формат, который соответствует вашим требованиям.
Лучшие практики
- Реализуйте логику повторных попыток. Для ошибок
timeoutиservice_unavailableреализуйте логику повторных попыток с экспоненциальной задержкой. - Логируйте идентификаторы задач. Всегда записывайте идентификатор задачи для целей отладки. Указывайте его при обращении в службу поддержки.
- Проверяйте входные данные. Убедитесь, что ваши входные изображения и модели соответствуют требованиям формата перед отправкой.