トラブルシューティング
よくある問題の解決法。最初の呼び出しの 401 から、届かない Webhook まで。
症状を探して、対処を試してください。ここで解決しない場合は、request_id を添えてサポートに連絡してください。
最初の呼び出しが失敗する
401「Missing credentials」。 Authorization ヘッダーが届いていません。リクエストを実行するシェルやプロセスに環境変数が設定されているか(echo ${POPNOW_API_KEY:0:10} で sk-popnow- と表示されるはず)、プロキシや HTTP ライブラリがヘッダーを落としていないかを確認してください。
401「Key format is not recognized」。 その値は PopNow のキーではありません。クリップボードの別の内容であることがよくあります。キーは sk-popnow- で始まります。
401「Credentials are invalid or expired」。 キーが無効化されたか、期限切れか、打ち間違いです。API コンソールで新しく作成してください。
40310。 アカウントのメールアドレスが未確認です。登録メールのリンクを開けば、すぐにキーが使えるようになります。
40201「Insufficient balance」。 このタスクの確保額に対してクレジットが足りません。動画の確保額は大きくなりがちです。jobs/quote で料金を確認し、クレジットを購入してください。
リクエストが拒否される
フィールド名付きの 400。 input がモデルのスキーマと合っていません。フィールド名の綴り違い、許可されていない値、必須フィールドの欠落などです。モデルからそのモデルのリファレンスページを開いて見比べてください。
400「Invalid callback URL」。 callBackUrl は公開 HTTPS、ポート 443、ユーザー名やパスワードなしである必要があります。localhost やプライベートアドレスは拒否されます。
40004。 モデルは動いていますが、今はこの設定の組み合わせに対応できません。msg にある設定(多くは解像度、長さ、アスペクト比)を変えてください。
50301。 モデルが一時的にタスクを受け付けられません。あとで試すか、別のモデルを選んでください。
413。 JSON 本文が 2 MiB を超えています。たいていはインライン画像が原因です。アップロードに切り替えてください。
タスクが失敗する
invalid_asset。 参照ファイルを取得または読み取れませんでした。ブラウザーのシークレットウィンドウで URL を開いてみてください。ログインなしでファイルそのものがダウンロードされる必要があります。クラウドストレージの共有ページは使えません。
content_rejected。 モデルがプロンプトか参照画像を断りました。言い換える、参照を変える、別のモデルを試す、のいずれかを。
timeout または expired。 許容時間を超えました。短くするか解像度を下げてください。
generation_failed。 モデルは動きましたが何も出力しませんでした。同じ入力は同じように失敗しがちなので、プロンプトか設定を変えてください。
失敗・期限切れのタスクはクレジットを使いません。
結果
ダウンロードリンクが 403 や「expired」になる。 署名付きリンクの有効期間は約 20 分です。recordInfo でタスクを読み直して新しいリンクを取得してください。
API キーを付けるとダウンロードリンクが失敗する。 署名付きリンクに Authorization を送らないでください。リンクそのものが許可です。
自分で作ったタスクなのに recordInfo が 404 を返す。 タスクは作成したキーからしか見えません。同じキーを使うか、API コンソールで探してください。
Webhook
何も届かない。 URL がインターネットから HTTPS で到達できるか、ファイアウォールが許可しているか、ハンドラーが 15 秒以内に 2xx を返すかを確認してください。失敗した配信は API コンソールに表示されます。
署名が一致しない。 再シリアライズした JSON ではなく、受け取ったままの本文のバイト列をハッシュしてください。使うのは data.taskId、X-Webhook-Timestamp ヘッダー、そして最後に生成したシークレットです。
同じタスクが 2 回届く。 再送のあとなら想定どおりです。request_id で重複を無視してください。
アップロード
PUT がストレージから 403 になる。 ヘッダーがチケットと違っています。Content-Type と Content-Length を指定どおりに送り、Authorization ヘッダーは付けないでください。
コミットが 40003 を返す。 アップロードしたファイルが宣言と一致しません。正しい contentType と bytes でチケットを取り直してください。
コミットが 409 を返す。 チケットの期限が切れています(約 20 分)。アップロードの直前に取得してください。

