本文へ移動
verified onnext@16.3.5react@19
最終検証日 2026-09-26
Next.js道場

Error occurred prerendering page の読み方

実際に出るエラー

Error occurred prerendering page "/about". Read more: https://nextjs.org/docs/messages/prerender-error
Error: cms-timeout
Export encountered an error on /about/page: /about, exiting the build.

ビルドのときにページを描いている途中で例外が起きると出る文言です。

読むのは次の行

実機で、ビルドのときに描くページの中で例外を投げると、出力はこう並びました。

Error occurred prerendering page "/about". Read more: https://nextjs.org/docs/messages/prerender-error
Error: cms-timeout                          ← 本当の原因
    at c (app\about\page.tsx:1:31)          ← どのファイルの何行目か
  digest: '3666236157'
Export encountered an error on /about/page: /about, exiting the build.
出力の読み方
  1. Build
    1行目: どのページで止まったか

    Error occurred prerendering page のあとの "/about"。原因はここには無い。

  2. Build
    次の行: 本当の原因

    この文言で検索する。

  3. Build
    その下: ファイルと行

    どこで起きたかが分かる。

1行目の文言だけで検索しても、原因は分かりません。ビルドのときにページを描く途中で、何かの例外が起きた、という意味しかないからです。

原因の文言ごとの直し方

実機で確かめた文言です。一緒に出た文言がこのどれかなら、それぞれの記事に直し方があります。

一緒に出る文言と、原因
一緒に出る文言原因
ReferenceError: window is not definedブラウザにしかない値をサーバーで読んだ
ReferenceError: document is not defined同上
ReferenceError: localStorage is not defined同上
useSearchParams() should be wrapped in a suspense boundarySuspense で囲んでいない
NextRouter was not mounted.App Router で next/router を使った
used "updateTag …" during render描く途中で updateTag を呼んだ
自分で throw した文言ページの中の読み込みが失敗した

自分の読み込みが失敗しているとき

Cookie もクエリ文字列も使っていないページは、ビルドのときに描かれます(キャッシュの解説)。中で呼んだデータの読み込みも、ビルドのときに動きます。

だから、ビルドのときにつながらない相手(止まっている外部のサービス、ビルドする場所から見えないデータベース)から読むページは、ビルドを止めます。

ビルドのときに読めないなら、開かれたときに描く
ビルドのときに描く
export default async function Page() {
  const body = await load()
  return <p>{body}</p>
}

読み込みの失敗で、ビルドが止まる。

開かれたときに描く
import { connection } from 'next/server'
 
export default async function Page() {
  await connection()
  const body = await load()
  return <p>{body}</p>
}

ビルドは通る。失敗は開いたときに起き、error.tsx が受け止める。

実機で、await connection() を足すとビルドが通り、そのページは一覧で ƒ(開かれたときに描く)になりました。

ビルドする場所で確かめる

手元ではビルドが通るのに、CI や Docker の中でだけこのエラーになることがあります。考えられるのは、ビルドする場所から読み込み先に届かないときと、ビルドのときに環境変数が無いときです(環境変数はいつ読まれるのか)。

出典

このページの内容は上記の一次情報を基準に書いています。個人ブログや二次情報を根拠にしていません。

理解できたか試す

では、このコードはどうなりますか。

記事の管理サービスから本文を読むページです。ビルドのときに、その管理サービスが落ちていました。ビルドするとどうなりますか。

この問題を解くこのテーマの問題 3 問