{
  "filename": "06-lifestyle-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": 7616,
  "promptPreview": "Image role: FEATURE AD RENDER 2\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: 全头套假发 / Full Wig\n- Length: 14inch\n- Colour: extracted source-photo palette: #B78665 (caramel brown) / #968470 (caramel brown) / #DDDCD2 (champagne gold) / #5F493B (warm brown) / #B59D85 (caramel brown) / #EDECDC (champagne gold); user colour reference only: 淡金色\n- Material: 高温丝 / High-Temp Fibre\n- Key details: 14 Inch visual length from source photos; Caramel Brown + Champagne Gold + Warm Brown colour preserved from uploaded photos; 水波纹 / Water Wave preserved from source photos; source-photo cap/style construction; High-Temp Fibre hair material\n\n- Uploaded detail reference p",
  "startedAt": "2026-06-23T10:10:29.865Z",
  "updatedAt": "2026-06-23T10:10:30.070Z",
  "taskId": "",
  "error": "Error: KIE createTask returned no taskId: {\"code\":500,\"msg\":\"File type not supported\",\"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 5)\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-23T10:10:30.069Z"
}