HappyHorse 1.0 ist jetzt liveJetzt ausprobieren
OpenRouter 429 "Provider Returned Error" beheben: Rate Limits, Upstream-Anbieter und Fallback-Optionen
guide

OpenRouter 429 "Provider Returned Error" beheben: Rate Limits, Upstream-Anbieter und Fallback-Optionen

EvoLink Team
EvoLink Team
Product Team
13. Mai 2026
9 Min. Lesezeit
Wenn Ihre OpenRouter-Anfragen mit 429 oder "provider returned error" fehlschlagen, hängt die Lösung davon ab, wo der Fehler tatsächlich entsteht.

Diese beiden Fehler sehen in Ihren Logs aehnlich aus, haben aber unterschiedliche Ursachen:

  • 429 Too Many Requests: Ihre Anfrage wurde abgelehnt, weil ein Rate Limit erreicht wurde
  • Provider returned error: OpenRouter hat Ihre Anfrage angenommen, aber der Upstream-Modellanbieter (OpenAI, Anthropic, Google usw.) hat einen Fehler zurückgegeben

Wenn Sie die beiden verwechseln, wenden Sie die falschen Korrekturen an. Dieser Leitfaden hilft Ihnen, die Ursache zu isolieren und die richtige Massnahme zu waehlen.

Zusammenfassung

  • Ein 429 von OpenRouter selbst bedeutet, dass Sie das Rate Limit oder Kontingent von OpenRouter erreicht haben.
  • Ein "provider returned error" bedeutet, dass der Upstream-Anbieter die Anfrage abgelehnt hat -- nicht OpenRouter.
  • Pruefen Sie Response-Header und Fehlerinhalt, um die beiden zu unterscheiden.
  • Die Lösung ist unterschiedlich: OpenRouter-429 erfordert Key-/Tier-Änderungen; Provider-Fehler erfordern Upstream-Diagnose oder Routenaenderungen.
  • Für produktive Workloads sollten Sie Fallbacks einrichten, bevor der Fehler auftritt.

Schritt 1: Die Fehlerantwort sorgfaeltig lesen

Wenn Sie einen Fehler erhalten, achten Sie auf diese drei Dinge:

SignalWo Sie es findenWas es Ihnen sagt
HTTP-StatuscodeResponse-Status429 = Rate Limit; 502/503 = Upstream-Ausfall
Fehlertexterror.message in der JSON-AntwortOft steht dort "provider returned error" oder eine spezifische Rate-Limit-Meldung
Response-Headerx-ratelimit-remaining, retry-afterOb OpenRouter selbst Sie drosselt

Ein typischer OpenRouter-429 sieht so aus:

{
  "error": {
    "code": 429,
    "message": "Rate limit exceeded. Please slow down."
  }
}

Ein typischer Provider-Fehler sieht anders aus:

{
  "error": {
    "code": 502,
    "message": "Provider returned error: [upstream error details]"
  }
}

Die Unterscheidung ist wichtig, weil unterschiedliche Korrekturen erforderlich sind.

Schritt 2: Die Fehlerquelle identifizieren

Verwenden Sie diesen Entscheidungsbaum:

Anfrage fehlgeschlagen
├── HTTP 429 + OpenRouter-Rate-Limit-Meldung
│   → Ursache: Rate Limit auf OpenRouter-Ebene
│   → Lösung: Anfragerate senken, Tier upgraden oder Verzoegerung einfuegen
│
├── HTTP 429 + "provider returned error" in der Meldung
│   → Ursache: Upstream-Provider-Rate-Limit weitergereicht
│   → Lösung: Provider-Kontingent pruefen, Modell wechseln oder Fallback-Route hinzufuegen
│
├── HTTP 502/503 + "provider returned error"
│   → Ursache: Upstream-Provider-Ausfall oder voruebergehender Fehler
│   → Lösung: Mit Backoff wiederholen, Anbieter wechseln oder Fallback nutzen
│
└── HTTP 400/401 + Fehlermeldung
    → Ursache: Ungueltige Anfrage, ungueltiger Key oder Modell nicht gefunden
    → Lösung: API-Key, Modell-ID und Anfrageformat pruefen

