Gemini 2.5 Pro missing in AI Studio? Check the access change
Gemini 2.5 access is restricted to previous active users, not universally discontinued. Separate AI Studio visibility, API access and migration decisions.
Gemini 2.5 disappearing from a selector does not, by itself, mean Google has discontinued the model. Google’s September 18, 2026 Gemini API release notes say access to the 2.5 models is being limited to users who actively used them in the past. The same notice explicitly says these models are not deprecated and will continue to be served until further notice.
For a new project, Google directs developers to newer models such as Gemini 3.5 Flash-Lite or Gemini 3.8 Flash. If you are maintaining an existing integration, first identify which access path is failing. This guide separates the policy change from an API-key, project or request problem; it does not promise to restore eligibility.
Why the model can be missing without being shut down
A Google AI Developers Forum report describes Gemini 2.5 Pro disappearing from AI Studio on September 18. It is a concrete report of the symptom, not proof that every account lost access.
The official notice defines a previous-active-use condition but does not specify a public numeric eligibility threshold. Do not infer one from account age, a paid subscription or a single successful request. An AI Studio selector, a direct Gemini API request and a third-party provider’s model list are different surfaces.
| Observation | What it establishes | Next check |
|---|---|---|
| Model absent from AI Studio | It is not visible in that current UI/account context | Confirm the signed-in account and selected project |
| Direct API rejects a request | That request failed on that route | Preserve the response status and error body |
| Gateway still lists the model | The provider advertises a route | Check its own availability and an authorized request |
| A different Google product still works | That product has access | Do not transfer its eligibility assumptions to the API |
This article concerns the Gemini API notice. It does not establish an identical restriction for Vertex AI, every Google subscription or every third-party provider.
Check account, project and model separately
First confirm that you are looking at the intended account and project. Teams often have more than one project, and a switch can look like a model removal. Record the context privately; do not post project identifiers, API keys or screenshots containing credentials in a public support thread.
Next, check the model string used by your application. A display name such as “Gemini 2.5 Pro” is not the same thing as the exact ID in a request. Use the provider’s documented model-list operation for the credentials and route you are troubleshooting. Keep the full error response when a call fails, including its request identifier if provided.
A successful model-list request still does not guarantee that every listed model accepts your intended operation. Check the supported generation method and input type. Likewise, a rejected generation request does not automatically prove that the model is retired: authorization, account eligibility, quota and malformed input are separate possibilities.
Do not solve the problem by repeatedly changing billing or creating accounts. Neither action is a documented eligibility fix in the cited notice. If the visible state conflicts with your known usage history, use Google support or the official forum with a minimal, redacted reproduction.
Check the direct API model list without generating content
For the direct Gemini API, use the documented Models API. This is a metadata request, not a prompt sent for generation. Use a key from the project you are investigating; a key from another working project would answer a different question. Keep it in your shell environment rather than in a pasted URL or public transcript.
curl --silent --show-error \
-D models-headers.txt -o models.json -w '%{http_code}\n' \
'https://generativelanguage.googleapis.com/v1beta/models?pageSize=1000' \
-H "x-goog-api-key: $GEMINI_API_KEY"
The final printed number is the HTTP status. Open models.json only after noting it. A 200 response should contain a models array; an error body must not be treated as an empty successful model list. The following local command prints the matching exact name and advertised generation methods:
python3 - <<'PYCODE'
import json
from pathlib import Path
body = json.loads(Path('models.json').read_text())
if 'error' in body or not isinstance(body.get('models'), list):
raise SystemExit('Not a successful model-list response; inspect models.json')
for model in body['models']:
if model.get('name') == 'models/gemini-2.5-pro':
print(model['name'], model.get('supportedGenerationMethods', []))
if body.get('nextPageToken'):
print('More pages exist; follow nextPageToken before concluding absence.')
PYCODE
No printed match means only that this page has no matching entry. If there is a nextPageToken, repeat the list request with that token as the URL-encoded pageToken query parameter and inspect subsequent pages. Do not turn a partial list into a retirement claim. The resource name includes models/; the generate URL below uses that resource name in the path.
Keep this result with the failing application’s timestamp and project context. It helps distinguish “the UI selector changed” from “the same API credentials no longer expose this ID.” It cannot manufacture eligibility or explain an undocumented account-specific rule.
Make one generation check only if you are authorized to use the model
A generation request can consume quota or incur charges. If that is appropriate for your account, save the following minimal text request as access-check.json. It avoids tools, uploaded files and extra generation options so that an unrelated parameter does not obscure the access question.
{"contents":[{"parts":[{"text":"Reply with the word ready."}]}]}
curl --silent --show-error \
-D access-headers.txt -o access-response.json -w '%{http_code}\n' \
'https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-pro:generateContent' \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
--data-binary @access-check.json
A successful request normally has candidate content in the JSON. Inspect its text parts and any finish or safety information; a missing answer is not the same as the model being unavailable. These commands are reproduction instructions, not a claim that our account currently receives a response. Do not automatically retry this request in a loop.
Use Google’s troubleshooting reference alongside the actual error body:
| Result | Useful next action |
|---|---|
400 / INVALID_ARGUMENT | Inspect the request and API version; remove unrelated fields before retrying |
403 / PERMISSION_DENIED | Verify the intended credentials and project permissions; preserve the specific reason |
404 / NOT_FOUND | Check exact ID, API version and supported method as well as eligibility; the status alone does not establish global shutdown |
429 / RESOURCE_EXHAUSTED | Inspect quota and rate-limit details; repeated immediate retries do not restore access |
| 5xx | Check the service status and use bounded retry/backoff appropriate to your application |
| 200 but unusable output | Check candidate/finish information and task handling separately from access |
If the minimal direct request succeeds but the application fails, compare the application’s key/project, exact model string and outgoing request with this check. If only AI Studio is missing the model, report the UI/account symptom separately. If both fail, share the two redacted observations with support rather than claiming that one proves the cause of the other.
Keep a minimal incident record
Use a short record to avoid mixing unrelated failures:
Observed at (UTC):
Surface: AI Studio / Gemini API / provider gateway
Exact model ID:
Client or SDK version:
Account/project context confirmed: yes/no
Operation and input type:
HTTP status and redacted error body:
Request ID, if returned:
Last successful run and saved evidence:
This is a troubleshooting template, not a live test result. The last successful run is useful only when it refers to the same route and relevant account context. A screenshot of a model in another person’s selector is not evidence of your account’s entitlement.
If you need to migrate a workflow
Choose a replacement by the task rather than by its version number alone. Separate text generation, structured extraction, image input and tool use. Check supported parameters and response handling before switching production traffic.
For an extraction workflow, replay representative documents and verify both factual values and schema validity. For tool use, check the complete sequence of tool calls and results, not just the first assistant message. Preserve output limits, timeout handling and error handling in the test record.
If you previously depended on a specific preview model, review its separate lifecycle notice. A preview retirement and the September 18 access policy are not interchangeable explanations. Avoid a broad headline claiming that all Gemini 2.5 models have been shut down.
Our Gemini 3.8 Flash API guide provides a starting point for checking the newer route. The Gemini tool-call signature guide addresses a different migration failure that can occur even when model access itself works.
Migrate without losing the workflow’s contract
For an existing invoice-extraction service, the contract might be: return an invoice identifier as a string, preserve leading zeroes, report missing amounts as null, and never invent a supplier. Those requirements matter more than retaining a familiar display name. Save representative allowed-to-share inputs and the expected values before trying a replacement.
Use a small migration table with columns for old exact ID, candidate exact ID, required input types, schema/tool support, output limit, observed failures and rollback route. A newer Flash or Flash-Lite model is a candidate recommended by Google’s notice, not automatically equivalent to 2.5 Pro on reasoning or every feature. Keep the same documents and expected answers while comparing it.
Run the replacement in an isolated test or shadow workflow before changing the production default. Check parsed fields, tool-call sequencing, refusal/error handling and latency limits. When it passes your criteria, change the configuration once and retain the previous working settings. Rollback is possible only if the old route is still authorized and available; a saved model name cannot restore revoked access.
If no suitable route is available, queue the affected work or use your established manual process. Paying for a different plan, making new accounts or selecting a similarly named gateway model is not a documented repair for the September 18 eligibility condition. The practical outcome of this guide may be a verified migration decision or a well-scoped support case, not a restored selector.
What an API gateway can and cannot establish
A gateway has its own catalog, credentials, billing and upstream routes. An available gateway entry does not prove that your direct Google project remains eligible, and a direct Google restriction does not prove that every gateway route is unavailable.
When evaluating Ofox or another provider, verify the exact supported model and request format at the time of use. Do not assume that switching the Base URL preserves every native Gemini feature. This guide does not assert that a particular Gemini 2.5 route is currently available on Ofox.
Frequently Asked Questions
- Has Google deprecated Gemini 2.5?
- The September 18 notice explicitly says the 2.5 models are not deprecated and will continue to be served until further notice. Separate model-specific lifecycle notices still need to be checked when choosing an exact ID.
- Does a paid Google plan guarantee the model returns to AI Studio?
- The cited notice does not provide that guarantee. It describes previous active use, not a universal restoration rule based on payment.
- Should a new project start with Gemini 2.5?
- Google recommends newer models for new projects. Evaluate the documented replacements against your actual task and supported features before adopting one.


