deepseek-ai/deepseek-harness · error · LlmError
UNSUPPORTED_REASONING_EFFORT
UNSUPPORTED_REASONING_EFFORT
Error message
pi-ai provider "${model.provider}" model "${model.id}" does not support reasoning effort "${effort}" What it means
Error "pi-ai provider "${model.provider}" model "${model.id}" does not support reasoning effort "${effort}"" thrown in deepseek-ai/deepseek-harness.
Source
Thrown at packages/llm/llm-pi-ai/src/adapter.ts:162
function describableReasoningLevel(
model: Model<Api>,
effort: ReasoningEffortIdType | ModelThinkingLevel | undefined,
): ModelThinkingLevel | undefined {
if (effort === undefined) return undefined
return getSupportedThinkingLevels(model).some(level => level === effort)
? effort as ModelThinkingLevel
: undefined
}
/** Validate an explicit Harness/profile effort without invoking pi-ai's clamp. */
function resolveReasoningLevel(
model: Model<Api>,
effort: ReasoningEffortIdType | ModelThinkingLevel | undefined,
): ModelThinkingLevel | undefined {
if (effort === undefined) return undefined
const supported = getSupportedThinkingLevels(model)
if (supported.some(level => level === effort)) return effort as ModelThinkingLevel
throw new LlmError(
`pi-ai provider "${model.provider}" model "${model.id}" does not support reasoning effort "${effort}"`,
'UNSUPPORTED_REASONING_EFFORT',
)
}
/**
* Selectable reasoning efforts for one model, or nothing at all.
*
* A model that carries no reasoning metadata — every hand-declared one, and
* every catalog model pi-ai marks as non-reasoning — is reported by pi-ai as
* supporting the single level `off`. Passing that through would offer a control
* that cannot do what it says: `off` is translated to *omitting* the reasoning
* option, which for such a model is byte-for-byte the same request as naming no
* effort — so a provider whose own default is to think would keep thinking with
* `off` selected. Omitting `reasoning` entirely is the seam's way of saying the
* capability is unavailable, which leaves the surface offering only the
* provider's default.
* @param model - the resolved model descriptor.View on GitHub (pinned to b150a551b8)
Solutions
- Pick a reasoning effort the provider/model supports, or omit it.
When it happens
Trigger: Thrown at packages/llm/llm-pi-ai/src/adapter.ts:162 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/3962878770ed8743.
Report an issue: GitHub.