Expected RSC response, got text/plain の読み方
実際に出るエラー
無い URL へ、Server Action を呼ぶ見出しを付けた POST が来たときに、サーバーのログに出るエラーです。
いつ出るのか
next start のログに、次の2つが続けて出ます。
Error: The Server Reference ID did not match the expected format. Received "1".
⨯ Error [InvariantError]: Invariant: Expected RSC response, got text/plain. This is a bug in Next.js.
「This is a bug in Next.js」とありますが、自分のコードが壊れているわけではありません。無い URL へ、Server Action を呼ぶときの見出しを付けた POST が来たときに出ます。
このサイトでも 2026-10-24 に、/api/action・/_next/data・/action など無い URL へ、この形の POST が 26 秒で 60 件届きました。Server Actions の弱点を探す自動の探りと見られます。
出る条件
同じ最小構成のアプリに、見出しを変えた POST を送って確かめました。
| 送り先 | 付けた見出し | 状態コード |
|---|---|---|
| 無い URL | Next-Action と RSC: 1 | 500(このエラー) |
| 無い URL | Next-Action だけ | 400 |
| 無い URL | RSC: 1 だけ | 404 |
| あるページ | Next-Action と RSC: 1 | 307(?_rsc 付きの同じ URL へ) |
出るのは、無い URL に Next-Action と RSC: 1 の両方を付けたときだけでした。Next-Action は Server Action の ID を運ぶ見出しで、探りでは 1 のようなでたらめな値が入っています。最初の行の「ID の形が合わない」はそのためです。
放っておいてよい理由
- 関数は1つも動いていません。実機では、本物の Server Action を置いたアプリに送っても、その関数は呼ばれませんでした。ID の形が合わない時点で止まっています
- 500 の中身は
Internal Server Errorという文字だけでした
ただし、Server Actions を狙った探りであることは確かです。公式の発表によると、2026-10-14 に Server Actions を使うアプリへの DoS が修正されています(16.4.1)。Next.js を新しく保つことのほうが大事です。
通知を送っているなら、この形だけ外す
instrumentation.ts の onRequestError でエラーを通知していると、このエラーも通知されます。外から誰でも起こせるので、通知のメールを他人に何通でも出させられることになります。
このサイトでは、Next-Action 見出しが付いていて、かつ 404 のページを描いているときだけ、記録して通知しないようにしました。
// instrumentation.ts
export const onRequestError: Instrumentation.onRequestError = async (err, request, context) => {
const hasAction = Boolean(request.headers['next-action'])
if (hasAction && (context.routePath ?? '').includes('_not-found')) {
// 記録だけして、通知しない
return
}
// ここから通知
}
文言だけで判定して外すと、本当に Next.js の不具合で同じ文言が出たときまで黙ってしまいます。条件は狭くします。
まとめ
- 無い URL へ
Next-ActionとRSC: 1付きの POST が来ると出る。多くはスキャナーの探り - 関数は動いていない。自分のコードを直す必要はない
- 通知しているなら、「Next-Action 付き」かつ「404 の描画」だけを外す
- Next.js を新しく保つ
出典
- nextjs.org/docs/messages/failed-to-find-server-action
- nextjs.org/docs/app/api-reference/file-conventions/instrumentation
- nextjs.org/blog/nextjs-security-update-october-14-2026
このページの内容は上記の一次情報を基準に書いています。個人ブログや二次情報を根拠にしていません。
理解できたか試す
では、このコードはどうなりますか。
この Server Function に足りない守りを、すべて選んでください。