{"record":{"id":"5bcaf4473fb02f2d","repo":"BerriAI/litellm","slug":"unsupported-mode-mode","errorCode":null,"errorMessage":"Unsupported mode: {mode}","messagePattern":"Unsupported mode: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/llms/vertex_ai/common_utils.py","lineNumber":489,"sourceCode":"            endpoint = \"streamGenerateContent\"\n            url = f\"https://generativelanguage.googleapis.com/{api_version}/{_gemini_model_name}:{endpoint}?alt=sse\"\n        else:\n            url = f\"https://generativelanguage.googleapis.com/{api_version}/{_gemini_model_name}:{endpoint}\"\n    elif mode == \"embedding\":\n        endpoint = \"embedContent\"\n        url = f\"https://generativelanguage.googleapis.com/v1beta/{_gemini_model_name}:{endpoint}\"\n    elif mode == \"batch_embedding\":\n        endpoint = \"batchEmbedContents\"\n        url = f\"https://generativelanguage.googleapis.com/v1beta/{_gemini_model_name}:{endpoint}\"\n    elif mode == \"count_tokens\":\n        endpoint = \"countTokens\"\n        url = f\"https://generativelanguage.googleapis.com/v1beta/{_gemini_model_name}:{endpoint}\"\n    elif mode == \"image_generation\":\n        raise ValueError(\n            \"LiteLLM's `gemini/` route does not support image generation yet. Let us know if you need this feature by opening an issue at https://github.com/BerriAI/litellm/issues\"\n        )\n    else:\n        raise ValueError(f\"Unsupported mode: {mode}\")\n\n    return url, endpoint\n\n\ndef _check_text_in_content(parts: list[PartType]) -> bool:\n    \"\"\"\n    check that user_content has 'text' parameter.\n        - Known Vertex Error: Unable to submit request because it must have a text parameter.\n        - 'text' param needs to be present (empty strings are valid)\n        - Relevant Issue: https://github.com/BerriAI/litellm/issues/5515\n    \"\"\"\n    has_text_param = False\n    for part in parts:\n        if \"text\" in part and part.get(\"text\") is not None:\n            has_text_param = True\n\n    return has_text_param\n","sourceCodeStart":471,"sourceCodeEnd":507,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/llms/vertex_ai/common_utils.py#L471-L507","documentation":"Gemini URL mapper sentinel: the requested mode has no corresponding generativelanguage.googleapis.com endpoint branch, so the mapper raises 'Unsupported mode' instead of fabricating a URL for an unknown operation.","triggerScenarios":"Triggered when an unsupported mode is passed to Vertex AI common utils.","commonSituations":"See trigger scenarios.","solutions":["Use a supported mode for this Vertex AI route.","Check the model/call combination against litellm docs."],"exampleFix":"# choose a supported mode for the gemini/ route.","handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8","analyzedAt":"2026-08-18T11:44:31.656Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}