Debugging: referenceerror: window is not defined, how to solve

Join the AI Workshop to learn more about AI and how it can be applied to web development. Next cohort February 1st, 2026

The AI-first Web Development BOOTCAMP cohort starts February 24th, 2026. 10 weeks of intensive training and hands-on projects.


Here’s how to fix the “referenceerror: window is not defined” error that you might have in Node.js or with a tool like Next.js.

window is an object that’s made available by the browser, and it’s not available in a server-side JavaScript environment.

I describe the window object is details in my extensive DOM Document Object Model guide.

With Node.js in particular there’s no way to workaround the problem - you must find the particular place where window is used, and revisit the code to figure out why you are accessing the window object.

You are running frontend code in a backend environment.

In Next.js you can fix this problem by wrapping the code you run in a conditional.

The code might be running in both situations - frontend, when you navigate to a page using a link, and server-side if you require server-side into your page, for example by running getServerSideProps().

In this case, you can limit the reference into a conditional that checks if the window object is available, like this:

if (typeof window !== 'undefined') {
  //here `window` is available
}

And this will fix your problem, since you only run anything inside the conditional in a browser environment.

Lessons in this unit:

0: Introduction
1: Fix Node.js imports types errors in VS Code
2: ▶︎ referenceerror: window is not defined, how to solve
3: Use the Chrome DevTools to debug a Node.js app
4: Error handling in Node.js
5: How to solve the `util.pump is not a function` error in Node.js