🍣
(メモ)2025-06-13に発生したCloudflare障害時のWorkersの挙動
概要
追記: すでに復旧済みです。Cloudflareから今回のインシデント詳細が公開されています。
2025-06-13 3:00 JST頃から発生したCloudflareのシステム障害についてのメモです。なおCloudflareのシステムダッシュボードはhttps://www.cloudflarestatus.com
からアクセスできます。
Jun 12, 2025 - 19:12 UTC
Update - We are seeing a number of services suffer intermittent failures. We are continuing to investigate this and we will update this list as we assess the impact on a per-service level.
何が起きた?
- Cloudflare Workersが500 Internal Errorを返しはじめる。
- ブラウザでCloudflareのダッシュボードにログインできない。
-
npx wrangler tail
は特にエラーメッセージは表示されないが、ログが何も表示されない。
$ npx wrangler tail
⛅️ wrangler 4.19.1 (update available 4.20.0)
─────────────────────────────────────────────
Successfully created tail, expires at 2025-06-13T00:06:09Z
Connected to xxxxxxxx, waiting for logs...
# ログは全く流れない
作業メモ
- 別件で作業中にCloudflareダッシュボードにログインできないことに気がつく。bot判定されてログインが失敗?
- ASNでネットワークに制限がかけられているか調査→SoftBankとNTT docomo回線で疎通確認。どちらも500レスポンスが返される。ネットワークの問題ではなさそう。
- Cloudflareのシステムステータスを確認→記事冒頭のシステム障害情報に気がつく。
- Cloudflareサービス全体にシステム障害が広がっていたため、ダッシュボードにログインできずwranglerによるWorkersの操作も一切不能。
- 普段とHTTPのレスポンスに違いはあるか?
HTTP/2 500
date: Thu, 12 Jun 2025 19:55:23 GMT
content-type: application/json
content-length: 26
cf-ray: 94ebe7d198ddfcc5-NRT
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=zP%2BfTe7TRwZjJM9pFzGeH%2Be1A%2FwHc%2Bdq2fC8oFcofWORT3PohQwwp9OiJXECLjXIK5wWJVe3alxfI3rcjp6Pq36juAjF%2BdEG4ly%2BKWD2wNDEK6b0pJ8%2Fu5vD9w9ApVnuGEecbwuRrnDTAKm9FD4cmWbKOCLt7lON0EkstTFkF6Bd2lh03Q%3D%3D"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
server: cloudflare
alt-svc: h3=":443"; ma=86400
server-timing: cfL4;desc="?proto=TCP&rtt=37924&min_rtt=30165&rtt_var=12137&sent=6&recv=9&lost=0&retrans=0&sent_bytes=3434&recv_bytes=785&delivery_rate=110455&cwnd=254&unsent_bytes=0&cid=8c59254db7020524&ts=81&x=0"
{"error":"internal error"}
- レスポンスがJSONとして返されている。期待したスキーマに従ってレスポンスが返されているため、Workersが参照しているバインディングに不具合が生じていると推測。
- Workers LogsもWAEもwrangler tailも全滅なので、内部の動作を観測できないが、Workersそのものは生きている?
- KV namespaceに不具合が出ているとのtwitter投稿を見かけた気がするが、消えてしまった。
- KVを利用していないWorkerにリクエストしたら、こちらも500が返される。特定のバインディングを利用しているかは今回の不具合とは関係がない。
- やはりWorkerのスクリプトそのものは生きていると推測。ヘルスチェック用に用意しておいたWorkerではレスポンスのボディが異なる。
- Cloudflareステータスによると徐々に回復しつつあるとのことだが、Colo NRTは引き続き500 Internal Errorレスポンスが返される状況が続いている。
- 2025-06-13 6:30 JST頃には完全復旧を確認。日本時間の日中時間帯に発生しなかったことが幸い。
- Cloudflareスタックに依存したサービスを構築すると、復旧を祈ることしかできないのであった。
- とはいえ、どのクラウドプロバイダーでも障害は発生し得る。マルチクラウドのコストをかけて耐障害性を高めるか、インフラが落ちたらユーザーにごめんなさいして金銭的リスクへ移転させるかはサービスの特性次第。
- 今回は3時間程度で復旧されたため、むしろCloudflareへの信頼は深まった。
Discussion