{
  "filename": "03-model-angle.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": 7524,
  "promptPreview": "Image role: RIGHT SIDE MODEL USE\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: 16inch\n- Colour: extracted source-photo palette: #0E0E0F (black) / #383436 (charcoal grey) / #1D1D1F (black) / #2E2D31 (charcoal grey) / #D7AB8D (caramel brown) / #282528 (black); user colour reference only: 黑色\n- Material: 高温丝 / High-Temp Fibre\n- Key details: 16 Inch visual length from source photos; Black + Charcoal Grey + Caramel Brown colour preserved from uploaded photos; 波波头 / Bob Wig preserved from source photos; source-photo cap/style construction; High-Temp Fibre hair material\n\n- Uploaded detail reference photos: 1.png\n- Colour lock",
  "startedAt": "2026-06-28T01:58:07.042Z",
  "updatedAt": "2026-06-28T01:58:07.636Z",
  "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:1815:19)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async generateImage (file:///opt/shangpin-workbench/scripts/process-pending-openai.mjs:1924:16)\n    at async runOneImage (file:///opt/shangpin-workbench/scripts/process-pending-openai.mjs:2630:24)\n    at async Promise.all (index 2)\n    at async processJob (file:///opt/shangpin-workbench/scripts/process-pending-openai.mjs:2654:26)\n    at async main (file:///opt/shangpin-workbench/scripts/process-pending-openai.mjs:2816:7)",
  "failedAt": "2026-06-28T01:58:07.635Z"
}