deepseek-ai/deepseek-harness · error · LlmError
UNSUPPORTED_CONTENT
UNSUPPORTED_CONTENT
Error message
pi-ai model "${model.id}" does not support image input What it means
Error "pi-ai model "${model.id}" does not support image input" thrown in deepseek-ai/deepseek-harness.
Source
Thrown at packages/llm/llm-pi-ai/src/adapter.ts:352
const profile = this.profileOf(snapshot, options.provider)
const model = this.modelOf(snapshot, options.provider, options.model)
const reasoning = resolveReasoningLevel(
model,
options.reasoningEffort ?? profile.reasoning,
)
const apiKey = await this.config.resolveApiKey(options.provider, profile)
const consumer = new AbortController()
const upstream = options.signal === undefined
? consumer.signal
: AbortSignal.any([options.signal, consumer.signal])
const streamIdleTimeoutMs = profile.streamIdleTimeoutMs
using watchdog = idleWatchdog(upstream, streamIdleTimeoutMs, 'LLM_STREAM_IDLE_TIMEOUT')
try {
const containsImage = options.messages.some(message => contentHasImage(message.content))
if (containsImage && !model.input.includes('image')) {
throw new LlmError(`pi-ai model "${model.id}" does not support image input`, 'UNSUPPORTED_CONTENT')
}
const attachments = containsImage ? this.config.resolveAttachments?.() : undefined
if (containsImage && attachments === undefined) {
throw new LlmError('pi-ai image input requires the durable attachment service', 'UNSUPPORTED_CONTENT')
}
const onReplayDegrade = (reason: string): void => {
this.config.onReplayDegrade?.({ provider: options.provider, model: options.model, reason })
}
const context = attachments === undefined
? toPiContext(options, undefined, onReplayDegrade)
: await toPiContext({ ...options, signal: watchdog.signal }, attachments, onReplayDegrade, profile.maxRequestImageBytes, {
maxPixels: profile.requestImagePixelBudget,
maxBytes: profile.requestImageMaxBytes,
})
const events = snapshot.models.streamSimple(model, context, {
...profileOptions(profile, reasoning, apiKey),
...options.temperature === undefined ? {} : { temperature: options.temperature },
...options.maxTokens === undefined ? {} : { maxTokens: options.maxTokens },View on GitHub (pinned to b150a551b8)
Solutions
- Remove image content or switch to a model that supports image input.
When it happens
Trigger: Thrown at packages/llm/llm-pi-ai/src/adapter.ts:352 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of deepseek-ai/deepseek-harness@b150a551b8 (2026-08-24).
Data as JSON: /api/errors/b0bcd4e5381e0474.
Report an issue: GitHub.