googleapis / googleapis/python-genai
register_files should not require google.auth.credentials.Credentials when client uses Gemini API Key
- Dominant language
- Python
- Stars
- 4k
- Forks
- 1k
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 40
Description
#### Environment details
- Programming language: Python 3.14
- OS: Linux
- Package version: 1.68.0
#### Steps to reproduce
`register_files` currently requires `google.auth.credentials.Credentials`.
But the API request was rejected by Gemini API backend when:
1. a `google.auth.credentials.Credentials` is supplied; **and**
2. the client is instantiated with a Gemini API Key.
```
ClientError: 401 UNAUTHENTICATED. {'error': {'code': 401, 'message': 'API key for authentication is used with other authentication credentials. Expected only one form of authentication.', 'status': 'UNAUTHENTICATED', 'details': [{'@type':
'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'OVERLOADED_CREDENTIALS', 'metadata': {'method': 'google.ai.generativelanguage.v1beta.FileService.RegisterFiles', 'service': 'generativelanguage.googleapis.com'}}]}}
```
When calling the file register API directly with only the Gemini API Key (service account bound), it works as expected.
It requires a workaround to call the private `_register_files` method to dance around this check. This seems to be the case even for the latest google-genai@2.7.0.
Contributor guide
Assessment
This issue has not been assessed yet.