{"record":{"id":"b0bcd4e5381e0474","repo":"deepseek-ai/deepseek-harness","slug":"unsupported-content-b0bcd4","errorCode":"UNSUPPORTED_CONTENT","errorMessage":"pi-ai model \"${model.id}\" does not support image input","messagePattern":"pi-ai model \"(.+?)\" does not support image input","errorType":"exception","errorClass":"LlmError","httpStatus":null,"severity":"error","filePath":"packages/llm/llm-pi-ai/src/adapter.ts","lineNumber":352,"sourceCode":"    const profile = this.profileOf(snapshot, options.provider)\n    const model = this.modelOf(snapshot, options.provider, options.model)\n    const reasoning = resolveReasoningLevel(\n      model,\n      options.reasoningEffort ?? profile.reasoning,\n    )\n    const apiKey = await this.config.resolveApiKey(options.provider, profile)\n\n    const consumer = new AbortController()\n    const upstream = options.signal === undefined\n      ? consumer.signal\n      : AbortSignal.any([options.signal, consumer.signal])\n    const streamIdleTimeoutMs = profile.streamIdleTimeoutMs\n    using watchdog = idleWatchdog(upstream, streamIdleTimeoutMs, 'LLM_STREAM_IDLE_TIMEOUT')\n\n    try {\n      const containsImage = options.messages.some(message => contentHasImage(message.content))\n      if (containsImage && !model.input.includes('image')) {\n        throw new LlmError(`pi-ai model \"${model.id}\" does not support image input`, 'UNSUPPORTED_CONTENT')\n      }\n      const attachments = containsImage ? this.config.resolveAttachments?.() : undefined\n      if (containsImage && attachments === undefined) {\n        throw new LlmError('pi-ai image input requires the durable attachment service', 'UNSUPPORTED_CONTENT')\n      }\n      const onReplayDegrade = (reason: string): void => {\n        this.config.onReplayDegrade?.({ provider: options.provider, model: options.model, reason })\n      }\n      const context = attachments === undefined\n        ? toPiContext(options, undefined, onReplayDegrade)\n        : await toPiContext({ ...options, signal: watchdog.signal }, attachments, onReplayDegrade, profile.maxRequestImageBytes, {\n          maxPixels: profile.requestImagePixelBudget,\n          maxBytes: profile.requestImageMaxBytes,\n        })\n      const events = snapshot.models.streamSimple(model, context, {\n        ...profileOptions(profile, reasoning, apiKey),\n        ...options.temperature === undefined ? {} : { temperature: options.temperature },\n        ...options.maxTokens === undefined ? {} : { maxTokens: options.maxTokens },","sourceCodeStart":334,"sourceCodeEnd":370,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/llm/llm-pi-ai/src/adapter.ts#L334-L370","documentation":"Error \"pi-ai model \"${model.id}\" does not support image input\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/llm/llm-pi-ai/src/adapter.ts:352 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Remove image content or switch to a model that supports image input."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"b150a551b8d465e31e418e1b2eaf5e79bbb7d28e","analyzedAt":"2026-08-24T18:12:29.105Z","schemaVersion":2},"datasetVersion":"2026-08-24T22:17:12.610Z"}