Is Google Gemini Down? Complete Status Guide + Troubleshooting
TL;DR
Check Gemini status at status.cloud.google.com or apistatuscheck.com/api/gemini. Common issues include 429 rate limits, 503 service unavailable, quota exceeded, and regional restrictions. Verify your API key, check quotas, and use alternatives like Claude or GPT-4 when Gemini is down.
Gemini giving you errors?
API requests timing out?
"Gemini is at capacity" message blocking your work?
Before you dive into debugging, determine whether Google Gemini is actually experiencing an outage—or if the issue is with your configuration, quota, or network. Here's your complete guide to checking Gemini status and resolving common problems fast.
Quick Check: Is Gemini Actually Down?
Important distinction: Google Gemini has two main surfaces that can fail independently:
- Gemini Web App (gemini.google.com) — the consumer chat interface
- Gemini API (ai.google.dev, Vertex AI) — for developers building applications
One can be down while the other works fine. Make sure you're checking the right component.
1. Check Official Google Status
Google Cloud Status Dashboard:
🔗 status.cloud.google.com/products/aiplatform/gemini-api
What to look for:
- ✅ "Service is operating normally" = Gemini API is fine
- ⚠️ "Service disruption" = Partial issues, some regions affected
- 🔴 "Service outage" = Gemini is down
Google Workspace Status (for Gemini in Workspace):
🔗 workspace.google.com/status
Check this if you're using Gemini in Gmail, Docs, or Google Workspace apps.
2. Check API Status Check
🔗 apistatuscheck.com/api/gemini
Real-time monitoring for Gemini and 114+ other APIs. See current status, incident history, response times, and outage patterns—all aggregated in one dashboard.
Why it's better than checking manually:
- Monitors both web app and API endpoints
- Tracks regional availability
- Shows historical uptime data
- Instant alerts when status changes
3. Check Social & Community Sources
Twitter/X:
- Search "Gemini down" or "Gemini API down"
- Follow @GoogleAI for official updates
- Check @googledevs for developer-specific news
Google AI Forum:
- discuss.ai.google.dev — developer community discussions
- Often has early warnings about quota changes or regional issues
Downdetector:
- downdetector.com/status/google/news — crowdsourced outage reports
If you see a spike in reports from the last 15 minutes, it's likely a real outage and not just you.
Gemini Web App vs API: Key Differences
Understanding the difference is crucial for effective troubleshooting:
Gemini Web App (gemini.google.com)
- Access: Browser-based, requires Google account
- Authentication: Google OAuth (automatic via browser sign-in)
- Rate Limits: Generous but not published; throttles during extreme usage
- Availability: Global, but subject to regional content policies
- Common Errors: "Gemini is at capacity", "Something went wrong", session timeouts
Gemini API (ai.google.dev, Vertex AI)
- Access: RESTful API for developers
- Authentication: API key (Google AI) or service account (Vertex AI)
- Rate Limits: Strictly enforced based on tier (free tier: 15 RPM, 1M TPM, 1.5K RPD)
- Availability: Regional endpoints (us-central1, europe-west1, asia-northeast1)
- Common Errors: 429 rate limit, 400 invalid request, 401 auth failed, 503 service unavailable
Pro tip: If the web app works but your API fails, it's almost always an API key, quota, or rate limit issue—not a Gemini outage.
Common Gemini Errors (and How to Fix Them)
Error 429: Resource Exhausted / Rate Limit Exceeded
What it means:
You've exceeded your quota for requests per minute (RPM), tokens per minute (TPM), or requests per day (RPD).
Gemini API free tier limits:
- 15 requests per minute
- 1 million tokens per minute
- 1,500 requests per day
Fix:
Check your current usage:
curl "https://generativelanguage.googleapis.com/v1beta/models?key=YOUR_API_KEY"Look at rate limit headers in response
Implement exponential backoff:
async function callGeminiWithRetry(prompt, maxRetries = 3) { for (let i = 0; i < maxRetries; i++) { try { return await callGemini(prompt); } catch (error) { if (error.status === 429) { const delay = Math.pow(2, i) * 1000; // 1s, 2s, 4s console.log(`Rate limited, retrying in ${delay}ms`); await new Promise(resolve => setTimeout(resolve, delay)); } else { throw error; } } } }Batch requests — combine multiple prompts into one request when possible
Upgrade to paid tier if you need higher limits:
- Pay-as-you-go: 360 RPM, 10M TPM, no daily limit
- Available at console.cloud.google.com/vertex-ai
Error 503: Service Unavailable
What it means:
Google's Gemini servers are temporarily overloaded or experiencing issues. This is an actual outage.
Fix:
- Wait and retry — Most 503 errors resolve within 5-15 minutes
- Check status.cloud.google.com to confirm it's a known issue
- Switch to a different region if using Vertex AI:
# Try different endpoint client = aiplatform.gapic.PredictionServiceClient( client_options={"api_endpoint": "europe-west1-aiplatform.googleapis.com"} ) - Implement fallback to alternative AI (see alternatives section below)
Error 401: Unauthorized / Invalid API Key
What it means:
Your API key is missing, incorrect, or has been revoked.
Fix:
Verify API key format:
# Should look like: AIzaSyA... echo $GOOGLE_AI_API_KEYGenerate a new API key:
- Go to aistudio.google.com/app/apikey
- Click "Create API key"
- Copy and replace in your code
Check API is enabled:
- Visit console.cloud.google.com/apis/library/generativelanguage.googleapis.com
- Click "Enable" if not already enabled
Verify no typos in request:
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=YOUR_API_KEY" \ -H 'Content-Type: application/json' \ -d '{"contents":[{"parts":[{"text":"Hello"}]}]}'
"Gemini is at capacity right now"
What it means:
The web app is throttling new sessions due to high demand. This is not an API issue.
Fix:
- Wait 5-10 minutes and refresh
- Try a different Google account (if you have multiple)
- Use the API instead — has separate capacity and rarely shows this error
- Use during off-peak hours — 10 PM - 6 AM PST typically has better availability
Error 400: Invalid Request / Content Policy Violation
What it means:
Your prompt was rejected due to:
- Safety filters (harmful content detected)
- Invalid format (malformed JSON)
- Context length exceeded
- Unsupported model name
Fix:
Check safety settings:
const safetySettings = [ { category: HarmCategory.HARM_CATEGORY_HARASSMENT, threshold: HarmBlockThreshold.BLOCK_ONLY_HIGH, }, // Add other categories as needed ];Verify model name:
- Use
gemini-pro(text) orgemini-pro-vision(multimodal) - Not
gemini-1.5-pro(that's for Vertex AI)
- Use
Check context length:
- Gemini Pro: 32,768 tokens
- Gemini 1.5 Pro: 1,000,000 tokens (Vertex AI only)
Validate JSON structure:
{ "contents": [ { "parts": [ {"text": "Your prompt here"} ] } ] }
"Candidate was blocked due to SAFETY"
What it means:
Gemini's safety filters flagged the response (not your prompt) as potentially harmful.
Fix:
- Rephrase your prompt to be more specific and neutral
- Lower safety thresholds (use with caution):
safetySettings: [ { category: HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT, threshold: HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE, }, ] - Try a different prompt approach — sometimes asking for factual information instead of opinions helps
Regional Availability & Restrictions
Gemini availability varies by region due to regulatory requirements:
Fully Available Regions
- United States
- United Kingdom
- European Union (most countries)
- Japan, South Korea, Singapore
- Australia, New Zealand
- Canada
Restricted or Limited Access
- China (not available)
- Russia (not available)
- Some Middle Eastern countries (limited)
Check if your region is supported:
curl "https://generativelanguage.googleapis.com/v1beta/models?key=YOUR_API_KEY" \
-H "X-Goog-User-Project: YOUR_PROJECT_ID"
If you get a 403 error, your region may be restricted.
Workaround (use with caution):
- Use Vertex AI with a region selector
- Deploy from an allowed region
- Do not use VPNs for the web app — violates Terms of Service
Quick Troubleshooting Checklist
For Gemini Web App (gemini.google.com)
- Refresh page (hard refresh: Ctrl+Shift+R or Cmd+Shift+R)
- Clear browser cookies for gemini.google.com
- Try incognito/private mode
- Switch browsers (Chrome → Firefox → Safari)
- Disable browser extensions (especially ad blockers)
- Check internet connection
- Try different Google account
- Wait 10 minutes and retry (if "at capacity" error)
For Gemini API
- Verify API key is correct (check for typos)
- Confirm API is enabled in Google Cloud Console
- Check rate limits (RPM, TPM, RPD)
- Review recent request volume
- Test with a minimal example (see curl command above)
- Check status.cloud.google.com for outages
- Verify JSON structure is valid
- Try different region endpoint (Vertex AI)
- Check billing is enabled (for paid tier)
- Review error logs for specific error codes
Historical Gemini Outages
Understanding past outages helps predict future issues:
Major Incidents
December 2024 — Global API Outage (4h 20m)
- Cause: Backend infrastructure update caused cascading failures
- Impact: 503 errors globally, both web app and API affected
- Resolution: Rollback to previous version, gradual recovery
- Lesson: Always have fallback AI provider ready
February 2024 — Rate Limiting Issues (2h)
- Cause: Quota enforcement bug incorrectly throttled legitimate requests
- Impact: 429 errors for users well below quota limits
- Resolution: Hotfix deployed, quotas temporarily increased
- Lesson: Monitor actual usage vs. quota, log all 429 responses
Launch Day (Dec 13, 2023) — Capacity Issues (intermittent)
- Cause: Massive demand spike after public launch
- Impact: "At capacity" messages for web app users
- Resolution: Infrastructure scaled over 48 hours
- Lesson: Expect capacity issues after major product launches
Common Outage Patterns
Peak usage times (higher outage risk):
- Weekdays 9 AM - 5 PM PST (US work hours)
- First week after new model releases
- During Google I/O and major announcements
Typical outage duration:
- Minor issues: 15-45 minutes
- Major outages: 2-6 hours
- API-only issues: Often resolved faster than web app issues
Gemini Alternatives When It's Down
Don't let a Gemini outage stop your work. Here are battle-tested alternatives:
For General Chat & Web Use
| Service | Free Tier | Strengths |
|---|---|---|
| Claude | Yes | Longer context (200K), better reasoning |
| ChatGPT | Yes | Most versatile, strong coding skills |
| Perplexity | Yes | Real-time web search, citations |
| Copilot | Yes | Bing integration, image generation |
For Developers (API Alternatives)
| Provider | Model | Context Length | Strength |
|---|---|---|---|
| Anthropic | Claude 3.5 Sonnet | 200K tokens | Long documents, analysis |
| OpenAI | GPT-4 Turbo | 128K tokens | Most capable, best ecosystem |
| Groq | Llama 3.1 70B | 8K tokens | Ultra-fast inference (800 tok/s) |
| Together AI | Various OSS | Varies | Open source, customizable |
API Fallback Pattern
Production-ready failover:
const AI_PROVIDERS = [
{ name: 'gemini', call: callGemini },
{ name: 'claude', call: callClaude },
{ name: 'openai', call: callOpenAI },
];
async function getAIResponse(prompt) {
for (const provider of AI_PROVIDERS) {
try {
console.log(`Trying ${provider.name}...`);
const response = await provider.call(prompt);
return response;
} catch (error) {
console.error(`${provider.name} failed:`, error.message);
if (provider === AI_PROVIDERS[AI_PROVIDERS.length - 1]) {
throw new Error('All AI providers failed');
}
// Continue to next provider
}
}
}
Key principle: Never rely on a single AI provider. Gemini, Claude, and GPT-4 all have different outage patterns—when one is down, others are usually fine.
For Developers: Monitoring Gemini Programmatically
RSS Feed for Outage Alerts
Subscribe to Gemini status updates via RSS:
https://apistatuscheck.com/feed/gemini
Add to your feed reader or use it to trigger automated workflows.
Webhook Alerts
Get instant notifications in Slack, Discord, or custom endpoints:
- Sign up at apistatuscheck.com
- Configure webhook URL
- Choose services to monitor (Gemini API, Gemini Web)
- Receive alerts within 60 seconds of detected issues
Status Badge for Documentation
Embed Gemini status in your README or docs:

Health Check Script
Monitor Gemini API availability from your own infrastructure:
import requests
import time
def check_gemini_health():
try:
response = requests.post(
"https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent",
params={"key": YOUR_API_KEY},
json={"contents": [{"parts": [{"text": "test"}]}]},
timeout=10
)
if response.status_code == 200:
return {"status": "operational", "latency": response.elapsed.total_seconds()}
elif response.status_code == 429:
return {"status": "rate_limited", "error": "quota exceeded"}
elif response.status_code in [500, 503]:
return {"status": "down", "error": "service unavailable"}
else:
return {"status": "degraded", "code": response.status_code}
except requests.exceptions.Timeout:
return {"status": "timeout", "error": "request timed out"}
except Exception as e:
return {"status": "error", "error": str(e)}
# Run every 5 minutes
while True:
health = check_gemini_health()
print(f"[{time.strftime('%Y-%m-%d %H:%M:%S')}] Gemini status: {health}")
if health['status'] != 'operational':
# Trigger alert (send to Slack, PagerDuty, etc.)
send_alert(f"Gemini {health['status']}: {health.get('error', 'unknown')}")
time.sleep(300) # 5 minutes
Quota Management Best Practices
Avoid hitting rate limits with smart quota management:
1. Track Usage in Real-Time
class GeminiClient {
constructor(apiKey) {
this.apiKey = apiKey;
this.requestCount = 0;
this.lastReset = Date.now();
}
async generateContent(prompt) {
// Reset counter every minute
if (Date.now() - this.lastReset > 60000) {
this.requestCount = 0;
this.lastReset = Date.now();
}
// Check if approaching limit (15 RPM for free tier)
if (this.requestCount >= 14) {
const waitTime = 60000 - (Date.now() - this.lastReset);
console.log(`Approaching rate limit, waiting ${waitTime}ms`);
await new Promise(resolve => setTimeout(resolve, waitTime));
this.requestCount = 0;
this.lastReset = Date.now();
}
this.requestCount++;
return await this.callAPI(prompt);
}
}
2. Implement Request Queuing
class RequestQueue {
constructor(maxRPM = 15) {
this.queue = [];
this.processing = false;
this.maxRPM = maxRPM;
}
async add(request) {
return new Promise((resolve, reject) => {
this.queue.push({ request, resolve, reject });
this.process();
});
}
async process() {
if (this.processing || this.queue.length === 0) return;
this.processing = true;
const delayBetweenRequests = 60000 / this.maxRPM; // ms between requests
while (this.queue.length > 0) {
const { request, resolve, reject } = this.queue.shift();
try {
const result = await request();
resolve(result);
} catch (error) {
reject(error);
}
if (this.queue.length > 0) {
await new Promise(resolve => setTimeout(resolve, delayBetweenRequests));
}
}
this.processing = false;
}
}
3. Monitor Daily Quota
# Track daily request count
echo "$(date +%Y-%m-%d): $REQUEST_COUNT requests" >> gemini_usage.log
# Alert if approaching 1,500 daily limit
if [ $REQUEST_COUNT -gt 1400 ]; then
echo "WARNING: Approaching daily quota (${REQUEST_COUNT}/1500)"
fi
FAQ
Can Gemini web app be down while the API works fine?
Yes. Google's Gemini web app (gemini.google.com) and the developer API (ai.google.dev) run on separate infrastructure. The web app can experience capacity issues ("Gemini is at capacity") while the API remains fully operational, and vice versa. During the December 2024 outage, both were affected, but in most minor incidents, only one surface has issues. Always check the specific component you're using.
Why do I get 429 errors even though I haven't sent many requests?
The Gemini API free tier has three limits that all must be respected: 15 requests per minute (RPM), 1 million tokens per minute (TPM), and 1,500 requests per day (RPD). You might be hitting the TPM limit if you're sending very long prompts or requesting long responses, even with fewer than 15 requests. Check your token usage—a single conversation with 20K tokens per exchange would hit the TPM limit in just 50 requests per minute. Solution: Track token usage, implement token counting before sending, or upgrade to pay-as-you-go for 10M TPM.
Is Gemini blocked in my country?
Gemini has limited availability in certain regions due to regulatory requirements. It's not available in China, Russia, or several other countries. If you're getting consistent 403 errors or region-specific blocks, check Google's official availability list or try accessing from a different region via Vertex AI's regional endpoints. Do not use VPNs for the web app—this violates Google's Terms of Service and may result in account suspension.
How do I know if it's a Gemini outage or my API key issue?
Quick test: Try the web app at gemini.google.com with a different Google account. If the web app works, it's likely your API configuration. If the web app also fails with "at capacity" or errors, it's probably a Google-side issue. For API-specific testing, use this minimal curl command with a known-good API key (create a fresh one if unsure). If curl fails with 401, it's your key. If it fails with 503, Gemini is down. If it succeeds, your application code has the bug.
Should I implement fallback to other AI providers?
Absolutely. Every production application using Gemini (or any AI API) should have a fallback strategy. In December 2024, Gemini was completely unavailable for over 4 hours—applications with fallback to Claude or GPT-4 continued working seamlessly. Implement a simple failover pattern: try Gemini first, catch 503/500/timeout errors, fall back to alternative provider. This also protects against rate limits and quota exhaustion. The cost of implementing multi-provider support (1-2 days) is far lower than the cost of downtime during an outage.
Last updated: February 2026. Status information monitored in real-time at API Status Check.
Monitor Your APIs
Check the real-time status of 100+ popular APIs used by developers.
View API Status →