Ошибки
В этом руководстве мы расскажем о том, что происходит, когда что-то идёт не так во время работы с 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
Вам не разрешено выполнять этот запрос. Например, запрос пришёл с адреса, не входящего в список разрешённых IP-адресов для API-ключа, проверка содержимого в тарифе Enterprise заблокировала файлы задачи при их чтении, либо эндпоинт недоступен на вашем тарифном плане.
- 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 слишком быстро. Подождите количество секунд, указанное в заголовке
Retry-After, прежде чем повторить попытку. Подробности см. в руководстве 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, убрав провокационные или деликатные описания.
- Измените референсные изображения, если они содержат контент, который может срабатывать на фильтры безопасности.
moderation_unavailable
Эта ошибка возникает, когда модерация контента была временно недоступна, из-за чего задача завершилась неудачей вместо выполнения без проверки. С вашим контентом всё в порядке. Её type — server_error.
Решение: Создайте задачу заново.
timeout
Эта ошибка означает, что задача превысила серверное ограничение по времени — на обработку или на ожидание в очереди, — поэтому задача завершилась неудачей, а её кредиты были возвращены. Это может происходить из-за высокой нагрузки на систему или из-за того, что входные данные слишком сложны для обработки в отведённое время.
Это отличается от timeout в вашем собственном коде. Если ваш клиент перестал ждать, задача всё ещё может выполняться; см. Жизненный цикл задачи.
Решение:
- Создайте задачу заново. Timeout часто носит временный характер, и новая задача может завершиться успешно.
- Упростите входные данные. Если повторные попытки продолжают завершаться неудачей, возможно, ваши входные данные слишком сложны. Попробуйте снизить уровень детализации изображения или prompt. См.
image_too_complexдля рекомендаций о том, какие типы входных данных сложнее обрабатывать.
queue_timeout
Эта ошибка означает, что задача слишком долго ждала в очереди и не была запущена, поэтому она завершилась неудачей, а все списанные за неё кредиты были возвращены. Ваши входные данные не являются причиной этой ошибки. Её type — timeout.
Решение: Создайте задачу заново.
format_conversion_failed
Эта ошибка возникает, когда сгенерированная 3D-модель не может быть преобразована в запрошенный выходной формат. Модель была успешно сгенерирована, но этап конвертации завершился неудачей.
Решение:
- Повторите запрос.
- Попробуйте другой выходной формат. Если определённый формат постоянно вызывает ошибку, переключитесь на другой формат, подходящий для ваших задач.
Лучшие практики
- Реализуйте логику повторных попыток. Если задача завершается с ошибкой
timeout,service_unavailableилиserver_error, создайте её заново с экспоненциальной задержкой. Если же истекло время ожидания вашего собственного запроса, не создавайте новую задачу: сначала проверьте существующую (см. Жизненный цикл задачи). - Ведите журнал идентификаторов задач. Всегда записывайте ID задачи для целей отладки. Указывайте его при обращении в службу поддержки.
- Проверяйте входные данные. Убедитесь, что ваши входные изображения и модели соответствуют требованиям к формату перед отправкой.
- Вызывайте API со своего сервера. Код, выполняемый в браузере, раскроет ваш API-ключ любому, кто откроет страницу.