{"record":{"id":"bea3a06649cfce81","repo":"diegosouzapw/OmniRoute","slug":"no-user-message-found-in-request","errorCode":null,"errorMessage":"No user message found in request","messagePattern":"No user message found in request","errorType":"validation","errorClass":"Error","httpStatus":400,"severity":"error","filePath":"open-sse/executors/claude-web/payload.ts","lineNumber":330,"sourceCode":"}\n\n/**\n * Transform OpenAI format to Claude Web format\n */\nexport function transformToClaude(\n  body: Record<string, unknown>,\n  model: string,\n  turn?: ClaudeWebTurnFields\n): ClaudeWebRequestPayload {\n  const messages = Array.isArray(body.messages) ? body.messages : [];\n  const reasoningEffort = resolveClaudeWebReasoningEffort(body);\n  const resolvedModel = model || DEFAULT_CLAUDE_MODEL;\n  const prompt =\n    turn?.prompt ?? (buildPromptFromMessages(messages) || latestUserPrompt(messages));\n  const resolvedTurn = turn ?? defaultTurn(prompt);\n\n  if (resolvedTurn.operation === \"completion\" && !resolvedTurn.prompt.trim()) {\n    throw new Error(\"No user message found in request\");\n  }\n\n  return buildClaudeWebPayload(body, resolvedModel, reasoningEffort, resolvedTurn);\n}\n\n/**\n * Transform Claude Web response to OpenAI format.\n *\n * `kind` selects which delta field carries `claudeContent`: `\"content\"`\n * (default, preserves the original call sites) or `\"reasoning\"` — the\n * latter maps Claude's `thinking_delta` text onto `delta.reasoning_content`,\n * the same field the real-Anthropic-API translator uses\n * (open-sse/translator/response/claude-to-openai.ts) so downstream clients\n * (Claude Code, Cursor, etc.) render it as the thinking panel instead of\n * silently dropping it (#6662).\n */\nexport function transformFromClaude(\n  claudeContent: string,","sourceCodeStart":312,"sourceCodeEnd":348,"githubUrl":"https://github.com/diegosouzapw/OmniRoute/blob/a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d/open-sse/executors/claude-web/payload.ts#L312-L348","documentation":"Error \"No user message found in request\" thrown in diegosouzapw/OmniRoute.","triggerScenarios":"Thrown at open-sse/executors/claude-web/payload.ts:330 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d","analyzedAt":"2026-08-25T18:35:09.898Z","schemaVersion":2},"datasetVersion":"2026-08-25T21:54:21.419Z"}