Schritt 3: OpenRouter-eigene 429-Fehler beheben

Wenn der 429-Fehler von OpenRouter selbst kommt (nicht vom Provider weitergeleitet), pruefen Sie der Reihe nach:

3.1 Aktuelles Rate-Limit-Tier pruefen

OpenRouter wendet Rate Limits basierend auf Ihrem Konto-Tier an. Nutzer im kostenlosen Tier haben deutlich niedrigere Limits als zahlende Nutzer.

Massnahme: Pruefen Sie Ihr OpenRouter-Dashboard auf aktuelle Limits und Nutzung.

3.2 Anfragerate reduzieren

Wenn Sie Anfragen schneller senden, als Ihr Tier erlaubt:

import asyncio
import random

async def call_with_backoff(make_request, max_retries=5):
    for attempt in range(max_retries):
        try:
            return await make_request()
        except Exception as e:
            if "429" in str(e) and attempt < max_retries - 1:
                # Respect retry-after if present, otherwise use jittered backoff
                delay = min(30, (2 ** attempt) + random.random())
                await asyncio.sleep(delay)
            else:
                raise

3.3 Traffic über die Zeit verteilen

Agent-Workloads erzeugen häufig Burst-Muster. Statt 50 Anfragen gleichzeitig zu senden:

  • Verwenden Sie ein Semaphor, um die Parallelitaet zu begrenzen
  • Fuegen Sie eine kleine Verzoegerung zwischen Batches ein
  • Trennen Sie Vordergrund- und Hintergrund-Warteschlangen

Schritt 4: Upstream-Provider-Fehler beheben

Wenn die Fehlermeldung "provider returned error" enthaelt, liegt das Problem beim Upstream-Anbieter. OpenRouter hat Ihre Anfrage weitergeleitet, aber der Modellanbieter hat sie abgelehnt.

4.1 Haeufige Upstream-Ursachen

Upstream-UrsacheWas Sie sehenWie Sie es verifizieren
Provider-Rate-LimitDurchgereichter 429Pruefen Sie, ob dasselbe Modell mit niedrigerer Anfragerate funktioniert
Provider-AusfallDurchgereichter 502/503Pruefen Sie die Status-Seite des Anbieters (z. B. status.openai.com)
Modell veraltet oder nicht verfuegbar404 oder Modell nicht gefundenPruefen Sie, ob die Modell-ID noch in der OpenRouter-Modellliste gueltig ist
Regionale Beschraenkung403 oder Zugriff verweigertEinige Anbieter beschraenken den Zugang nach Geografie
Eingabe zu gross400 mit Kontext-/Token-MeldungPruefen Sie, ob Ihre Eingabe das Kontextfenster des Modells ueberschreitet

4.2 Zu einer anderen Provider-Route wechseln

OpenRouter leitet Anfragen an Upstream-Anbieter weiter. Wenn ein Anbieter Sie drosselt, koennte dasselbe Modell über einen anderen Anbieter-Pfad verfuegbar sein.

Pruefen Sie, ob:

  • Das Modell mehrere Provider-Optionen auf OpenRouter hat
  • Sie Provider-Praeferenzen in Ihrer Anfrage konfigurieren können
  • Ein Fallback-Modell mit aehnlichen Faehigkeiten verfuegbar ist

4.3 Retry-Logik hinzufuegen, die Fehlertypen unterscheidet

Wiederholen Sie nicht alle Fehler auf die gleiche Weise:

async def smart_retry(make_request, max_retries=3):
    for attempt in range(max_retries):
        try:
            return await make_request()
        except Exception as e:
            error_msg = str(e)

            # Do NOT retry: bad request, auth error, model not found
            if any(code in error_msg for code in ["400", "401", "404"]):
                raise

            # Retry with backoff: rate limit or provider error
            if any(code in error_msg for code in ["429", "502", "503"]):
                delay = min(30, (2 ** attempt) + random.uniform(0, 1))
                await asyncio.sleep(delay)
            else:
                raise

Schritt 5: Fallback im Voraus planen

In der Produktion ist die Frage nicht, ob Upstream-Fehler auftreten werden -- sondern ob Ihr System dabei kontrolliert degradiert oder abstuerzt.

Fallback-Checkliste

Fallback-EbeneWas zu implementieren istWarum
Retry mit BackoffExponentielles Backoff mit Jitter unter Beachtung von retry-afterBehandelt voruebergehende Fehler, ohne die Last zu verstaerken
Modell-FallbackBei Ausfall des primaeren Modells auf eine leistungsfaehige Alternative umleitenHaelt den Workflow am Laufen, wenn ein Modellpfad ausfaellt
Anbieter-FallbackWenn ein Anbieter Fehler liefert, eine andere Route versuchenReduziert die Abhaengigkeit von einem einzelnen Anbieter
Warteschlange + Circuit BreakerStoppen des Sendens an einen fehlgeschlagenen Pfad nach N aufeinanderfolgenden FehlernVerhindert Retry-Stuerme, die das Problem verschlimmern
Kontrollierte DegradierungKleinerer Kontext, guenstigeres Modell oder zwischengespeicherte AntwortBesser als ein harter Ausfall für den Endnutzer

Wann ein einheitliches API-Gateway sinnvoll ist

Wenn Sie Fallback-Logik auf OpenRouter aufbauen, um Upstream-Ausfaelle zu behandeln, bauen Sie im Grunde eine Routing-Schicht auf einer Routing-Schicht auf.

An diesem Punkt kann es einfacher sein, ein Gateway zu verwenden, das Provider-Routing, Fallback und Modellauswahl als eingebaute Funktion bietet -- statt dies im Anwendungscode zu loesen.

EvoLink's Smart Router erledigt das auf Gateway-Ebene:
  • Automatisches Routing über verschiedene Anbieter
  • Gibt das tatsächlich verwendete Modell in der Antwort zurück
  • OpenAI-kompatibles Anfrageformat -- kein Umschreiben von Code noetig
  • Keine separate Routing-Gebuehr
curl https://api.evolink.ai/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "evolink/auto",
    "messages": [
      {"role": "user", "content": "Your prompt here"}
    ]
  }'

Das ersetzt nicht die Notwendigkeit von clientseitiger Retry-Logik, verlagert aber die Anbieterauswahl und das Fallback-Management aus Ihrem Anwendungscode.

Fehlerursachen-Baum (Referenz)

OpenRouter-Anfrage fehlgeschlagen
│
├── 429 von OpenRouter
│   ├── Limit des kostenlosen Tiers → Konto upgraden
│   ├── Burst-Traffic → Parallelitaetssteuerung hinzufuegen
│   └── Dauerhaft hohes Volumen → Tier-Limits pruefen
│
├── "Provider returned error"
│   ├── Upstream 429
│   │   ├── Provider-Rate-Limit → Rate senken oder Anbieter wechseln
│   │   └── Geteiltes Kontingent erschoepft → Org-Level-Limits pruefen
│   ├── Upstream 502/503
│   │   ├── Provider-Ausfall → Status-Seite pruefen, warten oder wechseln
│   │   └── Voruebergehender Fehler → mit Backoff wiederholen
│   └── Upstream 400
│       ├── Kontext zu lang → kuerzen oder Modell wechseln
│       ├── Ungueltige Parameter → API-Dokumentation pruefen
│       └── Modell veraltet → Modell-ID überpruefen
│
└── Andere Fehler
    ├── 401 → ungueltiger API-Key
    ├── 404 → Modell nicht gefunden
    └── Netzwerkfehler → Verbindung pruefen

