From 809602f2b876ab70581eb0981e56acd0f18c5903 Mon Sep 17 00:00:00 2001 From: Roo Code Date: Sat, 10 Jan 2026 07:04:07 +0000 Subject: [PATCH] fix: pass mergeToolResultText option to convertToR1Format when R1 mode is enabled When both "Enable R1 model parameters" and "Strict tool message ordering" are enabled, the mergeToolResultText option was not being passed to convertToR1Format, causing the 400 error to still occur. This fix ensures the strictToolMessageOrdering setting is respected in both the streaming and non-streaming code paths when using R1 format. --- src/api/providers/openai.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/api/providers/openai.ts b/src/api/providers/openai.ts index 01792b99fb..b6b5147739 100644 --- a/src/api/providers/openai.ts +++ b/src/api/providers/openai.ts @@ -111,7 +111,9 @@ export class OpenAiHandler extends BaseProvider implements SingleCompletionHandl let convertedMessages if (deepseekReasoner) { - convertedMessages = convertToR1Format([{ role: "user", content: systemPrompt }, ...messages]) + convertedMessages = convertToR1Format([{ role: "user", content: systemPrompt }, ...messages], { + mergeToolResultText: strictToolMessageOrdering, + }) } else { if (modelInfo.supportsPromptCache) { systemMessage = { @@ -235,7 +237,9 @@ export class OpenAiHandler extends BaseProvider implements SingleCompletionHandl const requestOptions: OpenAI.Chat.Completions.ChatCompletionCreateParamsNonStreaming = { model: modelId, messages: deepseekReasoner - ? convertToR1Format([{ role: "user", content: systemPrompt }, ...messages]) + ? convertToR1Format([{ role: "user", content: systemPrompt }, ...messages], { + mergeToolResultText: strictToolMessageOrdering, + }) : [ systemMessage, ...convertToOpenAiMessages(messages, { mergeToolResultText: strictToolMessageOrdering }),