google-gemini / google-gemini/gemini-cli
[Bug]: Google AI Pro sign-in silently falls back to API key onboarding in v0.54.0
- Dominant language
- TypeScript
- Stars
- 107k
- Forks
- 14.6k
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 45
Description
### What happened?
On Gemini CLI v0.54.0, selecting "Sign in with Google" and completing the browser flow with a personal Google account that has an active Google AI Pro subscription returns the CLI to the "Enter Gemini API Key" screen.
The CLI silently changes its local authentication setting to:
```json
"auth": {
"selectedType": "gemini-api-key"
}
```
This is confusing because:
- The current authentication documentation still recommends Google sign-in for individual Google AI Pro accounts:
https://geminicli.com/docs/get-started/authentication/
- The quota documentation still lists Google AI Pro as a fixed-cost Google-account tier:
https://geminicli.com/docs/resources/quota-and-pricing/
- The June 18 announcement says individual Google AI Pro accounts are no longer served by Gemini CLI and should migrate to Antigravity:
https://github.com/google-gemini/gemini-cli/discussions/28017
The CLI provides no deprecation or migration explanation. Instead, it silently redirects the user to an API-key flow, which has a separate quota and potentially separate usage-based billing.
### Steps to reproduce
1. Install `@google/gemini-cli@0.54.0` under a clean Linux user.
2. Ensure none of these variables are present:
- `GEMINI_API_KEY`
- `GOOGLE_API_KEY`
- `GOOGLE_GENAI_USE_VERTEXAI`
- `GOOGLE_CLOUD_PROJECT`
- `GOOGLE_CLOUD_PROJECT_ID`
- `GOOGLE_APPLICATION_CREDENTIALS`
3. Ensure `/etc/gemini-cli/system-defaults.json` does not exist.
4. Start with a new, empty `~/.gemini` directory.
5. Run `gemini`.
6. Select `Sign in with Google`.
7. Complete the browser authentication using a personal Google account with Google AI Pro.
8. Observe that the CLI returns to the `Enter Gemini API Key` dialog.
9. Observe that `~/.gemini/settings.json` is recreated with `selectedType: gemini-api-key`.
The result is reproducible after resetting the local state and also after manually setting `selectedType` to `oauth-personal`.
### What did you expect to happen?
One of these outcomes:
1. If personal Google AI Pro accounts are no longer supported, the CLI should clearly explain that, remove or disable the Google sign-in option for this account type, link to the migration documentation, and warn that API-key billing is separate.
2. If Google AI Pro OAuth is still supported as stated in the current documentation, the OAuth flow should complete and retain `oauth-personal` instead of silently switching to `gemini-api-key`.
### Client information
- Gemini CLI: `0.54.0`
- Node.js: `22.22.2`
- npm: `10.9.7`
- OS: Linux x86_64
- Kernel: `6.8.0-136-generic`
- Installation: private npm prefix under an isolated system user
- `/about`: unavailable because onboarding never reaches the main prompt
### Login information
Personal Google account with an active Google AI Pro subscription. Email address intentionally omitted.
### Anything else we need to know?
- No API key was entered.
- No model request was made.
- No project files or source code were exposed.
- The working folder was explicitly left untrusted.
- The behavior persisted after a complete local authentication-state reset
Contributor guide
Research direction
Start by reproducing the Google sign-in flow from the `gemini` entry point with a clean `~/.gemini` directory, then inspect how it writes `~/.gemini/settings.json` after authentication. Compare the observed `oauth-personal` to `gemini-api-key` transition with the linked authentication, quota, and migration guidance. Done means the outcome is explicit to users and the selected authentication state matches the supported behavior, with coverage for the reproduced case.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- node.js, typescript
- Domain
- authentication, cli
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100