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:

Google AI Forum:

  • discuss.ai.google.dev — developer community discussions
  • Often has early warnings about quota changes or regional issues

Downdetector:

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:

  1. Check your current usage:

    curl "https://generativelanguage.googleapis.com/v1beta/models?key=YOUR_API_KEY"
    

    Look at rate limit headers in response

  2. 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;
          }
        }
      }
    }
    
  3. Batch requests — combine multiple prompts into one request when possible

  4. Upgrade to paid tier if you need higher limits:

Error 503: Service Unavailable

What it means:
Google's Gemini servers are temporarily overloaded or experiencing issues. This is an actual outage.

Fix:

  1. Wait and retry — Most 503 errors resolve within 5-15 minutes
  2. Check status.cloud.google.com to confirm it's a known issue
  3. 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"}
    )
    
  4. 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:

  1. Verify API key format:

    # Should look like: AIzaSyA...
    echo $GOOGLE_AI_API_KEY
    
  2. Generate a new API key:

  3. Check API is enabled:

  4. 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:

  1. Wait 5-10 minutes and refresh
  2. Try a different Google account (if you have multiple)
  3. Use the API instead — has separate capacity and rarely shows this error
  4. 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:

  1. Check safety settings:

    const safetySettings = [
      {
        category: HarmCategory.HARM_CATEGORY_HARASSMENT,
        threshold: HarmBlockThreshold.BLOCK_ONLY_HIGH,
      },
      // Add other categories as needed
    ];
    
  2. Verify model name:

    • Use gemini-pro (text) or gemini-pro-vision (multimodal)
    • Not gemini-1.5-pro (that's for Vertex AI)
  3. Check context length:

    • Gemini Pro: 32,768 tokens
    • Gemini 1.5 Pro: 1,000,000 tokens (Vertex AI only)
  4. 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:

  1. Rephrase your prompt to be more specific and neutral
  2. Lower safety thresholds (use with caution):
    safetySettings: [
      {
        category: HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT,
        threshold: HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE,
      },
    ]
    
  3. 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:

  1. Sign up at apistatuscheck.com
  2. Configure webhook URL
  3. Choose services to monitor (Gemini API, Gemini Web)
  4. Receive alerts within 60 seconds of detected issues

Status Badge for Documentation

Embed Gemini status in your README or docs:

![Gemini Status](https://apistatuscheck.com/api/badges/gemini)

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 →