lowpoly 将于 2026年10月30日 下线。 请在这些日期前切换模型,以免请求报错。 查看所有弃用信息

Errors

了解请求或任务失败的原因,以及接下来该怎么做。请求可能会立即因 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 key 缺失、无效,或无法访问该 endpoint。请参阅 Authentication。

    • Name
      402 - Payment Required
      Description

      该 API key 所属账户的积分不足以完成此请求。在免费套餐下,大多数创建任务的请求也会返回 402。

    • Name
      403 - Forbidden
      Description

      您无权发起此请求,可能是以下原因之一:

      • 该请求来自 API key IP 白名单之外的地址。
      • 您所在组织的 IP 过滤策略在您读取任务文件时将其拦截了。
      • 该 endpoint 在您的套餐中不可用。
    • Name
      404 - Not Found
      Description

      该资源不存在。例如,使用不存在的 ID 获取任务会返回 404。

    • Name
      409 - Conflict
      Description

      该资源存在,但其当前状态不允许执行此操作。例如,删除一个处于 IN_PROGRESS 状态的任务会返回 409,因为 Meshy 无法为一个已有 worker 开始处理的任务退款。该任务会继续运行。请等待其进入最终状态(SUCCEEDED、FAILED 或 CANCELED)后再删除该任务。

    • Name
      429 - Too Many Requests
      Description

      您发送的请求过多,或您排队中/正在运行的任务过多。当响应中带有 Retry-After 标头时,请等待相应的秒数后再重试。请参阅 Rate limits。

  • 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 一方出现了问题。请重新创建任务。如果仍然持续失败,请携带任务 ID 联系支持团队。


错误代码

当存在 code 时,它指明了以下问题之一。

image_too_complex

输入图片或 prompt 描述的对象在几何结构上过于复杂,无法用于 3D 生成。

例如:

  • 密集堆放的小物体,例如装满水果的箱子或一摞书
  • 复杂的重复图案,例如格栅结构、脚手架或金属网
  • 复杂的建筑物,例如拥有许多窗户和阳台的多层建筑
  • 一张图片中包含多个不同的物体,而不是单一的主体

以下输入很可能过于复杂:

一箱混合浆果一个结构复杂的大教堂天花板一座搭有脚手架、正在施工的建筑一个蜂窝状格栅球体

要解决此问题,可以尝试以下一种或多种方法:

  • 每张图片只使用一个物体。Meshy 在处理单一、清晰的主体时效果最好,因此不要在同一张图片或 prompt 中放入多个独立的物体。
  • 简化你的主体。例如,使用一个简单的花瓶,而不是插满几十朵花的花瓶。
  • 避免使用场景。整栋建筑、街区、布置好的房间和风景通常都过于复杂。请专注于单一物体。
  • 避免密集的重复结构。脚手架、金属网、格栅以及成堆的小物件都是常见的触发因素。

model_missing_uv

你发送模型进行 texture 处理时将 enable_original_uv 设置为 true,但该模型没有 UV 坐标。UV 坐标定义了 2D texture 如何包裹到 3D 表面上。

No UVs vs Good UVs

要解决此问题,请执行以下操作之一:

  • 若要保留模型自身的 UV 布局(例如用于自定义接缝位置),请在你的 3D 软件中为模型添加 UV,在其 UV editor 中检查无误后,再重新上传模型。STL 文件无法存储 UV,因此请使用 GLB、FBX 或 OBJ。
  • 如果你不需要自己的布局,或者不确定,请省略 enable_original_uv 或将其设置为 false。此时 Meshy 会为模型创建 UV 布局。新的 UV 能很好地覆盖模型,但你无法控制 texture 接缝的位置。

model_insufficient_uv

该模型具有 UV 坐标,但它们覆盖的 UV 空间过小,无法很好地生成 texture。这种情况常见于导出器写入了占位符或塌陷的 UV、而没有进行正确展开的模型。

Insufficient UVs vs Good UVs

要解决此问题,请执行以下操作之一:

  • 若要保留你自己的 UV 布局,请在你的 3D 软件中重新展开模型的 UV。将 UV 岛分布到整个 UV 空间,而不是集中在其中一小块角落。
  • 如果你不需要自己的布局,请省略 enable_original_uv 或将其设置为 false。这样 Meshy 会创建一个新的 UV 布局。你会失去自己设置的接缝位置,但新的 UV 会覆盖足够的空间以便生成 texture。

model_missing_texture

多色打印 任务的输入模型没有 Meshy 可以拆分为打印颜色的颜色。Meshy 会根据模型的颜色构建多色 3MF,因此一个纯白色的 mesh 没有可用的信息。例如,从未经过贴图的 Text to 3D 或 Image to 3D 预览没有颜色。Repair Printability 的输出,或未保留 texture 的 Auto Split 任务,同样也没有颜色。

