Skip to content

[API]: 图片生成请求 504 后仍计入配额,且无法查询或找回生成结果 #92

Description

@klarkxy

Model

agnes-image-2.1-flash、agnes-image-2.0-flash

Endpoint

POST /v1/images/generations

SDK or client

自定义脚本,直接调用 OpenAI 兼容 REST API

Minimal sanitized request

{
  "model": "agnes-image-2.1-flash",
  "prompt": "根据参考图生成一张二头身角色图片……",
  "size": "2K",
  "ratio": "1:1",
  "image": [
    "https://example.com/reference.png"
  ],
  "response_format": "url"
}

Error response

使用 agnes-image-2.1-flash 时:

HTTP 503 Service Unavailable
image queue is full, please retry later

之后切换到 agnes-image-2.0-flash 再次请求,经过较长时间等待后返回:

HTTP 504 Gateway Timeout

{
  "error": {
    "type": "origin_gateway_timeout",
    "retryable": true,
    "retry_after": 120
  }
}

响应中没有图片 URL、任务 ID或可用于查询结果的请求 ID。

Expected behavior

希望明确区分以下两种情况:

  1. 请求未被生成队列接受:

    • 返回明确的失败状态;
    • 不计入图片生成配额;
    • 可以通过 Retry-After 响应头告知建议重试时间。
  2. 请求已经被后台接受:

    • 尽快返回持久化的任务 ID;
    • 客户端可以查询 queued、in_progress、completed、failed 等状态;
    • 即使 HTTP 连接或网关超时,生成完成后仍能通过任务 ID找回图片;
    • 支持 Idempotency-Key,避免超时重试造成重复生成和重复扣除配额。

如果 Agnes 希望继续兼容 OpenAI API,可以考虑支持 Responses API 的 background 模式;也可以提供独立的异步图片任务接口,例如 POST /v1/images/jobs 和 GET /v1/images/jobs/{task_id}。

OpenAI 后台模式参考:
https://developers.openai.com/api/docs/guides/background

Actual behavior

测试前可以确认已有 6 张图片成功生成,并取得了 6 个生成结果。

发生上述 503/504 后,Agnes 控制台中的图片生成用量显示为 7 / 4000,但客户端没有收到第 7 张图片的 URL,也没有取得任何任务 ID。

从配额变化推测,其中一个超时请求可能已经被后台接受并完成生成,但由于同步请求经过网关时发生超时,最终结果无法查询或恢复。

目前会出现以下问题:

  • 客户端收到失败或超时;
  • 后台可能继续生成并计入配额;
  • 用户无法取得已经生成的图片;
  • 直接重试又可能重复消耗配额。

希望协助确认:

  1. 返回 504 后,生成任务是否还会继续执行?
  2. 控制台新增的第 7 次用量是否对应这次超时请求?
  3. 是否存在未公开的任务状态或生成历史查询接口?
  4. 能否根据服务端记录找回对应图片?
  5. 如果结果无法恢复,能否返还对应的图片生成配额?

Is this reproducible?

Not sure

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status
    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions