К содержанию
Lumean API

POST/orders/{order}/items/retry-failed

Ставит на повтор все упавшие чанки заказа одним вызовом — вместо обхода POST .../items/{item}/retry по каждому. Тело запроса пустое.

orders.writeасинхронный

Берутся только чанки в статусе failed (техническая ошибка), у которых нет более поздней успешной версии. policy_flagged сюда НЕ входит: повтор с тем же текстом будет отклонён снова, такие чанки перезапускают поштучно с исправленным text.

Ответ 202 — план принят, работа идёт в фоне. Тело содержит queued (поставленные на повтор) и skipped с машинной причиной на каждый пропуск: superseded (уже есть успешная версия), active_retry_exists, policy_flagged, max_attempts_reached, insufficient_funds. Опрашивайте GET .../items либо слушайте WebSocket — синхронного результата у этого вызова нет по построению.

Биллинг: переиспользует заблокированный остаток каждого чанка — новых средств и токен-квоты ключа не расходует.

Отказы на уровне заказа приходят телом {success: false, message, reason}, где reason — машинный код: 409 stitch_in_progress (по заказу идёт склейка); 422 invalid_order_status (заказ не в статусе partially_completed), generative_not_supported (тип задачи не поддерживает повтор), nothing_to_retry (перезапускать нечего) либо retry_config_outdated (настройки заказа не проходят текущую схему сервиса — повтор не ставится, нужен новый заказ); 503 service_maintenance (приём сервиса, исполняющего заказ, приостановлен). Эти отказы синхронны: план не принимается, bulk_retry.completed не приходит. Отдельными схемами в спеке они не описаны: коды рождаются в бизнес-исключении, а не в валидации запроса.

Требуемое право ключа: orders.write. Недоступно для sfx/music.

На этой странице(4)

Параметры

Поля ввода живут прямо в строке запроса: подставьте значение — и получите готовый URL. Ниже — тип, обязательность и допустимые значения каждого параметра.

POSThttps://api.lumean.app/api/public/orders//items/retry-failed
  • stringв путиобязательный

    UUID заказа — 36 символов вида 9f8b2c1a-4d3e-4f5a-8b9c-0d1e2f3a4b5c, не число.

    Берётся из поля id: его возвращает POST /orders при создании и GET /orders в списке. Чужой заказ по вашему ключу не откроется — придёт 404.

    Значение подставляется прямо в строку запроса выше.

Возможные ответы

202

План принят, перезапуск сбойных чанков поставлен в очередь. Следите за статусом заказа.

Пример тела
{
  "success": true,
  "message": "Failed chunks queued for retry",
  "data": {
    "queued_count": 2,
    "queued": [
      {
        "item_id": "f8a9b0c1-2d3e-4f4a-8b5c-6d7e8f9a0b1c",
        "chunk_index": 2
      },
      {
        "item_id": "c1d2e3f4-5a6b-4c7d-8e9f-0a1b2c3d4e5f",
        "chunk_index": 5
      }
    ],
    "skipped_count": 1,
    "skipped": [
      {
        "item_id": "d2e3f4a5-6b7c-4d8e-8f9a-1b2c3d4e5f6a",
        "chunk_index": 7,
        "reason": "max_attempts_reached",
        "reason_label": "The chunk has run out of retry attempts."
      }
    ]
  }
}
Поля ответа
successобязательное

Признак успеха. Решение принимайте по HTTP-коду: у любого ответа 2xx здесь true, а ошибка приходит телом другой формы, где этого поля может не быть вовсе.

boolean
messageобязательное

Пояснение для человека, на языке аккаунта. Показать пользователю можно; разбирать программно — нет: формулировки меняются без предупреждения и кодом ошибки не являются.

string
dataобязательное

Полезная нагрузка ответа.

object
queued_countобязательное

Сколько фрагментов принято к перезапуску.

integer
queuedобязательное

Что именно поставлено в очередь. Отслеживать выполнение — по заказу целиком, отдельных событий на фрагмент нет.

array<any>
skipped_countобязательное

Сколько фрагментов перезапустить не удалось. Ненулевое значение — нормальный исход, а не ошибка: часть причин неустранима.

integer
skippedобязательное

Пропущенные фрагменты с причиной по каждому.

array<any>
401

Не авторизован (отсутствует/невалидный X-API-KEY)

Разобрать этот ответ
Пример тела
{
  "success": false,
  "message": "API key is missing. Provide it in the X-API-KEY header.",
  "data": null
}
Поля ответа
successобязательное

Всегда false в ответах об ошибке.

boolean
messageобязательное

Текст ошибки на языке ключа (задаётся заголовком X-Locale).

string
dataобязательное

Всегда null, когда запрос отклонён до обработки.

может быть null
null
403

Нет доступа к заказу или у ключа нет права orders.write

Разобрать этот ответ
Пример тела
{
  "success": false,
  "message": "This API key does not have permission to perform this action."
}
Поля ответа
messageобязательное

Error overview.

string
404

Заказ не найден

Разобрать этот ответ
Пример тела
{
  "success": false,
  "message": "Resource not found."
}
Поля ответа
messageобязательное

Error overview.

string

События, которые это порождает

Ход выполнения приезжает по WebSocket: опрашивать заказ в цикле не обязательно. Подписка требует того же права, что и чтение заказов.

Скормить страницу ИИ

Открыть .mdllm.md

спека 0.0.1