Skip to content

[Bug]: Getting invalid key for gemini #12168

Description

@grizdum

Bug Description

sorry i am new to this: after update to latest can't connect to gemini anymore getting:

API call failed (attempt 1/3): BadRequestError [HTTP 400]
🔌 Provider: gemini Model: gemini-3.1-pro-preview
🌐 Endpoint: https://generativelanguage.googleapis.com/v1beta/openai
📝 Error: HTTP 400: Error code: 400 - [{'error': {'code': 400, 'message': 'API key not valid. Please pass a valid API key.', 'status': 'INVALID_ARGUMENT', 'details': [{'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'API_KEY_INVALID', 'domain': 'googleapis.com', 'metadata': {'service': 'generativelanguage.googleapis.com'}}, {'@type': 'type.googleapis.com/google.rpc.LocalizedMessage', 'locale': 'en-US', 'message': 'API key not valid. Please pass a valid API key.'}]}}]
📋 Details: [{'error': {'code': 400, 'message': 'API key not valid. Please pass a valid API key.', 'status': 'INVALID_ARGUMENT', 'details': [{'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'API_KEY_INVALID', 'domain': 'googleapis.com', 'metadata': {'service': 'generativelanguage.googleapis.com'}
⚠️ Non-retryable error (HTTP 400) — trying fallback...
❌ Non-retryable error (HTTP 400): HTTP 400: Error code: 400 - [{'error': {'code': 400, 'message': 'API key not valid. Please pass a valid API key.', 'status': 'INVALID_ARGUMENT', 'details': [{'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'API_KEY_INVALID', 'domain': 'googleapis.com', 'metadata': {'service': 'generativelanguage.googleapis.com'}}, {'@type': 'type.googleapis.com/google.rpc.LocalizedMessage', 'locale': 'en-US', 'message': 'API key not valid. Please pass a valid API key.'}]}}]
❌ Non-retryable client error (HTTP 400). Aborting.
🔌 Provider: gemini Model: gemini-3.1-pro-preview
🌐 Endpoint: https://generativelanguage.googleapis.com/v1beta/openai
💡 This type of error won't be fixed by retrying.
─ ⚕ Hermes ─────────────────────────────────────────────────────────────────────────────────────────────────────────

 Error: Error code: 400 - [{'error': {'code': 400, 'message': 'API key not valid. Please pass a valid API
 key.', 'status': 'INVALID_ARGUMENT', 'details': [{'@type': 'type.googleapis.com/google.rpc.ErrorInfo',
 'reason': 'API_KEY_INVALID', 'domain': 'googleapis.com', 'metadata': {'service':
 'generativelanguage.googleapis.com'}}, {'@type': 'type.googleapis.com/google.rpc.LocalizedMessage', 'locale':
 'en-US', 'message': 'API key not valid. Please pass a valid API key.'}]}}]

api key is valid i am sure of it using it with openclaw and as i said worked fine before update. openclaw said

"When Hermes is set to provider: gemini, it uses Google's native API format. But because that base_url is pointed at the .../openai compatibility endpoint, Hermes essentially sends a native Gemini request to an OpenAI-formatted endpoint.

When Google's servers receive that, they get confused. They look for the OpenAI Bearer token, but Hermes is sending the native x-goog-api-key header. The server immediately rejects it and says "API key not valid"—not because your key is actually bad, but because it was sent to the wrong door in the wrong format!"

it tried to fix it by removing the base url but to no avail. i don't know if this is a bug or i am doing something wrong sorry again.

Steps to Reproduce

run hermes chat and say you there

Expected Behavior

Connecting to gemini and answering.

Actual Behavior

Giving the error above.

Affected Component

CLI (interactive chat)

Messaging Platform (if gateway-related)

No response

Debug Report

Report     https://paste.rs/9D7K4
  agent.log  https://paste.rs/Of8Iv

Operating System

windows 11

Python Version

No response

Hermes Version

No response

Additional Logs / Traceback (optional)

Root Cause Analysis (optional)

No response

Proposed Fix (optional)

No response

Are you willing to submit a PR for this?

  • I'd like to fix this myself and submit a PR

Metadata

Metadata

Assignees

No one assigned

    Labels

    type/bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions