Fehlerbehebung
Lösungen für die häufigsten Probleme – vom 401 beim ersten Aufruf bis zum Webhook, der nie ankommt.
Such das Symptom, probier die Lösung. Hilft nichts davon, kontaktiere den Support mit der request_id.
Der erste Aufruf scheitert
401 „Missing credentials“. Der Authorization-Header ist nicht angekommen. Prüf, ob die Umgebungsvariable in der Shell bzw. dem Prozess gesetzt ist, der die Anfrage ausführt (echo ${POPNOW_API_KEY:0:10} sollte sk-popnow- ausgeben), und ob ein Proxy oder eine HTTP-Bibliothek den Header verwirft.
401 „Key format is not recognized“. Der Wert ist kein PopNow-Schlüssel – oft etwas anderes aus der Zwischenablage. Schlüssel beginnen mit sk-popnow-.
401 „Credentials are invalid or expired“. Der Schlüssel wurde widerrufen, ist abgelaufen oder falsch abgetippt. Erstell in der API-Konsole einen neuen.
40310. Die E-Mail-Adresse deines Kontos ist nicht bestätigt. Öffne den Link aus der Anmelde-Mail; danach funktioniert der Schlüssel sofort.
40201 „Insufficient balance“. Das Konto hat nicht genug Credits für die Reservierung dieses Tasks. Videoreservierungen können groß sein; prüf den Preis mit jobs/quote und kauf Credits.
Die Anfrage wird abgelehnt
400 mit einem Feldnamen. Das input passt nicht zum Schema des Modells: ein vertipptes Feld, ein Wert außerhalb der erlaubten Liste oder ein fehlendes Pflichtfeld. Öffne die Referenzseite des Modells über Modelle und vergleich.
400 „Invalid callback URL“. Die callBackUrl muss öffentliches HTTPS auf Port 443 sein, ohne Benutzername oder Passwort. localhost und private Adressen werden abgelehnt.
40004. Das Modell läuft, kann diese Kombination von Einstellungen aber gerade nicht bedienen. Ändere die in msg genannte Einstellung (oft Auflösung, Dauer oder Seitenverhältnis).
50301. Das Modell nimmt vorübergehend keine Tasks an. Versuch es später oder nimm ein anderes Modell.
413. Der JSON-Body ist größer als 2 MiB, meist wegen eingebetteter Bilder. Lade sie stattdessen hoch.
Der Task scheitert
invalid_asset. Eine Referenzdatei ließ sich nicht abrufen oder lesen. Öffne die URL in einem privaten Browserfenster: Sie muss die Datei selbst herunterladen, ohne Anmeldung. Freigabeseiten von Cloud-Speichern funktionieren nicht.
content_rejected. Das Modell hat den Prompt oder ein Referenzbild abgelehnt. Formulier um, nimm andere Referenzen oder ein anderes Modell.
timeout oder expired. Der Job hat länger gedauert als erlaubt. Probier eine kürzere Dauer oder niedrigere Auflösung.
generation_failed. Das Modell lief, hat aber nichts geliefert. Dieselbe Eingabe scheitert oft wieder; ändere Prompt oder Einstellungen.
Gescheiterte und abgelaufene Tasks verbrauchen keine Credits.
Das Ergebnis
Der Download-Link liefert 403 oder „expired“. Signierte Links gelten etwa 20 Minuten. Lies den Task mit recordInfo erneut, um einen frischen Link zu bekommen.
Der Download-Link scheitert, wenn ich meinen API-Schlüssel mitschicke. Schick kein Authorization an den signierten Link; der Link selbst ist die Berechtigung.
recordInfo liefert 404 für einen Task, den ich erstellt habe. Tasks sind nur für den Schlüssel sichtbar, der sie erstellt hat. Nimm denselben Schlüssel oder such den Task in der API-Konsole.
Webhooks
Es kommt nichts an. Prüf, ob die URL aus dem Internet per HTTPS erreichbar ist, deine Firewall sie zulässt und dein Handler innerhalb von 15 Sekunden mit 2xx antwortet. Fehlgeschlagene Zustellungen stehen in der API-Konsole.
Die Signatur passt nie. Hashe die rohen Body-Bytes, kein neu serialisiertes JSON-Objekt; nutze data.taskId, den Header X-Webhook-Timestamp und das zuletzt erzeugte Secret.
Derselbe Task kommt zweimal an. Das ist nach einer Wiederholung normal. Ignorier Duplikate anhand von request_id.
Uploads
Der PUT liefert 403 vom Speicher. Ein Header weicht vom Ticket ab. Schick Content-Type und Content-Length genau wie angegeben und keinen Authorization-Header.
Der Commit liefert 40003. Die hochgeladene Datei passt nicht zu dem, was du angegeben hast. Hol ein neues Ticket mit dem richtigen contentType und bytes.
Der Commit liefert 409. Das Ticket ist abgelaufen (nach etwa 20 Minuten). Hol es dir direkt vor dem Hochladen.

