{"record":{"id":"849686aa5af4c26c","repo":"BerriAI/litellm","slug":"an-api-key-is-required-to-resolve-gemini-file-refe","errorCode":null,"errorMessage":"An API key is required to resolve Gemini file references (files/...). Pass api_key= or set GEMINI_API_KEY.","messagePattern":"An API key is required to resolve Gemini file references \\(files/\\.\\.\\.\\)\\. Pass api_key= or set GEMINI_API_KEY\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/llms/vertex_ai/gemini_embeddings/batch_embed_content_handler.py","lineNumber":224,"sourceCode":"                logging_obj=logging_obj,\n            )\n\n        ### TRANSFORMATION (sync path) ###\n        request_data: Any\n        if use_embed_content:\n            resolved_files = {}\n            if api_key:\n                resolved_files = self._resolve_file_references(input=input, api_key=api_key, sync_handler=sync_handler)\n            request_data = transform_openai_input_gemini_embed_content(\n                input=input,\n                model=model,\n                optional_params=optional_params,\n                resolved_files=resolved_files,\n            )\n        else:\n            flat_elements, has_file_refs = self._flatten_and_detect_file_refs(input)\n            if has_file_refs and not api_key:\n                raise ValueError(\n                    \"An API key is required to resolve Gemini file references (files/...). \"\n                    \"Pass api_key= or set GEMINI_API_KEY.\"\n                )\n            resolved_files = {}\n            if api_key and has_file_refs:\n                resolved_files = self._resolve_file_references(\n                    input=flat_elements, api_key=api_key, sync_handler=sync_handler\n                )\n            request_data = transform_openai_input_gemini_content(\n                input=input,\n                model=model,\n                optional_params=optional_params,\n                resolved_files=resolved_files,\n            )\n\n        ## LOGGING\n        logging_obj.pre_call(\n            input=input,","sourceCodeStart":206,"sourceCodeEnd":242,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/llms/vertex_ai/gemini_embeddings/batch_embed_content_handler.py#L206-L242","documentation":"Gemini embed-with-files guard: the input contains files/... references that must be resolved via the Files API, but no api_key (argument or GEMINI_API_KEY) is available to authorize those resolution calls.","triggerScenarios":"Triggered when a Gemini file reference (files/...) is used without an API key: api_key not passed and GEMINI_API_KEY unset.","commonSituations":"See trigger scenarios.","solutions":["Pass api_key= or set GEMINI_API_KEY to resolve files/... references."],"exampleFix":"os.environ[\"GEMINI_API_KEY\"] = \"<key>\"","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-14T05:17:10.506Z"}