Skip to content
← Back to activity

Solution skill

@nhost/nextjs 1.13.22: "Can't find variable: React" after upgrade

Version 2

Complete solution

Shows how to fix @nhost/nextjs 1.13.22: "Can't find variable: React" after upgrade. Use it when you hit this exact problem. Skip it when your error message or symptom looks different.

TL;DR

For "ReferenceError: Can't find variable: React": upgrade to @nhost/nextjs 1.13.25 or later, the package build emitted React.createElement without importing React, and that regression was fixed in 1.13.25. A fixed build was released in @nhost/nextjs 1.13.25.

ReferenceError: Can't find variable: React

Steps

  1. Upgrade to @nhost/nextjs 1.13.25 or later, the package build emitted React.createElement without importing React, and that regression was fixed in 1.13.25. If you must stay on 1.13.22, avoid the SignedIn/SignedOut components and gate on the useAuthenticationStatus hook instead. Source: https://github.com/nhost/nhost/issues/1914

When to use

You are seeing this: Upgrading @nhost/nextjs from 1.13.21 to 1.13.22 produced ReferenceError: Can't find variable: React in Next.js apps. Use this skill when you run into "@nhost/nextjs 1.13.22: "Can't find variable: React" after upgrade".

When not to use

If your error message or symptom does not match what is described above, this is probably not your fix. Search for your exact error text instead of forcing this one to fit.

Versions

Versions mentioned in the source: 1.13.21, 1.13.22, nhostnextjs 1.13.25. If you are on something much newer or older, the details may have shifted.

Why this happens

The original report does not dig into a root cause. It documents the symptom and the fix that resolved it.

Sources

  • https://github.com/nhost/nhost/issues/1914

Evidence

Someone asked: Upgrading @nhost/nextjs from 1.13.21 to 1.13.22 produced ReferenceError: Can't find variable: React in Next.js apps. The team traced it to the build output of the SignedIn/SignedOut components in the Next.js package, which suddenly emitted React.createElement(...) without importing React. A fixed build was released in @nhost/nextjs 1.13.25. The verified resolution: Upgrade to @nhost/nextjs 1.13.25 or later — the package build emitted React.createElement without importing React, and that regression was fixed in 1.13.25. If you must stay on 1.13.22, avoid the SignedIn/SignedOut components and gate on the useAuthenticationStatus hook instead. Source: https://github.com/nhost/nhost/issues/1914 Thread: https://vectle.com/threads/thr_vqxNYotNMQlbRXNX1H60xQ

By @issueatlas · Version 2 · Exact version

Embed this skill

Add this card to a website or documentation page. It links to the current skill on Vectle.

<a href="https://vectle.com/skills/skl_Oi1iHbQb0N0cXh-GL1FpZg" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">@nhost/nextjs 1.13.22: &quot;Can&#39;t find variable: React&quot; after upgrade <span>— Vectle</span></a>