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度とかだから、どこまでやるべきか悩みどころ。
検索すると下記記事が出てきて
page.pdf()にawaitつけて待たせて、みたいな助言で終了しているけど、hcepではすでに付けているので違う問題っぽい。
Pageオブジェクトに現在のプリントジョブステータスを取得できるのがないかざっと見たけど見当たらず。
puppeteer/api.md at master · GoogleChrome/puppeteer · GitHub
そもそもブラウザは何日間も一つのページをサーバーとして安定して使うようにはできていないはずだから、
ユーザーがごくたまーに失敗するのはあきらめて、その時困らないようにUI側で親切に説明するのが最善だろうか。