What happened?
When attempting to authenticate with "Login with Google" using a specific personal Google account, the CLI displays the following error message:
Failed to login. Message: This account requires setting the GOOGLE_CLOUD_PROJECT or GOOGLE_CLOUD_PROJECT_ID env var. See https://goo.gle/gemini-cli-auth-docs#workspace-gca
However, based on debug logs, the actual reason appears to be different. The server response indicates the account is ineligible for the free tier with the message: "Your current account is not eligible for Gemini Code Assist for individuals, the free version of Gemini Code Assist."
The error message about GOOGLE_CLOUD_PROJECT seems potentially misleading in this case. It suggests setting an environment variable would resolve the issue, which contradicts the documentation for individual accounts.
According to docs/get-started/authentication.md:
Important: Most individual Google accounts (free and paid) don't require a Google Cloud project for authentication.
It seems the CLI is falling back to a path that requires a Project ID (likely for paid/standard tiers) without informing the user that they were rejected from the free tier first.
Investigation Details
To investigate this issue, I added debug logging to packages/core/src/code_assist/setup.ts to capture the LoadCodeAssist response details:
// Added in setupUser() function
try {
loadRes = await caServer.loadCodeAssist({...});
} catch (e) {
debugLogger.error('LoadCodeAssist failed during setupUser.', getDebuggableErrorDetails(e));
throw e;
}
debugLogger.debug('LoadCodeAssist response during setupUser.', summarizeLoadCodeAssistResponse(loadRes));
With GEMINI_DEBUG_LOG_FILE enabled, I observed the following response from LoadCodeAssist:
Failed Account:
{
"hasCurrentTier": false,
"currentTierId": undefined,
"currentTierName": undefined,
"allowedTierIds": ["standard-tier"],
"ineligibleTiers": [
{
"reasonCode": "INELIGIBLE_ACCOUNT",
"reasonMessage": "Your current account is not eligible for Gemini Code Assist for individuals, the free version of Gemini Code Assist.",
"tierId": "free-tier",
"tierName": "Gemini Code Assist for individuals",
"validationUrl": undefined
}
],
"hasCloudAiCompanionProject": false
}
Working Account (for comparison):
{
"hasCurrentTier": true,
"currentTierId": "free-tier",
"currentTierName": "Gemini Code Assist for individuals",
"allowedTierIds": ["free-tier", "standard-tier"],
"ineligibleTiers": [],
"hasCloudAiCompanionProject": true
}
Analysis
It appears the issue might be in packages/core/src/code_assist/setup.ts.
My hypothesis is:
- Server returns
ineligibleTiers with INELIGIBLE_ACCOUNT for the free tier.
- The code sees
standard-tier in allowedTierIds and attempts to onboard to it.
- Onboarding to
standard-tier requires a Project ID.
- Since no Project ID is set, it throws
ProjectIdRequiredError.
- The original
ineligibleTiers message is lost, and the user sees the Project ID error instead.
Related Issues
This issue appears to be related to:
What did you expect to happen?
I expected one of the following:
- The CLI to display the actual ineligibility reason from the server response (e.g., "Your current account is not eligible for Gemini Code Assist for individuals").
- Clear guidance on what authentication options are available for this account.
- If a Google Cloud Project is genuinely required for this specific scenario, a clearer explanation of why, given the documentation states it is usually not required for personal accounts.
Client information
Client Information
Run gemini to enter the interactive CLI, then run the /about command.
> /about
╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ │
│ About Gemini CLI │
│ │
│ CLI Version 0.28.0-nightly.20260128.adc8e11bb │
│ Git Commit 32cfce16b │
│ Model auto-gemini-2.5 │
│ Sandbox no sandbox │
│ OS win32 │
│ Auth Method Logged in with Google (xxxxxxxxx@xxxxxxxx) │
│ │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Login information
Anything else we need to know?
I'm not certain why my specific account shows "not eligible for Gemini Code Assist for individuals." This might be related to account type, organization policies, region restrictions, or other Google-specific criteria. I'm reporting the error messaging issue rather than the eligibility determination itself.
I'm not entirely certain about the full authentication flow, but I wanted to report this in case the error messaging could be improved to better reflect the actual cause and provide clearer guidance to users.
What happened?
When attempting to authenticate with "Login with Google" using a specific personal Google account, the CLI displays the following error message:
However, based on debug logs, the actual reason appears to be different. The server response indicates the account is ineligible for the free tier with the message: "Your current account is not eligible for Gemini Code Assist for individuals, the free version of Gemini Code Assist."
The error message about
GOOGLE_CLOUD_PROJECTseems potentially misleading in this case. It suggests setting an environment variable would resolve the issue, which contradicts the documentation for individual accounts.According to
docs/get-started/authentication.md:It seems the CLI is falling back to a path that requires a Project ID (likely for paid/standard tiers) without informing the user that they were rejected from the free tier first.
Investigation Details
To investigate this issue, I added debug logging to
packages/core/src/code_assist/setup.tsto capture theLoadCodeAssistresponse details:With
GEMINI_DEBUG_LOG_FILEenabled, I observed the following response fromLoadCodeAssist:Failed Account:
{ "hasCurrentTier": false, "currentTierId": undefined, "currentTierName": undefined, "allowedTierIds": ["standard-tier"], "ineligibleTiers": [ { "reasonCode": "INELIGIBLE_ACCOUNT", "reasonMessage": "Your current account is not eligible for Gemini Code Assist for individuals, the free version of Gemini Code Assist.", "tierId": "free-tier", "tierName": "Gemini Code Assist for individuals", "validationUrl": undefined } ], "hasCloudAiCompanionProject": false }Working Account (for comparison):
{ "hasCurrentTier": true, "currentTierId": "free-tier", "currentTierName": "Gemini Code Assist for individuals", "allowedTierIds": ["free-tier", "standard-tier"], "ineligibleTiers": [], "hasCloudAiCompanionProject": true }Analysis
It appears the issue might be in
packages/core/src/code_assist/setup.ts.My hypothesis is:
ineligibleTierswithINELIGIBLE_ACCOUNTfor the free tier.standard-tierinallowedTierIdsand attempts to onboard to it.standard-tierrequires a Project ID.ProjectIdRequiredError.ineligibleTiersmessage is lost, and the user sees the Project ID error instead.Related Issues
This issue appears to be related to:
What did you expect to happen?
I expected one of the following:
Client information
Client Information
Run
geminito enter the interactive CLI, then run the/aboutcommand.Login information
Anything else we need to know?
I'm not certain why my specific account shows "not eligible for Gemini Code Assist for individuals." This might be related to account type, organization policies, region restrictions, or other Google-specific criteria. I'm reporting the error messaging issue rather than the eligibility determination itself.
I'm not entirely certain about the full authentication flow, but I wanted to report this in case the error messaging could be improved to better reflect the actual cause and provide clearer guidance to users.