◉CLAUDE LABEN
●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました
記事一覧/API & SDK
⬡ API & SDK/2026-06-30上級

「同じ 429」が経路ごとに違う顔で返る — Claude を Anthropic 直叩きと Azure Foundry の二経路で安全に回す

Claude が Microsoft Foundry でも一般提供されたことで、直叩きと Azure 経由の二経路が現実的になりました。同じ 429 が経路ごとに違う形で返る問題を、正規化エラー型と retry-after の両形式パースで畳む実装をまとめます。

Claude API128Azure Foundryレート制限7リトライ5フェイルオーバー

✦ プレミアム記事

2026-06-30 に Claude Opus 4.8 / Haiku 4.5 が Messages API に並んだのと同じ日、Claude が Microsoft Foundry(Azure)でも一般提供に入りました。既存の ID・課金・ガバナンスをそのままに Azure ネイティブで Claude を呼べる、という案内です。これで「普段は Anthropic を直叩きし、片側が詰まったら Azure 経由へ逃がす」という二経路構成が、個人開発の規模でも現実的な選択肢になりました。

ところが二経路で回し始めて最初にぶつかるのは、性能でも価格でもなく、**「同じ 429 が経路ごとに違う顔で返ってくる」**という地味な非対称です。片方を前提に書いたリトライ処理は、もう片方では静かに誤作動します。私自身、Dolice Labs の複数サイトを無人で回している立場なので、この「静かな誤作動」が一番こわいと感じています。今回はその差分を正規化し、ひとつの方針で両経路を回す設計を整理します。

二経路で回すと「同じ 429」が別の顔で返ってくる

レート制限超過はどちらの経路でも HTTP 429 で返ります。ここまでは同じです。違うのは、その 429 に添えられてくる情報の形です。

直叩きの 429 は、本文が Anthropic 独自の error envelope({"type":"error","error":{"type":"rate_limit_error"}})で、再試行までの猶予は小文字の retry-after ヘッダーに整数秒で入ります。過負荷時には 429 ではなく 529 が返ることもあります。一方 Azure Foundry 側の 429 は、本文が Azure の error envelope({"error":{"code":"429","message":"..."}})で、猶予は Retry-After ヘッダーに入りますが、整数秒のときと HTTP-date 形式のときが混在します。サーバ側の一時障害も 503 で返ることがあり、直叩きの 529 とは番号が揃いません。

つまり「429 を見たら retry-after 秒を読んで待つ」という最短のコードは、経路を増やした瞬間に前提が崩れます。読むヘッダー名がずれ、値の単位がずれ、エラー本文の鍵がずれます。

まず両経路のエラー表面を並べて見る

設計に入る前に、両経路が返してくるものを横に並べて差分を確定させておきます。ここを曖昧にしたまま抽象化すると、後でどちらかに寄った正規化になって片側で事故ります。

観点Anthropic 直叩きAzure Foundry 経由
レート超過のステータス429429
過負荷/一時障害529(overloaded)503 など
猶予ヘッダー名retry-after(小文字)Retry-After
猶予の値整数秒整数秒 または HTTP-date
エラー本文の鍵error.type(例 rate_limit_error)error.code(例 "429")
認証x-api-key ヘッダーBearer トークン(Azure 側の資格情報)
追加メタanthropic-ratelimit-* ヘッダー提供有無が経路依存

HTTP ヘッダー名は大文字小文字を区別しない仕様なので、堅牢な HTTP クライアントなら retry-after でも Retry-After でも引けます。ただし問題はそこではなく、値の単位(秒か HTTP-date か)と、本文の鍵の名前です。ここが経路ごとに違います。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦Anthropic 直叩きと Azure Foundry で 429 / retry-after の形がどう違うか(秒・HTTP-date・本文の error envelope)の実差分
✦経路差を1つの正規化エラー型に畳むリゾルバの実装(retryable 判定・retry_after の両形式パース)
✦「同じ経路で待って再試行」か「もう一方へ failover」かを切り分ける判断ロジック
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

⬡ API & SDK2026-10-16
Make から Claude API に 40 行流すと 14 行目で止まる — 429 を待ち時間の計算で避ける
表計算の行を1件ずつ Claude API に渡すノーコード自動化が、途中で 429 になる理由と直し方です。模擬バケットで7通りの間隔を比べ、Sleep の秒数を 60÷上限−応答時間 で決める式と、失敗行を落とさない設定を示します。
⬡ API & SDK2026-04-26
Claude の「Spanner Temporarily Unavailable」エラーが出たときの読み解き方と対処法
Claude API や Claude.ai で稀に発生する「Spanner temporarily unavailable」エラー。表示は短いのに原因が見えにくいこのエラーを、Anthropic のインフラ構造から逆算して読み解き、開発者が今すぐ取れる現実的な対処法を整理します。
⬡ API & SDK2026-10-14
retry-after が 120 秒の 429 を受けると、Anthropic SDK の自動リトライは 120 秒待とうとしました
Anthropic SDK の自動リトライを模擬サーバーで12通り確かめました。既定は2回まで、retry-after は上限なしで従い、上限到達の429は待っても通りません。待ち時間と総時間に上限を持つ呼び出し口のコードと実測ログを載せます。