Api.Airforce
FEHLERBEHEBUNG

Bevor du einen Bug meldest

Die meisten "Bugs" sind Konfigurationsprobleme, die du in 60 Sekunden beheben kannst — geh diese Checkliste zuerst durch.

Wenn etwas nicht funktioniert, ist der schnellste Weg herauszufinden, ob das Problem auf deiner oder unserer Seite liegt, dieselbe Anfrage mit einem anderen Tool auszuführen.

Etwa 9 von 10 Meldungen "API kaputt" entpuppen sich als falsch konfigurierte Basis-URL, ein abgelaufener API-Key, ein falscher Modellname oder ein Request-Body-Format aus einem Tutorial, das drei SDK-Versionen veraltet ist.

Schnell-Selbsttest

Kopiere diesen curl-Befehl in ein Terminal. Ersetze YOUR_KEY durch deinen API-Key aus dem Dashboard und führe ihn aus. Wenn du eine normale Antwort erhältst, sind dein API-Key, das Netzwerk und unser Backend in Ordnung — alles Fehlerhafte liegt dann in deinem Client-Code oder deiner Umgebung.

cURL

curl https://api.airforce/v1/chat/completions \
  -H "Authorization: Bearer sk-air-YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4.1-mini",
    "messages": [{"role": "user", "content": "ping"}]
  }'
ℹ️
Schnell-Selbsttest: Kein Terminal zur Hand? Füge dasselbe Modell und denselben Prompt im Playground des Dashboards ein — gleicher Effekt, kein Setup.

Schritt-für-Schritt-Checkliste

Ist dein API-Key gültig?

Öffne Dashboard → API Keys und bestätige, dass der Key mit dem übereinstimmt, den dein Code verwendet. Eine häufige Falle ist ein Leerzeichen vor dem Präfix "sk-air-", das beim Kopieren entstanden ist.

Symptom: 401 Unauthorized.

Ist die Basis-URL korrekt?

Die Basis-URL muss https://api.airforce/v1 sein — nicht http, und das Suffix /v1 ist erforderlich. Tutorials, die vor OpenAIs v1-Pfad entstanden sind, lassen ihn manchmal weg.

Symptom: 404 Not Found oder curl hängt.

Ist der Modellname korrekt geschrieben?

Modell-IDs sind case-sensitiv. Besuche die Models-Seite oder rufe GET /v1/models auf, um die genaue ID zu bestätigen. Ein Tippfehler oder ein veraltetes Modell gibt einen klaren Fehler zurück statt "funktioniert, aber falsch".

Symptom: 400 unknown_model oder 404 model_not_found.

Hat der Request-Body die richtige Form?

Chat-Completions verwenden ein messages-Array. Bilder verwenden prompt + n. Audio-TTS verwendet input + voice. Einen chat-förmigen Body an /v1/images/generations zu senden gibt 400 zurück — leicht zu übersehen, wenn man Snippets zwischen Docs kopiert.

Symptom: 400 mit dem betroffenen Feld im Response-Body.

Hast du ein Rate-Limit oder Kontingent erreicht?

429 = zu viele Anfragen in dieser Minute. 402 = dein Plan oder dein Guthaben ist erschöpft. Beides ist im Dashboard ersichtlich. Free-Tier-Anfragen haben separate Limits gegenüber bezahlten Plänen — ein kostenpflichtiges Modell kann problemlos antworten, während ein kostenloses ein Rate-Limit hat.

Symptom: 429 Too Many Requests oder 402 Payment Required.

Ist das Modell gerade verfügbar?

Prüfe die Models-Seite — Provider-Ausfälle werden als "degraded" oder "major outage" angezeigt. Wenn ein Modell ausgefallen ist, während andere funktionieren, handelt es sich um ein provider-seitiges Problem, das wir umrouten — kein Client-Fehler.

Symptom: Ein bestimmtes Modell gibt 5xx zurück, während andere funktionieren.

Was HTTP-Statuscodes bedeuten

Jede Fehlerantwort enthält einen Standard-HTTP-Statuscode. Zu wissen, was jeder Code aussagt, spart ein Ticket.

400Deine SeiteBad Request — fehlerhaftes JSON, fehlendes Pflichtfeld, unbekannter Parameter. Korrigiere den Request-Body.
401Deine SeiteUnauthorized — fehlender oder ungültiger API-Key. Prüfe, ob der Authorization-Header das Präfix "Bearer " enthält.
402Deine SeitePayment Required — Plan erschöpft oder Pay-as-you-go-Guthaben leer. Abonnement abschließen oder aufladen.
403Deine SeiteForbidden — dein Plan oder die Berechtigung des Keys erlaubt dieses Modell oder diesen Endpunkt nicht.
404Deine SeiteNot Found — unbekannter Endpunkt oder Modell-ID. Prüfe den URL-Pfad und die Schreibweise des Modells.
413Deine SeitePayload Too Large — Eingabe überschreitet das Kontextfenster des Modells. Kürze den Prompt.
429Deine SeiteToo Many Requests — Rate-Limit erreicht (RPM, RPD oder tägliches Token-Kontingent). Langsamer machen oder upgraden.
500Unsere SeiteInternal Server Error — ein Bug auf unserer Seite. Melde es, wenn es länger als eine Minute anhält.
502Unsere SeiteBad Gateway — Backend wird gerade neu gestartet (wir deployen mehrmals täglich). 5–10 Sekunden warten und erneut versuchen.
503Unsere SeiteService Unavailable — alle Upstream-Provider für dieses Modell sind gleichzeitig ausgefallen. Melde es, wenn es länger als ein paar Minuten anhält.
💡
Faustregel: 4xx-Codes bedeuten, dass dein Client etwas getan hat, das der Server abgelehnt hat. 5xx-Codes bedeuten, dass wir eine gültige Anfrage nicht verarbeiten konnten. Der JSON-Fehlerbody in der Antwort nennt in der Regel das Feld, das die Prüfung ausgelöst hat.

Wann es wirklich ein Bug ist

Wenn der curl-Selbsttest oben funktioniert, aber dieselbe Anfrage aus deinem Code nicht, liegt das Problem in deinem Client (oder der Bibliothek, die er verwendet). Wenn der Selbsttest selbst mit einem 5xx schlägt fehl oder ein 4xx mit einer Meldung zurückgibt, die nicht zu deiner Anfrage passt, ist das meldungswürdig.

Effektiv melden

Öffne ein Support-Ticket über das Dashboard oder poste im #support auf Discord. Füge Folgendes bei:

  • Den vollständigen HTTP-Statuscode und den Response-Body (ggf. auch den cf-ray-Response-Header).
  • Ungefähren Zeitstempel in UTC.
  • Modellname und welchen Endpunkt du aufgerufen hast.
  • Ein minimales cURL, das das Problem reproduziert (echten API-Key maskieren!).
  • Ob der Selbsttest oben mit demselben Key bei dir funktioniert.
ℹ️
Effektiv melden: Tickets, die diese Details enthalten, erhalten beim ersten Versuch eine echte Antwort. Tickets ohne diese Angaben benötigen fast immer mehrere Rückfragen, bevor wir helfen können.

Im #support auf Discord fragen

Probleme beim Einrichten oder einen kostenlosen Key gesucht? Frag die Community auf unserem Discord.

Tritt unserem Discord bei