GAミント至上主義

Web Monomaniacal Developer.

Puppeteerでエラー"The previous printing job hasn't finished at Promise "

yagish履歴書で使っているhcep-pdf-serverでエラーが出ていたので調査。

Error: Protocol error (Page.printToPDF): The previous printing job hasn't finished at Promise

現在はGKEで動かしていて、このような制御できないエラーが出た場合はプロセスを終了させているので、すぐにkubernetesのdeployちゃんが再起動してくれて、解決する。

ユーザーは一度は失敗しちゃうけど、複数Pod動かしているので、もう一度実行すれば成功しているはず。

エラーは以前のjobが終わってないという内容だけど、連続で大きいリクエスト(吾輩は猫である全文とか)しまくっても再現せず。
頻度も2週間に1度とかだから、どこまでやるべきか悩みどころ。

検索すると下記記事が出てきて

Protocol error (Page.printToPDF): The previous printing job hasn't finished · Issue #3315 · GoogleChrome/puppeteer · GitHub

page.pdf()にawaitつけて待たせて、みたいな助言で終了しているけど、hcepではすでに付けているので違う問題っぽい。

Pageオブジェクトに現在のプリントジョブステータスを取得できるのがないかざっと見たけど見当たらず。

puppeteer/api.md at master · GoogleChrome/puppeteer · GitHub


そもそもブラウザは何日間も一つのページをサーバーとして安定して使うようにはできていないはずだから、
ユーザーがごくたまーに失敗するのはあきらめて、その時困らないようにUI側で親切に説明するのが最善だろうか。