{
  "filename": "01-main-white.png",
  "status": "failed",
  "stage": "kie_failed",
  "attempt": 3,
  "maxAttempts": 3,
  "timeoutMs": 300000,
  "retryPolicy": "Only this failed image will be retried while generation attempts remain. QA repair attempts are counted separately.",
  "role": "",
  "promptLength": 5547,
  "promptPreview": "Image role: MAIN MODEL HERO\nUse the uploaded reference photos only as the exact product reference.\nPreserve the same wig colour, length impression, hairstyle texture, volume, hairline or headband/accessory placement, cap details and natural use effect.\nDo not invent a different hairstyle, length, colour, fringe/bangs, headband, cap, or accessory.\nThis product is not a headband wig; do not add a headband, black rear band, cap band, scarf, or headband-wear claim.\nNo watermark, no Chinese text, no supplier logo, no marketplace badge.\nSquare 1:1 Takealot-ready ecommerce image.\nReference-product facts:\n- Product: 前蕾丝假发 / Lace Front Wig\n- Length: 28inch\n- Colour: extracted source-photo palette: #1A1113 (deep burgundy brown) / #DBD5CC (caramel brown) / #341A14 (deep burgundy brown) / #9F6847 (warm brown) / #724E3A (warm brown) / #4F2F23 (deep burgundy brown); user colour reference only: 钢琴色\n- Material: 高温丝 / High-Temp Fibre\n- Key details: 28 Inch visual length from source photos; Deep Burgundy Brown + Caramel Brown + Warm Brown colour preserved from uploaded photos; 大波浪 / Deep Wave preserved from source photos; source-photo cap/style construction; High-Temp Fibre hair material\n\n- Uploaded",
  "startedAt": "2026-06-23T11:01:59.974Z",
  "updatedAt": "2026-06-23T11:02:00.183Z",
  "taskId": "",
  "error": "Error: KIE createTask returned no taskId: {\"code\":402,\"msg\":\"Credits insufficient : Your current balance isn’t enough to run this request. Please top up to continue.\",\"data\":null}\n    at createKieImageTask (file:///opt/shangpin-workbench/scripts/process-pending-openai.mjs:1668:22)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async generateImage (file:///opt/shangpin-workbench/scripts/process-pending-openai.mjs:1762:16)\n    at async runOneImage (file:///opt/shangpin-workbench/scripts/process-pending-openai.mjs:2436:24)\n    at async Promise.all (index 0)\n    at async processJob (file:///opt/shangpin-workbench/scripts/process-pending-openai.mjs:2453:26)\n    at async main (file:///opt/shangpin-workbench/scripts/process-pending-openai.mjs:2587:7)",
  "failedAt": "2026-06-23T11:02:00.182Z"
}