{"record":{"id":"d24851fe4b333e0c","repo":"linshenkx/prompt-optimizer","slug":"generation-failed-d24851","errorCode":"GENERATION_FAILED","errorMessage":"${errorMessage}","messagePattern":"\\$\\{errorMessage\\}","errorType":"error_code","errorClass":"ImageError","httpStatus":null,"severity":"error","filePath":"packages/core/src/services/image/adapters/modelscope.ts","lineNumber":167,"sourceCode":"      headers: {\n        'Authorization': `Bearer ${config.connectionConfig?.apiKey}`,\n        'Content-Type': 'application/json',\n        'X-ModelScope-Async-Mode': 'true' // 异步模式\n      },\n      body: JSON.stringify(payload)\n    })\n\n    if (!response.ok) {\n      let errorMessage = `ModelScope API error: ${response.status} ${response.statusText}`\n      try {\n        const errorData = await response.json()\n        if (errorData.message || errorData.error?.message) {\n          errorMessage = errorData.message || errorData.error.message\n        }\n      } catch {\n        // 忽略 JSON 解析错误\n      }\n      throw new ImageError(IMAGE_ERROR_CODES.GENERATION_FAILED, errorMessage)\n    }\n\n    const submitData = await response.json()\n    const taskId = submitData.task_id\n\n    if (!taskId) {\n      throw new ImageError(IMAGE_ERROR_CODES.GENERATION_FAILED, 'No task_id received from ModelScope API')\n    }\n\n    // 轮询任务状态\n    return await this.pollTaskResult(taskId, config, 120, 3000)\n  }\n\n  /**\n   * 轮询任务结果\n   */\n  private async pollTaskResult(\n    taskId: string,","sourceCodeStart":149,"sourceCodeEnd":185,"githubUrl":"https://github.com/linshenkx/prompt-optimizer/blob/3e677b1d9f7e0493c142c175560531e7ae786dce/packages/core/src/services/image/adapters/modelscope.ts#L149-L185","documentation":"When submitting an image task to ModelScope, a non-ok HTTP response causes generateImage to throw GENERATION_FAILED with the message extracted from the error body (errorData.message or errorData.error.message), defaulting to a status-based message.","triggerScenarios":"POSTing the task-submit request to ModelScope and receiving 4xx/5xx — invalid API token (ModelScope token auth), invalid model ID, invalid parameters, or server errors.","commonSituations":"Missing/expired ModelScope access token, using a model ID that doesn't exist on ModelScope, or parameter values out of the model's allowed range.","solutions":["Read the embedded errorMessage from the API response body","Verify the ModelScope API token in config","Confirm the modelId exists on ModelScope and supports image generation","Adjust generation parameters to the model's supported ranges"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"if (!config.apiKey) throw new Error('ModelScope token required')\nif (!/^[\\w.-]+\\/[\\w.-]+$/.test(config.modelId)) throw new Error('ModelScope modelId should look like org/model')","typeGuard":null,"tryCatchPattern":"try { ... } catch (e) {\n  if (e instanceof ImageError && e.code === IMAGE_ERROR_CODES.GENERATION_FAILED)\n    handleModelScopeError(e.message) // auth vs params vs server\n}","preventionTips":["Validate ModelScope token at startup","Use exact model IDs from ModelScope model hub","Keep parameters within the model's documented ranges"],"tags":["modelscope","http-error","api-key","image-generation"],"backgroundTag":"image-generation-api-failed","analyzedSha":"3e677b1d9f7e0493c142c175560531e7ae786dce","analyzedAt":"2026-08-27T21:29:16.709Z","schemaVersion":2},"datasetVersion":"2026-08-28T00:17:15.603Z"}