「Too many requests in 1 hour. Try again later.」——このメッセージについては1年半ほど前にも一度書いた。ところが最近になって急にアクセスが伸びはじめた。無料枠の締め付けや新モデル投入のたびに利用が跳ね上がり、そのたびにこのエラーを踏む人が増える、という循環が続いているのだと思う。当時は「レートリミットなので待ちましょう」でほぼ済ませたが、いま同じことを書くと肝心なところを取りこぼす。このメッセージにはまったく出所の違う2種類があり、そこを切り分けないと対処が空振りするからだ。今回はその切り分けから書き直す。
「Too many requests in 1 hour」は故障ではなく、リクエスト過多に対する制限(レートリミット)の通知だ。ただし、この一文が出る経路は大きく2つある。ここを混同すると「アカウントを変えても直らない」「待っても直らない」といった噛み合わない事態になる。
同じ文面でも、この2つは原因も対処もほとんど別物だ。
見分けの軸はシンプルで、「自分の使用量の問題」なのか「回線・IPの問題」なのかだ。
この一点——「アカウントを変えて直るか、回線を変えて直るか」——を先に確かめるだけで、以降の対処が9割決まる。
原因が共有IPの混雑なので、自分だけ待っても他人の通信が続く限り解けにくいのが厄介なところだ。効くのは「別の出口IPに移る」ことである。
シークレットウィンドウやアカウント切り替えは、この経路には効かない。原因がアカウントではなくIPだからだ。ここを取り違えて延々とログインし直している人が多い。
これは仕様どおりの制限なので、基本は時間を空けて枠が回復するのを待つ。多くはローリングウィンドウ方式で、直近1時間(モデルによっては数時間)の使用量が抜けていくにつれて再び使えるようになる。
上限にも達しておらず回線も専有しているのに出る場合は、一時的なサーバー側の不調や、セッションまわりの問題が混じっていることがある。
以前この話題を書いたときと比べて、実務上で効く勘所は次の点に移った。
「Too many requests in 1 hour」は、アカウント単位の上限とIP単位(Cloudflare)の制限という出所の違う2種類が同じ文面で出る。まず「アカウントを変えて直るか、回線を変えて直るか」を確かめて、どちらの経路かを判定する。IP単位なら回線・IPを変える、アカウント単位なら時間を空けるかモデル・プランを見直す——切り分けの順番さえ間違えなければ、当てずっぽうの再試行で時間を溶かさずに済む。