← Home Ops →

Troubleshooting

Cloudflare 1010 on /api/*

403 / Error 1010 が出ても Pages Functions 不在とは限らない。今の既知事象は Cloudflare 側の browser signature ban。

確認済み

  • Python-urllib/3.9browser_signature_banned で 403
  • curl / python-requests / undici / browser UA は 200
  • ブラウザ実機では preview / production とも /api/* は通る

次に見る場所

  • Cloudflare Security → Settings → Browser Integrity Check
  • WAF Custom Rules / Managed Rules
  • Bot 系の browser signature block ルール

Cloudflare docs 上では 1010 の代表原因候補が Browser Integrity Check。BIC はデフォルト有効で、非標準 user-agent を弾く。

再現コマンド

python3 scripts/check-cloudflare-1010.py

このスクリプトは UA ごとの 200 / 403 と cf-ray をまとめて出す。

対処案

1. `/api/*` だけ Browser Integrity Check を skip する custom rule を入れる
2. 監視や bot の user-agent を `curl` / browser 系に寄せる
3. まずは Security Settings の BIC 有効状態を確認する

今の blocker

openclaw ブラウザから `dash.cloudflare.com` を開くと Cloudflare のログイン画面になる。
そのため、最終的な設定名の確定にはログイン済みの Cloudflare ダッシュボードセッションが必要。

ログイン後の確認手順

1. Cloudflare Dashboard で zone auto-rogic-dashboard.pages.dev を開く
2. Security → SettingsBrowser Integrity Check の ON/OFF を確認
3. Security → WAFCustom RulesManaged Rules に browser signature block がないか確認
4. BIC が原因なら /api/* だけ skip する custom rule を入れる

API token で確認する場合

R2 Account Token や S3 credentials では BIC / WAF 設定は読めない。
必要なのは Cloudflare API token の Zone:Read, Zone Settings:Read, できれば WAF:Read 相当。
この token があればブラウザ未ログインでも API 経由で 1010 の原因設定を確認できる。
CLOUDFLARE_API_TOKEN=... \
CLOUDFLARE_ZONE_ID=... \
./scripts/check-cloudflare-security.sh
CLOUDFLARE_API_TOKEN=... \
CLOUDFLARE_ZONE_NAME=auto-rogic-dashboard.pages.dev \
./scripts/check-cloudflare-security.sh
curl -fsS \
  -H "Authorization: Bearer ${CLOUDFLARE_API_TOKEN}" \
  "https://api.cloudflare.com/client/v4/zones?name=auto-rogic-dashboard.pages.dev"

Run status reason の見方

runpod_capacity_wait は RunPod 空き待ち。Cloudflare 1010 とは別件。
runpod_booting / runpod_started は trigger 自体は進んでいる。
trigger_failed は RunPod 起動 API 側で失敗。
running / completed / error / images_uploaded は R2 marker 同期ベースの状態。

運用導線

/ops.html で status reason 集計, paper drilldown, problem runs をまとめて見られる。
共有リンクをコピーすると、現在の絞り込み状態つきでそのまま渡せる。

メモ

今の API は壊れていないので、外形監視や bot 経由チェックの UA を見直すほうが先。
ダッシュボードに入れない間も `scripts/check-cloudflare-1010.py` で再現を維持できる。