{"record":{"id":"36aa6fd28e418ca7","repo":"n8n-io/n8n","slug":"manual-thinking-mode-is-not-supported-on-modeln","errorCode":null,"errorMessage":"Manual thinking mode is not supported on \"${modelName}\". Use Thinking Mode = Adaptive (with Effort) instead.","messagePattern":"Manual thinking mode is not supported on \"(.+?)\"\\. Use Thinking Mode = Adaptive \\(with Effort\\) instead\\.","errorType":"exception","errorClass":"NodeOperationError","httpStatus":null,"severity":"error","filePath":"packages/@n8n/nodes-langchain/nodes/llms/LMChatAnthropic/LmChatAnthropic.node.ts","lineNumber":527,"sourceCode":"\t\t\ttopK?: number;\n\t\t\ttopP?: number;\n\t\t\tthinking?: boolean;\n\t\t\tthinkingBudget?: number;\n\t\t\tthinkingMode?: 'disabled' | 'adaptive' | 'manual';\n\t\t\teffort?: 'low' | 'medium' | 'high' | 'xhigh' | 'max';\n\t\t\tstreaming?: boolean;\n\t\t};\n\n\t\tconst isOpus47Model = modelName.startsWith('claude-opus-4-7');\n\t\tconst thinkingMode: 'disabled' | 'adaptive' | 'manual' =\n\t\t\tversion >= 1.5\n\t\t\t\t? (options.thinkingMode ?? 'disabled')\n\t\t\t\t: options.thinking\n\t\t\t\t\t? 'manual'\n\t\t\t\t\t: 'disabled';\n\n\t\tif (thinkingMode === 'manual' && isOpus47Model) {\n\t\t\tthrow new NodeOperationError(\n\t\t\t\tthis.getNode(),\n\t\t\t\t`Manual thinking mode is not supported on \"${modelName}\". Use Thinking Mode = Adaptive (with Effort) instead.`,\n\t\t\t\t{ itemIndex },\n\t\t\t);\n\t\t}\n\n\t\tlet invocationKwargs: Record<string, unknown> = {};\n\t\tif (thinkingMode === 'adaptive') {\n\t\t\tinvocationKwargs = {\n\t\t\t\tthinking: { type: 'adaptive' },\n\t\t\t\toutput_config: { effort: options.effort ?? 'medium' },\n\t\t\t\tmax_tokens: options.maxTokensToSample ?? DEFAULT_MAX_TOKENS,\n\t\t\t\ttop_k: undefined,\n\t\t\t\ttop_p: undefined,\n\t\t\t\ttemperature: undefined,\n\t\t\t};\n\t\t} else if (thinkingMode === 'manual') {\n\t\t\tinvocationKwargs = {","sourceCodeStart":509,"sourceCodeEnd":545,"githubUrl":"https://github.com/n8n-io/n8n/blob/5ac6606e81f67bb9534255570cd4e86fd8101eee/packages/@n8n/nodes-langchain/nodes/llms/LMChatAnthropic/LmChatAnthropic.node.ts#L509-L545","documentation":"Thrown by the Anthropic node when thinkingMode === 'manual' is selected for a model id starting with 'claude-opus-4-7'. Claude Opus 4.7 removed the manual thinking-budget API in favour of adaptive thinking with an effort level, so sending manual thinking parameters would 400. The node blocks the misconfiguration before the request, pointing the user at the Adaptive mode.","triggerScenarios":"User selects claude-opus-4-7-* in the model field and sets 'Thinking Mode' to 'Manual' (or, on typeVersion < 1.5, toggles the legacy 'thinking' boolean on). The isOpus47Model check matches and the error fires.","commonSituations":"Reusing an Opus 4.5/4.6 workflow that used manual thinking after upgrading to Opus 4.7; toggling thinking on without re-reading the model's docs; an expression that resolves the model to an opus-4-7 string while thinking is set to manual.","solutions":["Switch 'Thinking Mode' to 'Adaptive' and set an 'Effort' value (low/medium/high).","Or pick a non-opus-4-7 model that still supports manual thinking.","On typeVersion < 1.5, either upgrade the node typeVersion or disable the legacy 'thinking' toggle for opus-4-7."],"exampleFix":"// before\noptions.thinkingMode === 'manual' && modelName.startsWith('claude-opus-4-7')\n// after\noptions.thinkingMode === 'adaptive' && options.effort === 'medium'","handlingStrategy":"validation","validationCode":"const isOpus47Model = modelName.startsWith('claude-opus-4-7');\nif ((options.thinkingMode === 'manual' || options.thinking === true) && isOpus47Model) {\n  // force adaptive before constructing the request\n  options.thinkingMode = 'adaptive';\n  options.effort = options.effort ?? 'medium';\n}","typeGuard":"const isOpus47 = (m: string): boolean => m.startsWith('claude-opus-4-7');","tryCatchPattern":"// Pre-validate model + thinking combo at node-save time.","preventionTips":["Pair opus-4-7 only with Adaptive thinking mode.","When reusing workflows across model upgrades, re-validate thinking settings.","Surface this incompatibility in the node's option description."],"tags":["anthropic","llm","model-capability","configuration"],"backgroundTag":null,"analyzedSha":"5ac6606e81f67bb9534255570cd4e86fd8101eee","analyzedAt":"2026-08-12T05:26:35.080Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}