Naechste Schritte

  1. Aktuellen Fehler pruefen: Verwenden Sie Schritt 2, um festzustellen, ob es sich um einen OpenRouter-429 oder einen Provider-Fehler handelt.
  2. Gezielte Korrektur anwenden: Wenden Sie keine Rate-Limit-Korrekturen auf Provider-Fehler an und umgekehrt.
  3. Strukturierte Retry-Logik hinzufuegen: Unterscheiden Sie im Code zwischen wiederholbaren und nicht wiederholbaren Fehlern.
  4. Fallback vorab planen: Produktionssysteme sollten niemals von einem einzelnen Upstream-Pfad abhaengen.

Verwandte Artikel

Explore EvoLink Smart Router

FAQ

Was bedeutet "provider returned error" bei OpenRouter?

Es bedeutet, dass OpenRouter Ihre Anfrage empfangen und an den Upstream-Modellanbieter weitergeleitet hat, dieser jedoch einen Fehler zurückgegeben hat. Der Fehler stammt nicht von OpenRouter selbst, sondern von OpenAI, Anthropic, Google oder dem jeweiligen Anbieter, der das Modell bereitstellt.

Ist ein 429 von OpenRouter dasselbe wie ein 429 vom Upstream-Anbieter?

Nein. Ein OpenRouter-eigener 429 bedeutet, dass Sie die Rate Limits von OpenRouter selbst erreicht haben. Ein als "provider returned error" weitergeleiteter Provider-429 bedeutet, dass der Upstream-Anbieter die Anfrage abgelehnt hat. Die Lösungen sind unterschiedlich.

Sollte ich bei "provider returned error" einen Retry durchfuehren?

Das hängt vom Fehlertyp ab. Wenn der Upstream-Anbieter 502/503 (voruebergehender Fehler) zurückgegeben hat, ist ein Retry mit Backoff sinnvoll. Wenn er 400 (ungueltige Anfrage) oder 404 (Modell nicht gefunden) zurückgegeben hat, hilft Wiederholen nicht -- beheben Sie stattdessen die Anfrage.

Wie finde ich heraus, ob das Problem mein API-Key, mein Kontingent oder der Anbieter ist?

Pruefen Sie in dieser Reihenfolge: (1) Ist Ihr API-Key gueltig? Versuchen Sie eine einfache Testanfrage. (2) Pruefen Sie Ihr OpenRouter-Dashboard auf Kontingent- und Rate-Limit-Nutzung. (3) Wenn Key und Kontingent in Ordnung sind, liegt der Fehler wahrscheinlich beim Upstream-Anbieter -- pruefen Sie die Fehlermeldung auf Details.

Kann ein einheitliches API-Gateway Provider-Fehler eliminieren?

Kein Gateway kann verhindern, dass Upstream-Anbieter ausfallen. Aber ein Gateway mit integriertem Routing und Fallback kann automatisch zu einem alternativen Anbieter oder Modell wechseln, wenn ein Pfad ausfaellt, und so die Auswirkungen auf Ihre Anwendung reduzieren.

Wann sollte ich von OpenRouter zu einer anderen Routing-Lösung wechseln?

Ziehen Sie einen Wechsel in Betracht, wenn: (1) Provider-Fehler ein wiederkehrendes Produktionsproblem sind, (2) Sie Fallback-Logik benoetigen, die OpenRouter nicht bietet, (3) Ihr Workload mehrere Modalitaeten umfasst (Text + Bild + Video) oder (4) Sie Routing-Entscheidungen auf Gateway-Ebene statt im Anwendungscode verwalten moechten.

Bereit, Ihre KI-Kosten um 89 % zu senken?

Starten Sie noch heute mit EvoLink und erleben Sie die Vorteile intelligenter API-Routing.