什么算作颜色取决于你请求的 style:

  • realistic 会通过模型的 UV 对基础颜色 texture 进行采样。它需要一个单一的基础颜色 texture,并且每个 mesh 部件都要有 UV。
  • cartoon 会按面将颜色进行扁平化处理。它接受任意部件上的基础颜色 texture,或逐顶点颜色(COLOR_0)。

对于这两种 style,如果模型既没有基础颜色 texture 也没有顶点颜色,Meshy 会拒绝该模型,而不会让 cartoon 将其转换为单色打印。

对于大多数此类请求,Meshy 会在创建任务之前就予以拒绝,返回 400 并附带相同的说明。通常只有在 Meshy 无法提前检查输入内容时,你才会收到这个代码。例如,Meshy 只会在任务完成转换后才检查 .fbx 上传文件。

要解决这个问题,请使用适合你模型的方案:

  • 先为模型制作 texture。对它运行 Retexture,或者通过 Text to 3D 的 refine 任务生成,或使用 should_texture: true 的 Image to 3D 任务生成。然后将该任务作为 input_task_id 发送。
  • 对于顶点着色的模型,例如摄影测量扫描或手绘 mesh,使用 style: "cartoon",它会读取 COLOR_0。
  • 对于使用 realistic 的部分贴图或多 texture 模型,为每个 mesh 部件提供 UV,并使用同一个基础颜色 texture。为此,可以为剩余部件制作 texture,或将多个 texture 合并为一张图集。你也可以改用 style: "cartoon"。

textured_split_refused

Auto Split 任务在设置 keep_texture: true 时,无法在拆分出的部件上保留输入模型的 texture。例如,模型没有 UV,或者其 texture 没有足够的空间容纳切割产生的新面。Meshy 会退还积分。

要解决此问题,请在不带 keep_texture 参数或将其设为 keep_texture: false 的情况下重新发送请求。这样返回的各个部件将各自呈现单一的纯色。

invalid_input

输入未通过检查,且没有更具体的错误代码适用。message 给出了具体原因。

例如:

  • 空的或已损坏的模型文件
  • 文件格式的不受支持的变体,例如 ASCII 格式的 FBX 文件,或经过 meshopt 压缩的 GLB 文件
  • 上传的模型中没有有效的 3D 对象,例如文件中只包含骨架、摄像机或灯光
  • 未通过安全过滤的内容

要解决此问题,请查看 message 以了解具体问题。请检查你的输入文件和参数是否满足该 endpoint 的要求。

moderation_blocked

安全过滤器拒绝了您的 prompt 或参考图片。过滤器会同时检查文本和图片。

要解决此问题,请执行以下一项或两项操作:

  • 修改 prompt,删除具有暗示性或敏感性的描述。
  • 更换可能被过滤器拦截的参考图片。

moderation_unavailable

类型:server_error。内容 moderation 暂时不可用,因此 Meshy 没有跳过检查,而是将任务判定为失败。您的内容本身没有问题。

要解决此问题,请重新创建任务。

timeout

任务运行超过了服务器端的时间限制(处理耗时或排队等待耗时),因此 Meshy 判定该任务失败并退还了积分。高负载,或输入过于复杂而无法在规定时间内完成,都可能导致这种情况。

这与你自己代码中的 timeout 不同。如果你的客户端停止了等待,任务其实仍在运行。请参阅需要等待多久。

要解决此问题,请按以下步骤操作:

  1. 重新创建任务。timeout 通常是暂时性的,新建的任务可能会成功。
  2. 如果仍然持续失败,请简化你的输入,例如减少图片或 prompt 中的细节。对于处理难度较大的输入,请参阅 image_too_complex。

queue_timeout

类型:timeout。任务在队列中等待时间过长而未能开始,因此 Meshy 判定该任务失败,并退还了为此扣除的所有积分。此错误并非由你的输入导致。

要解决此问题,请重新创建任务。

format_conversion_failed

Meshy 已生成模型,但将其转换为你所请求的格式时失败。

要解决此问题,请按照以下步骤操作:

  1. 重新创建任务。
  2. 如果某种格式持续失败,请改为请求一种适合你需求的其他格式。

最佳实践

  • 重试失败的任务。对于出现 timeout、service_unavailable 或 server_error 的失败任务,使用指数退避策略创建新任务。
  • 不要在自己的请求超时时创建新任务。第一个任务可能仍在运行,因此在创建另一个任务之前,请先检查它是否存在。参见需要等待多久。
  • 记录任务 ID。联系支持团队时请附上该 ID。
  • 在发送输入之前先检查它们。确保图像和模型符合 endpoint 的格式要求。
  • 从你的服务器调用 API。在浏览器中运行的代码会将你的 API key 暴露给任何打开该页面的人。