Fehlerbehebung und Wiederherstellung
Finden Sie Ihr Symptom, erfahren Sie, warum es auftritt und was zu tun ist – Zahlungen, 401 und 403, Guthaben und Limits, nicht verfügbare Modelle, fehlgeschlagene oder hängende Tasks, Uploads, Callbacks und Streams.
Jeder Abschnitt unten beginnt mit dem, was Sie sehen, erklärt die übliche Ursache und sagt Ihnen, was zu tun ist. Die vollständige Bedeutung jeder Fehlernummer steht unter Fehler; diese Seite beantwortet die Frage „Und was jetzt?“.
Ihr Problem finden
| Was Sie sehen | Weiter zu |
|---|---|
| Ich habe bezahlt, aber mein Guthaben hat sich nicht geändert | Bezahlt, aber das Guthaben hat sich nicht geändert |
Jeder Aufruf liefert 401 oder 403 | Jeder Aufruf liefert 401 oder 403 |
40201 oder 40202, oder 429 | Guthaben, Limits und Support |
Ein Modell fehlt, oder Sie erhalten 50301 oder 40004 | Modell fehlt oder ist nicht verfügbar |
400 oder 40901 beim Anlegen eines Tasks | Ungültige Eingabe oder Konflikt mit der Kostenschätzung |
| Die Anfrage lief in ein Timeout, und Sie haben keine Task-ID | Timeout beim Absenden, keine Task-ID |
Der Task endete mit failed | Der Task ist fehlgeschlagen |
Der Task bleibt lange in queued oder running | Der Task bleibt in queued oder running |
| Ein Upload hat geklappt, aber der Task lehnt die Datei ab | Upload erfolgreich, aber die Eingabe wird abgelehnt |
| Kein Callback kam an, oder Ergebnislink bzw. Datei sind weg | Callback fehlt oder Download abgelaufen |
| Ein Textstream bricht vor dem Ende ab | Stream endet vorzeitig |
| Im Team können Sie keinen Schlüssel anlegen, keine Prompts sehen oder keine Einladung annehmen | Berechtigungen im Team |
| Sie können keine Rechnung ausstellen | Rechnung lässt sich nicht ausstellen |
| Eine Antwort ist gar kein JSON | Nützliche Belege sichern |
Nützliche Belege sichern
Schreiben Sie auf, was passiert ist, bevor Sie irgendetwas ändern. Das beschleunigt jeden der folgenden Schritte, und genau das braucht der Support:
- Die Uhrzeit, wenn möglich in UTC.
- Den Endpunkt, den Sie aufgerufen haben, zum Beispiel
POST /api/v1/jobs/createTask. - Den HTTP-Status und den
codeaus dem Antwort-Body. - Die
request_id: Sie steht im Antwort-Body und im Antwort-HeaderX-Request-Id. - Die Task-ID, falls Sie eine erhalten haben. Sie beginnt mit
job_und steht außerdem in der Konsole auf der Seite Logs.
Halten Sie drei Situationen auseinander, denn sie verlangen unterschiedliches Vorgehen: Die API hat die Anfrage ausdrücklich abgelehnt (Sie haben einen JSON-Fehler erhalten; es wurde nichts angelegt und nichts berechnet), Sie haben überhaupt keine Antwort erhalten (ein Timeout oder eine abgebrochene Verbindung; der Task kann existieren, siehe unten), oder der Task wurde angenommen und ist später fehlgeschlagen (Sie haben eine Task-ID mit state: "failed").
Ist eine Antwort kein JSON, zum Beispiel eine HTML- oder Textseite, stammt sie aus unserem Edge-Netzwerk und hat die API nie erreicht. Notieren Sie den HTTP-Status und die ersten Zeilen des Bodys. Eine 403-Seite dieser Art bedeutet meist, dass die Anfrage aus einer Region kommt, die wir nicht bedienen können; ein erneuter Versuch ändert daran nichts.
Schreiben Sie niemals API-Schlüssel, Passwörter, vollständige Prompts oder Originaldateien in allgemeine Logs oder Supportanfragen.
Bezahlt, aber das Guthaben hat sich nicht geändert
- Karte: Das Guthaben ändert sich erst, wenn die Bestätigung des Zahlungsdienstleisters bei uns eingeht, meist innerhalb von Sekunden. Laden Sie Abrechnung neu und sehen Sie unter Aufladungen nach.
- Krypto: Das Guthaben wird gutgeschrieben, sobald das Netzwerk die Transaktion bestätigt hat, meist nach wenigen Minuten. Wer weniger als den angezeigten Betrag zahlt oder erst nach Ablauf der Bezahlseite zahlt, erhält keine automatische Gutschrift.
- Manuelle Überweisung: Öffnen Sie den Auftrag unter Aufladungen und senden Sie Ihre Bankreferenz oder den Transaktionshash. Wir prüfen das von Hand, meist innerhalb weniger Stunden.
Die vollständige Liste der Fälle steht unter Konto einrichten → Häufige Probleme. Fehlt das Geld immer noch? Starten Sie beim Support eine Unterhaltung (Thema Abrechnung) und nennen Sie die Auftrags-ID, bei Krypto zusätzlich den Transaktionshash. Senden Sie niemals Kartennummern oder Passwörter.
Jeder Aufruf liefert 401 oder 403
Beginnen Sie mit einem Aufruf, der nichts kostet und nichts verändert: dem Abfragen Ihres Guthabens.
echo "${SPICY_API_KEY:0:9}"
curl https://api.spicyapi.ai/api/v1/chat/credit \
-H "Authorization: Bearer $SPICY_API_KEY"Die erste Zeile sollte sk-spicy- ausgeben. Gibt sie nichts aus, ist der Schlüssel in diesem Terminal nicht geladen; setzen Sie ihn erneut (siehe Konto einrichten). Lesen Sie dann das Feld msg der Antwort:
| Sie sehen | Ursache | Was zu tun ist |
|---|---|---|
401 Missing credentials: … | Bei uns ist kein Schlüssel angekommen | Der Header Authorization fehlt. Prüfen Sie, ob die Umgebungsvariable in dem Prozess gesetzt ist, der Ihren Code ausführt, und ob ein Proxy oder HTTP-Client den Header unterwegs entfernt |
401 API key format is not recognized: … | Der Wert ist kein SpicyAPI-Schlüssel | Sie haben etwas anderes eingefügt, etwa einen Anmeldewert der Konsole oder den Schlüssel eines anderen Dienstes. Kopieren Sie einen Schlüssel, der mit sk-spicy- beginnt |
401 Credentials are invalid or expired | Den Schlüssel gibt es nicht, er wurde gesperrt oder ist abgelaufen | Sehen Sie sich den Schlüssel auf der Seite API-Schlüssel an. Ein abgelaufener Schlüssel liefert dieselbe Antwort wie ein gesperrter. Legen Sie bei Bedarf einen neuen an |
40310 | Der Schlüssel ist in Ordnung, aber die E-Mail-Adresse des Kontos ist noch nicht bestätigt | Öffnen Sie den Bestätigungslink, den wir Ihnen per E-Mail geschickt haben, oder lassen Sie sich über den Hinweis in der Konsole einen neuen senden, und versuchen Sie es dann erneut. Es ist kein neuer Schlüssel nötig. Siehe Fehler |
403 This account cannot call the API right now | Der Schlüssel ist in Ordnung, aber das Konto ist eingeschränkt | Wenden Sie sich mit der request_id an den Support |
40301 | Dieser Schlüssel darf dieses Modell nicht aufrufen | Bearbeiten Sie den Schlüssel und nehmen Sie das Modell in seine erlaubten Modelle auf, oder verwenden Sie einen anderen Schlüssel |
40302 | Die Adresse Ihres Servers steht nicht auf der IP-Freigabeliste des Schlüssels | Tragen Sie die Adresse beim Schlüssel ein oder heben Sie die IP-Beschränkung auf |
40303 | Der Dienst ist in Ihrer Region nicht verfügbar | Das lässt sich nicht umgehen. Siehe Inhalte und Nutzungsverantwortung zu den Regionen, in denen wir tätig sind |
Keiner dieser Fehler verschwindet durch Wiederholen.
Guthaben, Limits und Support
40201: Das verfügbare Guthaben deckt den geschätzten Preis des Tasks nicht. Laden Sie Guthaben auf (siehe Konto einrichten) und senden Sie danach dieselbe Anfrage mit demselbenIdempotency-Keyerneut. Bonusguthaben aus einer Aktion bezahlt nur die Modelle, für die es gilt.40202: Ein Ausgabenlimit ist erreicht;msgsagt, welches. Ein Schlüssellimit (This key has reached its …) erhöhen Sie unter API-Schlüssel → Bearbeiten, oder es beginnt von selbst neu (das Tageslimit um 00:00 UTC, das Monatslimit am 1. des Monats, das Gesamtlimit nie). Eine Teamgrenze (Workspace … budget has been reached) erhöht ein Inhaber, Admin oder Budgetverwalter auf der Seite Team. Das Plattformlimit (Platform quota for today is exhausted…) lässt sich nicht erhöhen; versuchen Sie es nach 00:00 UTC erneut. Siehe Abrechnung zu den Ausgabenlimits.429: zu viele Anfragen. Warten Sie die Anzahl Sekunden ausRetry-Afterab und verlangsamen Sie; am meisten hilft es, Webhooks statt enger Polling-Schleifen zu nutzen. Lautet die MeldungToo many pending uploads…, hilft Warten nicht: Schließen Sie die bereits begonnenen Uploads ab. Siehe Rate Limits.
Den Support kontaktieren: Starten Sie in der Konsole unter Support eine Unterhaltung, oder schreiben Sie an support@spicyapi.ai. Fügen Sie die Belege von oben bei: Uhrzeit, Endpunkt, code, request_id oder Task-ID, was Sie erwartet haben und was passiert ist, sowie den Aufbau Ihrer Anfrage ohne private Werte. Senden Sie niemals einen API-Schlüssel.
Modell fehlt oder ist nicht verfügbar
- Das Modell steht nicht in Ihrer Liste, oder Sie erhalten
404: Rufen SieGET /api/v1/modelsmit Ihrem API-Schlüssel auf und verwenden Sie ein Modell, bei demenabledundavailablebeidetruesind; kopieren Sie seine ID exakt. Eine Modellseite auf der Website beweist nicht, dass Ihr Schlüssel das Modell gerade aufrufen darf. Siehe Modellkatalog und Schemas. 50301: Das Modell kann im Moment keine Tasks annehmen. Versuchen Sie es einige Male mit wachsenden Pausen erneut und hören Sie dann auf; wiederholte Anfragen machen ein nicht verfügbares Modell nicht wieder verfügbar. Laden Sie den Katalog neu, und fragen Sie die Person, die bezahlt, bevor Sie zu einem anderen Modell wechseln.40004: Das Modell funktioniert, aber nicht mit dieser Kombination von Einstellungen.msgnennt die Einstellung in Klammern. Ändern Sie diesen Wert (zum Beispiel eine Auflösung oder ein Seitenverhältnis), statt es erneut zu versuchen.40301: Das Modell existiert, aber dieser Schlüssel darf es nicht verwenden; bearbeiten Sie die erlaubten Modelle des Schlüssels.
Ungültige Eingabe oder Konflikt mit der Kostenschätzung
400: Vergleichen Sie Ihreninputmit dem aktuelleninputSchemades Modells im Katalog: Feldnamen, Typen, erlaubte Werte und bedingte Pflichtfelder. Entfernen Sie Felder, die das Modell nicht aufführt. Prüfen Sie nach einem Modellwechsel erneut, denn jedes Modell hat sein eigenes Schema.40003: Eine hochgeladene Datei passt nicht zu dem, was Sie beim Anfordern ihrer Upload-URL angegeben haben. Fordern Sie eine neue Upload-URL mit dem richtigencontentTypeund der richtigen Größe an und laden Sie erneut hoch.413: Der Anfrage-Body ist zu groß. Laden Sie Medien über den Upload-Ablauf hoch, statt sie einzubetten.40901: Die Kostenschätzung ist abgelaufen, die Anfrage hat sich nach der Schätzung geändert, oder der Preis hat sich geändert. Holen Sie eine neue Kostenschätzung ein, zeigen Sie den neuen Betrag der Person, die bezahlt, und bestätigen Sie erneut. Siehe Kostenschätzungen.- Anderer
409: Behandeln Sie ihn je nach Vorgang. Ein Idempotenzschlüssel, der bereits für einen anderen Inhalt verwendet wurde, braucht für die neue Anfrage einen neuen, korrektenIdempotency-Key, keine endlosen Wiederholungen. Siehe Fehler, wann sich ein erneuter Versuch nach409lohnt.
Timeout beim Absenden, keine Task-ID
Ein Timeout sagt Ihnen nicht, ob der Task angelegt wurde. Senden Sie die Anfrage nicht einfach mit einem neuen Idempotenzschlüssel erneut: Das kann einen zweiten Task und eine zweite Belastung erzeugen.
Genau dieselbe Anfrage erneut senden
Verwenden Sie denselben Body und denselben Idempotency-Key mit demselben API-Schlüssel, innerhalb von 24 Stunden. Wurde der erste Versuch angenommen, erhalten Sie den ursprünglichen Task zurück und zahlen einmal. Wurde er es nicht, wird der Task jetzt angelegt. Siehe Idempotenz.
Den Task lesen
Sobald Sie die Task-ID haben, rufen Sie recordInfo auf. state, cost und settled verraten Ihnen das Ergebnis.
Erst dann über ein neues Absenden entscheiden
Ist der ursprüngliche Task fehlgeschlagen, ist ein neuer Task mit einem neuen Idempotenzschlüssel eine neue Belastung zu aktuellen Preisen.
Client-Timeouts, geschlossene Browser-Tabs und abgebrochene Streams brechen einen angenommenen Task nicht ab, und ein angenommener Task lässt sich nicht abbrechen.
Der Task ist fehlgeschlagen
Bei fehlgeschlagenen oder abgelaufenen Tasks wird die Reservierung normalerweise vollständig freigegeben. Einige Inhaltsablehnungen werden zum angenommenen Angebotspreis berechnet, sofern die Modellseite diese Ausnahme ausdrücklich nennt. Prüfen Sie den endgültigen Betrag anhand von settled und cost.
- Nicht unverändert wiederholen:
invalid_request,unsupported_combination,content_rejected(das gewählte Modell hat den Inhalt abgelehnt; ändern Sie den Prompt oder das Modell). - Nach einer Pause lohnt ein neuer Versuch:
rate_limited,upstream_unavailable,upstream_failed. - Zuerst beheben:
invalid_asset(laden Sie die Datei erneut hoch),timeout(versuchen Sie eine kürzere Dauer oder eine niedrigere Auflösung),generation_failed(mit denselben Eingaben scheitert es meist auf dieselbe Weise).
errorMessage erklärt den Grund für Menschen; es kann die eigene Begründung des Modells auf Englisch sein. Verzweigen Sie in Ihrem Code ausschließlich nach errorCode. Die vollständige Tabelle der Fehlercodes von Tasks steht unter Fehler. Eine Wiederholung ist ein neuer Task und wird bei Erfolg erneut berechnet.
Der Task bleibt in queued oder running
Generieren braucht Zeit; ein langes Video kann mehrere Minuten dauern. Jeder Task hat eine serverseitige Frist, die recordInfo als deadlineAt liefert:
- Vor
deadlineAt: Warten Sie weiter auf den Callback, oder pollen SierecordInfomit wachsenden Pausen (nicht jede Sekunde). - Nach der Frist: Der Task endet von selbst mit
expiredunderrorCode: "timeout", und seine Reservierung wird vollständig zurückgegeben. Sie müssen nichts abbrechen, und angenommene Tasks lassen sich ohnehin nicht abbrechen.
Bleibt ein Task deutlich über sein deadlineAt hinaus in running, wenden Sie sich mit der Task-ID an den Support.
Upload erfolgreich, aber die Eingabe wird abgelehnt
- Sie haben die Bestätigung übersprungen. Ein erfolgreicher
PUTder Datei reicht nicht: Rufen Siefiles/{fileId}/commitauf und übergeben Sie dann die zurückgegebenespicy://-URI im Eingabefeld des Modells. Übergeben Sie niemals dieuploadUrlselbst. - Die Datei passt nicht zum Ticket. Prüfen Sie den angegebenen
Content-Type, die Größe und das Format; eine Abweichung liefert40003. - Sie ist abgelaufen. Eine hochgeladene Datei lässt sich bis zum
expiresAtaus der Commit-Antwort verwenden: standardmäßig 1 Tag, oder kürzer, wenn Ihr Konto Uploads nach Ende des Tasks löscht. Für die Wiederholung eines Tasks brauchen Sie deshalb unter Umständen einen neuen Upload. - Sie gehört zu einem anderen Konto. Eine
spicy://-URI funktioniert nur mit Schlüsseln des Kontos, das sie hochgeladen hat.
Den vollständigen Upload-Ablauf beschreibt Medien.
Callback fehlt oder Download abgelaufen
Es kam kein Callback an:
- Prüfen Sie, ob
callBackUrleinehttps://-Adresse ist, die aus dem Internet erreichbar ist. Reineshttp://wird nicht akzeptiert. - Prüfen Sie, ob Ihr Empfänger die Signatur über die ursprünglichen Bytes der Anfrage prüft, bevor er JSON parst, und schnell mit einem
2xxantwortet. Langwierige Arbeit gehört in Ihre eigene Warteschlange. Wurde der Signaturschlüssel kürzlich erneuert, muss der Empfänger den neuen verwenden: Es gibt keine Übergangszeit. Siehe Webhooks. - Sehen Sie sich den Zustellverlauf in der Konsole unter Webhooks an; dort können Sie eine Zustellung auch wiederholen.
- Lesen Sie den Task in der Zwischenzeit mit
recordInfo: Polling ist immer eine gültige Ausweichlösung. Siehe Webhooks.
Callbacks können mehrfach oder verspätet ankommen; entfernen Sie also Duplikate, bevor Sie eine Bestellung ausführen.
Der Download-Link oder die Datei ist weg:
- Ein Download-Link gilt 20 Minuten. Wird das Ergebnis noch aufbewahrt, fordern Sie einfach einen neuen Link an; einen alten Link aufzufrischen funktioniert nicht.
- Wird das Ergebnis gerade noch in den Speicher kopiert, warten Sie ein paar Sekunden und fragen Sie erneut.
- Ergebnisse werden höchstens etwa 14 Tage aufbewahrt, und kürzer, wenn Ihr Konto eine kürzere Aufbewahrung eingestellt hat. Steht
contentStateaufexpiredoderpurged, lässt sich die Datei nicht wiederherstellen; führen Sie das Modell erneut aus. Siehe Datenaufbewahrung und Löschung.
Stream endet vorzeitig
Prüfen Sie den HTTP-Status und den Content-Type, bevor Sie den Stream für Ihr Protokoll parsen. Netzwerk-Chunks sind keine vollständigen Ereignisse, und eine geschlossene Verbindung ist kein Erfolgszeichen: Achten Sie auf das Abschlussereignis des Protokolls, auf Fehlerereignisse und auf Ihre eigene Frist in der Anwendung. Gehen Sie nicht davon aus, dass ein abgebrochener Stream kostenlos war oder sich ohne Kosten erneut senden lässt: Gültige Nutzung, die vor dem Abbruch erfasst wurde, kann berechnet werden. Bewahren Sie die request_id auf und prüfen Sie Ihre Verbrauchsdaten. Siehe Text und Streaming.
Berechtigungen im Team
- Sie können keinen Schlüssel anlegen. Die Bereichsauswahl oben in der linken Seitenleiste der Konsole steht auf einem Team, in dem Ihre Rolle Budgetverwalter oder Nur lesen ist. Zum Anlegen von Schlüsseln brauchen Sie die Rolle Inhaber, Admin oder Entwickler. Wechseln Sie zu Ihrem Bereich Persönlich, oder bitten Sie einen Team-Admin um die Rolle Entwickler.
- Sie sehen einen Task, aber nicht seinen Prompt oder sein Ergebnis. Budgetverwalter und Mitglieder mit Nur lesen sehen nur Status, Kosten und Verbrauch.
- Sie können eine Einladung nicht annehmen. Melden Sie sich mit genau der E-Mail-Adresse an, an die die Einladung ging. Einladungen laufen nach 7 Tagen ab; ist Ihre abgelaufen, bitten Sie um eine neue.
- Ein Teamschlüssel stoppt mit
40201. Teamschlüssel verbrauchen das Guthaben des Team-Inhabers, also muss der Inhaber Guthaben aufladen.
Rollen und Teamgrenzen erklärt Konsole und Teams.
Rechnung lässt sich nicht ausstellen
- Ihre Angaben sind unvollständig. Eine Rechnung braucht einen Namen (Ihre Firma oder Ihren eigenen), Adresszeile 1, Stadt und Land, einmalig eingetragen oben unter Abrechnung → Rechnungen.
- Ein Zeichen lässt sich nicht drucken. Auf einer Rechnung können nur lateinische, griechische und kyrillische Zeichen stehen. Schreiben Sie einen japanischen oder koreanischen Firmennamen in seiner eingetragenen lateinischen Umschrift.
- Sie existiert bereits. Für jede bezahlte Aufladung und jeden abgeschlossenen Monat lässt sich genau ein Dokument ausstellen; laden Sie das vorhandene herunter. Um Angaben zu korrigieren, wählen Sie dort Neu ausstellen.
- Der Monat ist nicht verfügbar. Eine Nutzungsaufstellung gibt es nur für Monate, die vorbei sind und in denen Sie etwas ausgegeben haben.
Siehe Abrechnung zu Rechnungen und Nutzungsaufstellungen.
Verwandte Abläufe
Fehler · Integration für den Produktivbetrieb · Idempotenz · Medien · Webhooks · Text und Streaming · Konto einrichten
Verbindliche Tasks und Wiederholung
Warum angenommene Generierungsaufträge nicht abgebrochen werden können und wie Sie fehlgeschlagene oder abgelaufene Tasks sicher wiederholen.
FAQ
Kurze Antworten auf die häufigsten Fragen zu SpicyAPI, vom kostenlosen Tarif und den Kosten fehlgeschlagener Tasks bis zum Abbrechen von Tasks, dem Aufbewahren von Ergebnissen und dem Beheben häufiger Fehler.

