{"record":{"id":"6ec3cbe5ff04e5fa","repo":"diegosouzapw/OmniRoute","slug":"vision-api-returned-empty-or-invalid-response","errorCode":null,"errorMessage":"Vision API returned empty or invalid response","messagePattern":"Vision API returned empty or invalid response","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/lib/guardrails/visionBridgeHelpers.ts","lineNumber":606,"sourceCode":"    // JSON path — also unwrap the { _streamed, summary } diagnostics envelope\n    // that some OmniRoute capture paths attach to provider responses.\n    return unwrapVisionSummary(await response.json());\n  } catch {\n    // Not JSON — attempt SSE / envelope parsing from the raw text.\n  }\n\n  let rawText = \"\";\n  try {\n    if (typeof (response as Response & { text?: unknown }).text === \"function\") {\n      rawText = await response.text();\n    }\n  } catch {\n    rawText = \"\";\n  }\n\n  const parsed = parseSseVisionBody(rawText);\n  if (parsed === null) {\n    throw new Error(\"Vision API returned empty or invalid response\");\n  }\n  return parsed;\n}\n\n/**\n * Extract the description text from an OpenAI-compatible vision response.\n * Falls back to `reasoning_content` then `reasoning` when `content` is empty —\n * reasoning models (e.g. xiaomi/mimo-v2.5, opencode/mimo-v2.5-free) can exhaust\n * `max_tokens` on chain-of-thought and return `content: null` with a complete\n * analysis in a reasoning field. opencode-routed gateways name that field\n * `reasoning` rather than `reasoning_content` (#6623 / #10809).\n */\nfunction extractOpenAICompatibleContent(data: unknown): string {\n  const record = data as {\n    choices?: Array<{\n      message?: { content?: unknown; reasoning_content?: unknown; reasoning?: unknown };\n    }>;\n    error?: { message?: string };","sourceCodeStart":588,"sourceCodeEnd":624,"githubUrl":"https://github.com/diegosouzapw/OmniRoute/blob/a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d/src/lib/guardrails/visionBridgeHelpers.ts#L588-L624","documentation":"Error \"Vision API returned empty or invalid response\" thrown in diegosouzapw/OmniRoute.","triggerScenarios":"Thrown at src/lib/guardrails/visionBridgeHelpers.ts:606 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"}