Skip to content

fix: Remove display_name for non-Vertex file uploads #1211

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

ystory
Copy link
Contributor

@ystory ystory commented Jun 6, 2025

Description

When using the Google.GenAI backend (GEMINI_API), file uploads fail if the file_data or inline_data parts of the request contain a display_name. The Gemini API (non-Vertex) does not support this attribute, causing a ValueError.

This commit updates the _preprocess_request method in the Gemini class to sanitize the request. It now iterates through all content parts and sets display_name to None if the determined backend is GEMINI_API. This ensures compatibility, similar to the existing handling of the labels attribute.

Fixes #1182

Testing Plan

1. Unit Tests

  • Added a new parameterized test test_preprocess_request_handles_backend_specific_fields to tests/unittests/models/test_google_llm.py.
  • This test verifies:
    • When the backend is GEMINI_API, display_name in file_data and inline_data is correctly set to None.
    • When the backend is VERTEX_AI, display_name remains unchanged.
  • All unit tests passed successfully.
pytest ./tests/unittests/models/test_google_llm.py                                    ░▒▓ ✔  adk-python   base   system   21:14:02  
============================================================================================ test session starts ============================================================================================
platform darwin -- Python 3.12.10, pytest-8.3.5, pluggy-1.6.0
rootdir: /Users/leo/PycharmProjects/adk-python
configfile: pyproject.toml
plugins: anyio-4.9.0, langsmith-0.3.42, asyncio-0.26.0, mock-3.14.0, xdist-3.6.1
asyncio: mode=Mode.AUTO, asyncio_default_fixture_loop_scope=function, asyncio_default_test_loop_scope=function
collected 20 items                                                                                                                                                                                          

tests/unittests/models/test_google_llm.py ....................                                                                                                                                        [100%]

============================================================================================ 20 passed in 3.19s =============================================================================================

2. Manual End-to-End (E2E) Test
I manually verified the fix using adk web. The test was configured to use a Google AI Studio API key, which is the scenario where the bug occurs.

  • Before the fix:
    When uploading a file, the request failed with the error: {"error": "display_name parameter is not supported in Gemini API."}. This confirms the bug.
Screenshot 2025-06-06 at 21 22 35
  • After the fix:
    With the patch applied, the same file upload was processed successfully. The agent correctly analyzed the file and responded without errors.
Screenshot 2025-06-06 at 21 23 24

The Google.GenAI backend (non-Vertex) does not support `display_name` in file uploads. This change strips the attribute from `file_data` and `inline_data` parts during request preprocessing for the `GEMINI_API` backend only. Adds unit tests to verify.

Fixes google#1182
@darien-schettler
Copy link

Thanks for implementing this! It fixes issue correct?

@ystory
Copy link
Contributor Author

ystory commented Jun 6, 2025

Thanks for implementing this! It fixes issue correct?

Hi @darien-schettler,
Yes, I believe this fixes it. I was facing the same problem, and your detailed issue was very helpful. This patch works on my end. However, I'd appreciate it if you could let me know if you think there's anything missing, just in case.
Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Bug: display_name in file uploads causes error with Google.GenAI backend (non-Vertex)
2 participants