Rozwiązywanie problemów
Rozwiązania najczęstszych problemów — od 401 przy pierwszym wywołaniu po webhook, który nigdy nie przychodzi.
Znajdź objaw i wypróbuj rozwiązanie. Jeśli nic tu nie pomoże, napisz do pomocy i podaj request_id.
Pierwsze wywołanie się nie udaje
401 „Missing credentials”. Nagłówek Authorization nie dotarł. Sprawdź, czy zmienna środowiskowa jest ustawiona w powłoce lub procesie, który wysyła zapytanie (echo ${POPNOW_API_KEY:0:10} powinno wypisać sk-popnow-), i czy proxy albo biblioteka HTTP nie gubi nagłówka.
401 „Key format is not recognized”. To nie jest klucz PopNow — często coś innego ze schowka. Klucze zaczynają się od sk-popnow-.
401 „Credentials are invalid or expired”. Klucz został cofnięty, wygasł albo jest źle wpisany. Utwórz nowy w konsoli API.
40310. Adres e-mail konta nie jest potwierdzony. Otwórz link z maila rejestracyjnego; klucz zadziała od razu potem.
40201 „Insufficient balance”. Na koncie brakuje kredytów na blokadę tego zadania. Blokady dla wideo bywają duże; sprawdź cenę przez jobs/quote i kup kredyty.
Zapytanie jest odrzucane
400 z nazwą pola. input nie pasuje do schematu modelu: literówka w nazwie pola, wartość spoza dozwolonej listy albo brak wymaganego pola. Otwórz stronę referencyjną modelu z Modeli i porównaj.
400 „Invalid callback URL”. callBackUrl musi być publicznym HTTPS na porcie 443, bez nazwy użytkownika i hasła. localhost i adresy prywatne są odrzucane.
40004. Model działa, ale nie obsłuży teraz tej kombinacji ustawień. Zmień ustawienie wskazane w msg (często rozdzielczość, czas trwania lub proporcje).
50301. Model chwilowo nie przyjmuje zadań. Spróbuj później albo wybierz inny model.
413. Treść JSON przekracza 2 MiB, zwykle przez osadzone obrazy. Prześlij je zamiast tego.
Zadanie się nie udaje
invalid_asset. Nie udało się pobrać lub odczytać pliku referencyjnego. Otwórz URL w prywatnym oknie przeglądarki: musi pobrać sam plik, bez logowania. Strony udostępniania z dysków w chmurze nie działają.
content_rejected. Model odrzucił prompt albo obraz referencyjny. Przeformułuj, użyj innych materiałów referencyjnych albo spróbuj innego modelu.
timeout albo expired. Praca trwała dłużej, niż wolno. Spróbuj krótszego czasu trwania albo niższej rozdzielczości.
generation_failed. Model zadziałał, ale nic nie zwrócił. Te same dane wejściowe często znów zawodzą; zmień prompt albo ustawienia.
Nieudane i wygasłe zadania nie zużywają kredytów.
Wynik
Link do pobrania zwraca 403 albo „expired”. Podpisane linki działają około 20 minut. Odczytaj zadanie ponownie przez recordInfo, by dostać nowy.
Link do pobrania nie działa, gdy wysyłam klucz API. Nie wysyłaj Authorization pod podpisany link; sam link jest uprawnieniem.
recordInfo zwraca 404 dla zadania, które utworzyłem. Zadania widzi tylko klucz, który je utworzył. Użyj tego samego klucza albo znajdź zadanie w konsoli API.
Webhooki
Nic nie przychodzi. Sprawdź, czy URL jest osiągalny z internetu przez HTTPS, czy zapora go przepuszcza i czy obsługa odpowiada 2xx w ciągu 15 sekund. Nieudane doręczenia widać w konsoli API.
Podpis nigdy się nie zgadza. Hashuj surowe bajty treści, a nie ponownie zserializowany JSON; użyj data.taskId, nagłówka X-Webhook-Timestamp i ostatnio wygenerowanego sekretu.
To samo zadanie przychodzi dwa razy. Po ponowieniu to normalne. Pomijaj duplikaty po request_id.
Przesyłanie
PUT dostaje 403 od magazynu. Któryś nagłówek różni się od biletu. Wyślij Content-Type i Content-Length dokładnie tak, jak podano, i bez nagłówka Authorization.
Zatwierdzenie zwraca 40003. Przesłany plik nie zgadza się z tym, co zadeklarowałeś. Poproś o nowy bilet z poprawnym contentType i bytes.
Zatwierdzenie zwraca 409. Bilet wygasł (po około 20 minutach). Pobieraj go tuż przed przesłaniem.

