先に結論
2026-06-01 以降、Supabase の /v1/oauth/token は成功時に 200 OK を返します。
急いで直すべきなのは、成功条件を 201 Created に固定している自前実装 だけです。response.ok や 2XX 判定にしていれば、今回の変更はほぼ踏みません。
先に判断だけまとめるとこうです。
- 要対応:
status === 201のような strict 判定を書いている実装 - 影響は小さい: Fetch の
response.ok、axios の既定、主要 SDK の既定挙動 - 修正方針:
200と201の個別対応ではなく、2XX 判定へ寄せる - 確認期限: changelog 上の適用日は 2026-06-01
何が変わるのか
変わるのは、token endpoint の成功ステータス です。
Supabase の changelog では、/v1/oauth/token がこれまで返していた 201 Created をやめ、200 OK へ切り替えると案内しています。理由は OAuth 2.1 の section 3.2.3 に合わせるためです。
もうひとつの理由は実務的です。201 を厳密に期待する strict client では、token exchange が失敗していました。つまり今回の変更は、仕様準拠と相互運用性の両方を取りにいく修正です。
影響を受ける人、受けにくい人
影響を受けるのは、自前で成功判定を書いている人です。
たとえば次のような実装は見直したほうが安全です。
if (response.status !== 201) {
throw new Error('Token exchange failed')
}
逆に、成功を 2XX range で見ている実装はそのまま動く可能性が高いです。Supabase 公式も、次の実装は影響を受けにくい例として挙げています。
- MCP TypeScript SDK
- Vercel AI SDK の
@ai-sdk/mcp - axios の既定挙動
ここで大事なのは、SDK 名を覚えることではありません。自分のコードに strict 201 判定が残っているか を見ることです。
まず何を直せばいいか
一番安全なのは、成功判定を response.ok へ寄せること です。
if (!response.ok) {
throw new Error('Token exchange failed')
}
Fetch 以外なら、次のような 2XX 判定でも十分です。
if (response.status < 200 || response.status >= 300) {
throw new Error('Token exchange failed')
}
200 と 201 の両方を個別に許す書き方でも当面は動きます。ただ、その条件はまた将来読みづらくなります。公式が 2XX 判定を勧めている以上、ここで寄せておく方がきれいです。
5分で終わる確認手順
急ぎなら、この順で見れば足ります。
- コードベースで
/v1/oauth/tokenを grep する 201を直接比較している箇所を探すresponse.okか 2XX 判定へ置き換える- 2026-06-01 以降の環境で token exchange を再テストする
影響範囲は広くありません。だからこそ、壊れるコードだけ先に狙って直す のが正解です。
MCP や AI agent 連携ではどこを見るべきか
MCP や AI agent 周辺は、SDK 本体よりその前後のラッパーが盲点になりやすいです。
たとえば公式 SDK が response.ok を使っていても、社内 wrapper や認証 middleware 側で 201 を前提にログや分岐を書いていると、そこだけ落ちます。
Supabase を AI agent の backend として使っているなら、認証変更をまとめて見直すタイミングで、Supabase が ChatGPT 公式 app に対応|SQL、schema変更、Edge Functions をどこまで任せられるか や AIエージェント時代のbackend比較|InsForge vs Supabase vs Convex vs Firebase も合わせて読むと整理しやすいです。
いま慌てなくていいケース
Supabase の主要 SDK 既定挙動をそのまま使い、自前の strict 判定を書いていないなら、優先度は高くありません。
むしろ急ぐべきなのは、認証を自分でつないでいる統合です。OAuth callback、MCP 接続、AI SDK の外側で token exchange を包んでいる実装があるなら、そこを先に見てください。
同じ Supabase の breaking change でも、権限や schema 側の見直しが先に必要なチームは Supabase で新規 table は自動公開されない|2026-05-30 以降の GRANT と RLS を確認 も重要です。今回の論点は schema ではなく、あくまで token endpoint の成功判定です。