Production fixes & engineering notes

Debugging notes and reproducible fixes for Next.js, Supabase, PostgreSQL, TypeScript and the Node and Docker tooling around them.

385 articles

TypeScript

Fix ESLint: Module.createRequire is not a function

Reproduced on Node 10 vs Node 18 with the same node_modules: the crash is the Node runtime executing ESLint, not Parcel or a broken module resolution.

8 min read
TypeScript

Fix "X is not a constructor" from a plain require()

Why adding a property to exports and then requiring it without destructuring hands you an object instead of a constructor, reproduced on current Node.js.

7 min read
TypeScript

Fix tar EPERM: operation not permitted, futime

Reproduce the ownership mismatch behind the warning, see how a current npm install actually fails, and fix the layer that creates it.

9 min read
TypeScript

Tailwind upgrade: Could not load the configuration file

Reproduced on Windows 11 with a virtual drive: the exact failing version, why @next still breaks today, and the command that migrates a v3 project cleanly.

7 min read
Next.js

Fix: useRouter query undefined on first render

Why Next.js hydrates a dynamic Pages Router page with an empty query object, how router.isReady fixes it, and why the App Router does not have this exact problem.

7 min read
TypeScript

Fix Failed to replace env in config: NPM_TOKEN

Separate an npmrc parsing failure from registry authentication, with reproduced npm and Yarn Classic controls and a secret-safe CI fix.

8 min read
TypeScript

Fix Vite: Preprocessor dependency "sass" not found

Separate a missing Sass compiler from a webpack loader, an omitted build dependency and a Tailwind integration error before changing your configuration.

8 min read
TypeScript

Fix pnpm ERR_PNPM_LINKING_FAILED on Windows

Find the process or path preventing a pnpm rename, distinguish a locked package from a version regression, and retain the dependency resolution.

9 min read
TypeScript

Fix pnpm ERR_PNPM_OUTDATED_LOCKFILE in CI

Find the mismatched workspace importer, align the pnpm version, and prove the repaired lockfile installs without changing a byte.

8 min read
TypeScript

Fix Vite React error #130: react-multi-carousel

A current client bundle reproduces the carousel import failure before hosting, then renders successfully after changing only the component value.

8 min read
Next.js

Fix TransformStream is not defined in Jest

Separate an old Node limitation from a missing Jest global, then verify the stream reads, writes and closes without replacing the Worker runtime.

8 min read
TypeScript

Fix slow Tailwind v3 in Vite: remove catch-all safelists

Separate oversized generated CSS from plugin cost, with a single-change compiler reproduction and an Autoprefixer negative control.

8 min read
Next.js

Fix Auth.js UntrustedHost in Production

A local reproduction separates the host-trust guard from proxy configuration, environment inference and later sign-in failures.

10 min read
DevOps

Fix Docker: Client Version Is Too Old

Separate an outdated Docker client from a pinned API or the wrong context, and check the minimum your exact Engine release accepts.

9 min read
Next.js

Fix Turbopack Build Errors from a Webpack Config

Find the plugin behind the unexpected webpack hook, choose a compiler deliberately, and verify that the behaviour you need still runs.

8 min read
Next.js

Fix Next.js: Unable to Acquire the Dev Server Lock

Find the server that owns .next/dev/lock, distinguish a held lock from a leftover file, and restart without disrupting other Node applications.

8 min read
TypeScript

Fix npm ENOTEMPTY: directory not empty, rename

Read both paths in the rename error, preserve your lockfile, and distinguish a stale retirement directory from an npm regression or a file lock.

9 min read
TypeScript

Fix pnpm Ignored Build Scripts for Native Dependencies

Reproduce a missing SQLite binding, approve only its installer, and keep the same permission working in CI without enabling every dependency script.

9 min read
PostgreSQL

PostgreSQL 18 Docker: Fix Existing Volume Startup Errors

Separate a Docker mount failure from a PostgreSQL major upgrade, preserve the original volume and prove the restored database survives a restart.

11 min read
Supabase

Fix Supabase: Invalid Refresh Token Already Used

Trace which client retains an old Supabase token, preserve refreshed response cookies, and let the affected browser sign in again without a global logout.

9 min read
TypeScript

Tailwind v4 @source inline(): replace the v3 safelist

Trace an absent grid utility through a production build, replace the legacy safelist, and include shared UI classes without generating every combination.

9 min read
Next.js

Fix Turbopack's Wrong Workspace Root Warning

Trace the lockfile behind an unexpected workspace root, choose the right standalone or monorepo boundary, and separate a reported memory spike from a verified cause.

8 min read
TypeScript

Fix Vite: crypto.hash is not a function

Check the Node binary that actually starts Vite, distinguish API availability from the supported version range, and verify the fix without replacing the lockfile.

8 min read
TypeScript

Fix Vitest: Cannot find namespace vi in TypeScript

Keep mock return values checked against the real function signature, and verify both TypeScript compilation and module mocking at runtime.

8 min read
TypeScript

Fix Zod 4: errors Does Not Exist on ZodError

Repair the missing errors property without losing nested paths, hiding validation failures or turning unexpected exceptions into form errors.

9 min read
Next.js

Fix "changing an uncontrolled input to be controlled"

Why an empty state object makes React treat a text field as uncontrolled, what the React 19 wording looks like, and the react-hook-form variant of the same warning.

7 min read
PostgreSQL

Drizzle D1: migrations do not match any local migration

Why drizzle-kit migrate on Cloudflare D1 works once and then rejects every migration it applied, with id and created_at undefined, and the version pair that makes repeat runs pass again.

7 min read
PostgreSQL

drizzle-seed reset() fails on drizzle-orm beta/rc: fix

Why plain npm install drizzle-seed breaks on a Drizzle v1 project, which seed version to pair with your drizzle-orm, and what reset() really sends to PostgreSQL.

7 min read
Next.js

Fix: error while hydrating, root switched to client render

Why this error takes down the whole page instead of one component, and the two separate causes behind it: broken DOM nesting and no Suspense boundary above the failure.

8 min read
Supabase

Fix "c(...) is not a function" on Firebase SSR deploy

A Stack Overflow question with 14 votes and no accepted answer, and the GitHub issue the same reporter filed a month later with minification turned off. Together they show exactly which import fails, and that this bug was never really fixed — only avoided.

10 min read
Supabase

Google sign-in fails on an iOS PWA saved to Home Screen

Why Firebase Google sign-in rejects redirect and hangs on popup once a web app is saved to an iPhone Home Screen, straight from the engineer who answered the issue.

9 min read
Next.js

React Hook useEffect has a missing dependency: the fix

The three warnings this rule prints for one fetch function, which remedy each one wants, and a measured run showing what silencing it costs when a prop changes.

8 min read
TypeScript

Fix Jest Cannot find module on absolute path imports

Why an import that already matches moduleDirectories still throws Cannot find module: a failing test, then a passing one, for two different fixes.

7 min read
TypeScript

Fix: Local package.json exists, but node_modules missing

Why cloning a repository never brings its dependencies with it, and the one command that turns a missing-binary failure into a working start script.

7 min read
Next.js

Fix TS2882: side-effect import of './globals.css'

Why this error appears on unchanged Next.js projects overnight, which TypeScript actually raises it, and the one-line ambient declaration that fixes it under both compilers.

7 min read
TypeScript

Fix dyld "missing symbol called" in Node on an M1 Mac

Find which of Node, the compiled addon and the system library is on the wrong CPU architecture, line them up, and know what the follow-up errors mean.

9 min read
TypeScript

Fix RangeError: Invalid time zone specified in Node.js

Find which of the three causes threw the error, from the value printed after the colon, and make toLocaleString and Intl.DateTimeFormat accept the zone again.

8 min read
PostgreSQL

drizzle-kit/api: Dynamic require of "fs" is not supported

Get pushSchema, generateDrizzleJson and generateMigration importing from an ES module or a Vitest suite again: check your drizzle-kit version, upgrade, or fall back to createRequire.

7 min read
PostgreSQL

drizzle-kit migrate: relation "users" already exists

Get drizzle-kit migrate working on a database that drizzle-kit push created: why the first CREATE TABLE runs again, how to mark the old migrations as applied, and why IF NOT EXISTS only hides the problem.

9 min read
TypeScript

Fix dotenv: command not found in a NestJS start script

Get a NestJS start:dev script that calls dotenv -e running again, and avoid the dotenv 18 binary that now answers with a usage screen instead.

7 min read
TypeScript

Fix ERR spawn EINVAL from npx install-peerdeps on Windows

Why a lint script that adds Airbnb ESLint config with Yarn dies on Windows with ERR spawn EINVAL, the one-word change that makes it run, and what the fixed release does to your version ranges.

8 min read
TypeScript

Google Fonts not working in Tailwind + Vite: @import order

Why the font-inter class exists but the text stays in the default face in a React and Vite project, and the one-line move that makes the browser download Inter.

7 min read
TypeScript

Owl Carousel not working after Vite build: reading 'fn'

Why Owl Carousel works under the Vite dev server but dies in dist, and the two changes a fresh npm install now needs before the carousel loads again.

8 min read
Next.js

react-chartjs-2 fill property not working: register Filler

Why a line chart ignores fill: true, the console warning that names the cause, the per-chart and chart.js/auto alternatives, and what each one costs in bundle size.

7 min read
TypeScript

Vite server running but not working on localhost: 3 causes

Tell in one request whether Vite itself answered 404 or another server did, then move index.html, pin the host or free the port, and confirm it with curl.

8 min read
Next.js

MUI DatePicker readonly in Cypress CI: fix the variant

A wider Cypress viewport does not guarantee the desktop picker. Diagnose the media query first, then test the UI your users actually receive.

8 min read
TypeScript

Fix Docker npm EBADENGINE: Unsupported engine

Read the Required and Actual lines, distinguish npm self-upgrades from application installs, and stop a floating npm release breaking an unchanged Dockerfile.

7 min read
TypeScript

Fix npm EACCES: permission denied on package-lock.json

Separate a local lockfile permission failure from cache and global-install errors, then fix the owner without changing the dependency tree.

7 min read
TypeScript

Vite failed to scan dependencies: unwanted HTML entries

Reproduce a dependency scan that includes gitignored documentation, then narrow the entry list without hiding syntax errors in the application itself.

7 min read
TypeScript

Fix Babel "native ECMAScript module configuration file"

Get babel-jest loading your Babel config again in a "type": "module" project, and see which Node versions never hit the error at all.

7 min read
TypeScript

Fix TS2688: node_modules Is the Wrong typeRoots

Reproduce the broad typeRoots mistake, distinguish it from missing @types packages, and preserve custom global declarations while repairing tsconfig.

7 min read
Next.js

React Hook Form: Fix Confirm Password Validation

Block mismatched submissions, display the field error, and catch a confirmation that becomes stale after the user edits the original password.

8 min read
Next.js

Fix Next.js Docker: Cannot find module '/app/server.js'

Follow the server entrypoint from the Next.js build into the final image, then check the application and its static files separately.

7 min read
PostgreSQL

Prisma Nested Create Returns Undefined: Include the Relation

Separate missing response fields from missing database rows, and prove that a nested write succeeded before retrying it or changing the schema.

7 min read
Next.js

Fix Unsupported Server Component type: undefined

Keep the page on the server while repairing Container.Window: direct named imports work, and changing to a default export alone does not fix this case.

7 min read
TypeScript

Vite linked React library: fix Invalid hook call

Separate a library bundling mistake from linked-package resolution, keep React external, and prove that the component and renderer use the same React.

8 min read
Next.js

Create React App's CORS Header Goes on the API, Not the App

Which of this 2017 question's three answers still applies today, the one react-scripts already handles for you by default, and the fix that works for the rest.

8 min read
Next.js

Fix: sh: 1: next: not found on Heroku

Three different, unrelated situations produce the exact same Heroku crash — here is how to tell which one is yours before you change anything.

8 min read
Next.js

CORS Not Working on Vercel? Fix the vercel.json Headers

Why a CORS header that passes on localhost can still get blocked once Vercel routes the request, and the one-layer fix Vercel documents for it.

9 min read
TypeScript

Fix 'props.handleSelect is not a function': wrong prop

Match the prop name on both sides of the component boundary to stop the crash, and see why optional chaining or a default value only hides it instead.

8 min read
TypeScript

Fix ERR_REQUIRE_ESM on cPanel Node.js apps (Passenger)

What Phusion Passenger's own loader script does, why it throws ERR_REQUIRE_ESM on an ESM app.js, and the fix, reproduced on Node 14, 18 and 22.

9 min read
TypeScript

Fix 'The keyword enum is reserved' in ESLint + TypeScript

Why replacing react-app with airbnb drops the TypeScript parser Create React App quietly provided, and the one-line fix for both flat config and the now-removed .eslintrc format.

9 min read
TypeScript

Fix 'was not found by the project service' in ESLint

Stop ESLint from type-checking your compiled dist output, and avoid the newer project-vs-projectService conflict that now hides this exact message.

9 min read
TypeScript

Fix Vite "Cannot find package vite" in vite.config.ts

Why vite vanishes from node_modules after a clean install, reproduced on npm 9.5.0 and Node 18 with a global vite install, plus the extra step the fix needs to outlast the next npm install.

7 min read
PostgreSQL

Fix: Supabase local logs "Backend error" (and old 502s)

The same local Studio Logs pipeline, broken three different ways since 2024: here is which one you are on, and the fix for each.

8 min read
Next.js

Fix: $VARIABLE is not listed as a dependency in turbo.json

Declare the variable once, in env or globalEnv, and both the lint error and the silent runtime drop under Strict Mode disappear.

12 min read
TypeScript

Fix secretOrPrivateKey must have a value in NestJS JWT

Reproduced on @nestjs/jwt 12.0.3 and 10.0.3: why a configured JwtModule still signs with an empty key, why two popular answers fall short, and the .env load-order variant of the same error.

8 min read
Next.js

Fix: Objects Are Not Valid as a React Child

The 2015 bug reproduced today, the exact modern error text, what the production build shows instead, and the one-line fix for every cause.

9 min read
Supabase

Supabase Magic Link: The Production Checklist

A pre-launch checklist for Supabase magic link and email-OTP sign-in: the mailer cap, the redirect allow list, the PKCE email template, and the link-scanner problem that burns single-use tokens.

9 min read
Next.js

Adjacent JSX Elements Must Be Wrapped in an Enclosing Tag

The 2015 wording still fires in Babel today, but Next.js shows a different message for the same mistake, and wrapping the tags is not always the whole fix.

9 min read
TypeScript

Fix Vite: local module 'does not provide an export named'

Reproduced with Node's own ES module loader: why the browser's loader finds no export in a tsc CommonJS build, and why two of the three moduleResolution values the top answer lists don't compile.

8 min read
Next.js

Fix: Cannot set property Request of #<Object> getter

Reproduced line by line with Next.js's own polyfill file and abortcontroller-polyfill's published source across Node 16, 17 and 18, plus which of two independent fixes actually applies.

9 min read
PostgreSQL

Drizzle: Object literal may only specify known properties

Get .values() and .set() accepting your nullable Drizzle columns again: which versions lose them, why a loose tsconfig is the trigger, and the workaround that does not help.

8 min read
Next.js

Fix Cannot resolve symbol 'Routes': stale JetBrains typings

Why a JetBrains IDE flags Routes from react-router-dom 6 as unknown while the app builds, how to prove which typings file it reads, and the order of steps that stops the old copy coming back.

7 min read
TypeScript

Chrome hangs with Vite dev server: raise the file limit

See why only Chrome stalls on a big Vite app while Firefox loads it, reproduce the stall with one changed limit, and make the fix survive a reboot.

8 min read
TypeScript

Fix curl getaddrinfo() thread failed to start in Docker

Why curl fails to resolve a host in a RUN step on one server and not on your laptop, how to prove it is the engine and not the image, and which fix to pick.

7 min read
TypeScript

Module resolves to an untyped module: fix TS2665 in .d.ts

Why a hand-written declaration for an untyped package fails with "cannot be augmented", why the same block works in a .d.ts but not a .ts file under module node16 to nodenext, and the one-line move that fixes it.

7 min read
Next.js

Set the request's mode to 'no-cors'? What to do instead

What the browser's no-cors suggestion really does to an authenticated API call, the one case where it is the right answer, and the two fixes that return your data.

8 min read
Next.js

Material UI install fails on React 18 or 19 (ERESOLVE): fix

See why npm refuses the old @material-ui packages on a React 18 or 19 project, which packages to install instead, and why --legacy-peer-deps on React 19 only moves the failure to runtime.

8 min read
Next.js

Failed to find font override values: next/font/google fix

Why next/font/google warns about font override values for newer Google Fonts, why the popular fix only works on webpack, and how to get the CLS fallback back.

7 min read
Next.js

Fix Invariant: attempted to hard navigate to the same URL

Reproduced on Next.js 13.1.0, 13.2.0 and 16.4.3: why a NextResponse.next() middleware broke the 404 page, why the same invariant still fires after a redeploy, and the catch that stops it.

8 min read
TypeScript

SyntaxError: Unexpected token import means an old Node.js

Read the exact wording of the error to learn which runtime ran your code, then choose between upgrading Node and staying on CommonJS with a pinned dependency.

7 min read
PostgreSQL

Fix Prisma 'Unique constraint failed on the fields: (id)'

Prove in two queries that the id sequence is stuck behind your imported rows, reset it safely even on an empty table, and see why retrying seems to fix it.

8 min read
TypeScript

Fix npm ERR! Unexpected token '.' with nvm-windows

How to confirm the broken libnpmfund file in under a minute, why only npm 8.3.1 and later trip on it, and the reinstall that actually repairs the Node version you already have.

7 min read
Next.js

Access to fetch at accounts.google.com blocked by CORS: fix

Why cors() on your Express API cannot fix a Google sign-in started with fetch, and the three navigation patterns that make the error disappear.

8 min read
PostgreSQL

Drizzle: Cannot destructure property 'resourceArn' fix

Get drizzle-kit studio and migrate talking to Aurora through the AWS Data API again, and know which error comes next on current releases.

8 min read
TypeScript

Fix Cannot find type definition file for 'body-parser'

Why one broken folder under node_modules/@types fails the whole project, why restarting VS Code sometimes clears it, and what TypeScript 6.0 changed.

8 min read
PostgreSQL

drizzle-kit generate: Cannot find module .js under nodenext

Get drizzle-kit generate working in a "type": "module" project that writes .js extensions in its TypeScript imports, without dropping nodenext.

7 min read
Next.js

Unrecognized feature: 'interest-cohort' on GitHub Pages

Where the interest-cohort warning came from, why the meta-tag fix does nothing, and the base-path change that actually brings a blank GitHub Pages app back.

7 min read
TypeScript

Failed to parse source map: fix the missing src warning

Find which package ships the broken source map, fix it at the source if it is yours, and silence it precisely if it is not, without losing your own debugging.

8 min read
Next.js

Fix Error: NEXT_REDIRECT logged in a Route Handler catch

Reproduced on Next.js 16.4.2: why redirect() inside try/catch logs Error: NEXT_REDIRECT, sends users to the wrong URL or returns a 500, and the three fixes that hold.

7 min read
Next.js

Next.js 'URL is malformed' error: use only absolute URLs

Reproduced on Next.js 16.4.2: the relative redirect that throws, the absolute redirect that then loops on itself, and the basePath case where new URL quietly drops the prefix.

7 min read
TypeScript

Fix TS1084 Invalid 'reference' directive in @types/node

Why a types release from 2 September 2020 broke TypeScript 2.x builds overnight, why skipLibCheck does not help, and two fixes reproduced in Docker.

7 min read
TypeScript

Fix nvm use "exit status 1: Access is denied" on Windows

Why nvm install works and nvm use does not on nvm-windows 1.x, what Windows actually refuses, and three fixes: one elevated shell, Developer Mode with a user-owned symlink, or v2.

8 min read
TypeScript

Tailwind @apply not working in Storybook: add postcss-loader

Why a Sass CSS module ships a literal @apply line into Storybook with no error, why importing globals.css does not change it, and the one-loader fix, reproduced on webpack 5.

8 min read
Next.js

Next.js favicon not working: app/favicon.ico vs public/

Reproduced on Next.js 16.4.2: with an icon in both app/ and public/, next dev and next start served different files without a warning. Where each icon file must live, and what renaming to icon.ico really changes.

8 min read
Supabase

useEmulator disableWarnings: TS2554 Expected 1 arguments

Reproduced on firebase 8.10.1, 9.23.0 and 13.0.0: which declaration file rejects the options object, what disableWarnings really silences in each version, and the two fixes that compile.

8 min read
TypeScript

Fix shadcn CLI wrong component paths with extended tsconfig

Why npx shadcn add creates a literal @renderer folder or writes outside your project in electron-vite and WXT apps, and three fixes reproduced on shadcn 4.22.1.

8 min read
PostgreSQL

Drizzle db.query drops pgSchema: relation does not exist

Get db.query.findMany() and findFirst() reading your custom Postgres schema again: which drizzle-orm versions drop the schema, why, and three tested ways out.

7 min read
TypeScript

npm install stuck on idealTree buildDeps: find the stall

Reproduced on npm 10.9.9 against a server that accepts the connection and never replies: what each log level shows, why fetch-timeout does not end the wait, and the one-line fix.

8 min read
Next.js

Fix shadcn combobox: item was not found at the registry

Why the combobox is the one component the CLI cannot find in an older shadcn project, reproduced with shadcn 4.22.1, and the one-line change for each Tailwind version.

8 min read
TypeScript

require() of ES Module string-width: fix yarn.lock in Docker

Why yarn install in a node:18 container dies in node-gyp with ERR_REQUIRE_ESM from wide-align, how to spot the broken yarn.lock entry, and two fixes reproduced in Docker.

8 min read
TypeScript

Expected identifier but found "import" (define name) in Vite

Why a Vite 6 project stops before the dev server starts, why reinstalling from the same lockfile brings the error back, and the one-line update that clears it.

7 min read
TypeScript

Import a directory of files in a loop: TS1343, require()

Two working loaders for a folder of Express route files, one synchronous and one async, plus the startup-order bug that forEach with import() hides. Reproduced in Docker.

9 min read
TypeScript

Fix Invalid options object: allowedHosts[0] with CRA proxy

Find which of the two triggers crashes npm start, pick a fix that still proxies your API calls, and avoid the http-proxy-middleware v3 path trap.

7 min read
Supabase

linkWithRedirect fails with the Auth emulator: 3 causes

Three different errors hide behind one symptom, and only one of them is about the emulator. Two were reproduced with linkWithRedirect against the emulator, the API key one with the emulator disconnected.

8 min read
PostgreSQL

Prisma "Ambiguous relation detected": name both relations

Turn a P1012 "Ambiguous relation detected" into a valid referral schema: what the validator compares, the second error naming uncovers, and three tested models.

8 min read
TypeScript

Fix grpc-tools 404 on darwin-arm64.tar.gz (Mac M1)

Get grpc_tools_node_protoc running on an Apple Silicon Mac, understand why every workaround still needs Rosetta 2, and check which binary actually landed in node_modules.

9 min read
TypeScript

Type instantiation is excessively deep: defer or cap it

Make a recursive union type compile inside generic functions again, without losing the payload checks on concrete modules.

8 min read
TypeScript

Tailwind CSS not working after Vite build: dev vs dist

Find out in two commands whether the built CSS really lacks your classes or the browser never loaded it, then apply the one change that fixes each case.

8 min read
PostgreSQL

Drizzle "table name specified more than once" in nested with

Get a deep findMany({ with }) tree running again: how the 63-byte alias limit makes two Drizzle aliases identical, a pre-flight check, and two tested fixes.

8 min read
TypeScript

Fix Vite 'Top-level await is not available' build error

Why vite dev works but vite build fails on a top-level await, which setting fixes the build and which one only fixes dev, reproduced on Vite 2.9, 5.4, 7.3 and 8.3.

8 min read
Next.js

Fix Export encountered errors on following paths in Next.js

Read the path list as a map back to your own code: /about/undefined, /components/Navbar and /about/[slug] each point at a different bug, rebuilt on Next.js 16.4.2 (and the first on 14.2.35 too).

8 min read
TypeScript

Fix "esbuild-linux-64" could not be found: Vite in Docker

Why vite dev fails in a node:16-slim container with a mounted frontend folder, why npm rebuild esbuild works there but not on current Vite, and the compose change that holds.

8 min read
Supabase

auth/popup-closed-by-user fires 8 s late: cause and fix

Your login button can come back to life a fraction of a second after the user closes the Google popup, without patching the SDK or breaking slow sign-ins.

8 min read
TypeScript

Fix Cannot find module defined in tsconfig paths at runtime

Why tsc compiles an @alias import cleanly and Node still crashes on it, and five runtime fixes tested on Node 22 with TypeScript 5.9.3 and 7.0.2.

8 min read
PostgreSQL

Fix Prisma "Could not figure out an ID in create" panic

Find which of the two empty-insert causes you have in one psql query, apply the one-line fix, and see why Prisma 7 returns null instead of crashing.

9 min read
TypeScript

Custom font is not working in Tailwind CSS: fix @font-face

Why DevTools shows your Tailwind font family while the text stays in the default face, and the two-line @font-face change that makes the file load.

7 min read
TypeScript

Fix 'ESLint was configured to run on' in Cypress tests

Keep the Cypress folder out of the root tsconfig, as Cypress recommends, and still lint every .cy.ts file with type information.

8 min read
TypeScript

Fix esbuild spawnSync ETXTBSY in Docker: Node 20.3 io_uring

Why npm install of esbuild started failing with ETXTBSY on node:20.3 images in June 2023, what changed in libuv and Docker since, and the build fix that holds today.

8 min read
Next.js

Next.js app/api 404 vs 405: route.js and named exports

Reproduced on Next.js 16.4.2: why app/api/admin/all.js answers 404, what a 405 means instead, and the static export case that only 404s in production.

8 min read
Next.js

SyntaxError: Unexpected end of input with mode: 'no-cors'

The JSON is in DevTools but never reaches your code: see why an opaque response has nothing to parse, and the two fixes that actually return the data.

7 min read
Next.js

Fix next-auth /api/auth/error in production: NO_SECRET

Reproduced on next-auth 4.24.15 and Next.js 15.5.28: why sign-in works on localhost but fails after deploy, what a 404 versus a 500 at /api/auth/error tells you, and the env change that fixes it.

8 min read
TypeScript

Fix "No license field" when package.json has a license

Read the path in the warning, find the stray package.json above your project, and silence the line without inventing an open-source licence.

7 min read
PostgreSQL

Fix NeonDbError: Error connecting to database: fetch failed

Find out in one log line why Drizzle cannot reach Neon, why reads and writes fail together, and how to prove the connection works again.

9 min read
DevOps

Next.js + Strapi in Docker: fetch failed ECONNREFUSED 1337

Read the address in the error, swap localhost for the Strapi service name in server-side fetches, and keep a separate public URL for anything the browser loads.

8 min read
TypeScript

Cannot use 'import.meta' outside a module: Jest + Vite fix

Three fixes for import.meta.env in Jest tests of a Vite app, each reproduced, plus the secret-leak trap in the popular process.env answer.

8 min read
Supabase

auth/invalid-api-key still throws without a real apiKey

The rejection happens one function call earlier than most people expect, before any server, project or emulator is ever reached.

7 min read
TypeScript

Fix slow Docker ARM64 multi-platform builds on GitLab CI

Stop waiting on an emulated arm64 build to time out the job: three fixes, in the order that actually removes the wait instead of just hiding it.

9 min read
Next.js

Fix: Do Not Use Array Index in Keys (React)

Why key={index} breaks on reorder and removal, how to prove it with an uncontrolled input, and the three ways to get a real key when your data has no id.

9 min read
Next.js

Fix "only exports components": Fast Refresh ESLint error

The exact ESLint rule that throws this, the six code paths that produce six different wordings, and the one move that actually silences it.

9 min read
Next.js

Fix Vercel 404: NOT_FOUND Deploying an Express App

Why Vercel answers 404: NOT_FOUND for an Express app that runs locally, and the two things to check: the entry file Vercel looks for, and a leftover Build command/Output Directory setting.

8 min read
Next.js

Next.js "Failed to load SWC binary": the real fix

Why next dev or next build refuses to start, what actually happens when npm cannot find the right @next/swc binary, and the one reinstall that puts it back — reproduced on Next.js 16.4.2.

8 min read
DevOps

Next.js builds locally, fails in Docker: fix the image error

The exact same source code compiles on your laptop and crashes in the container because the container runs a Node major version your local shell does not — add sharp and the crash disappears.

9 min read
PostgreSQL

Fix Prisma v7 paths[1] must be of type string error

A step-by-step fix for the Prisma 7 startup crash, reproduced against Postgres, plus the driver-adapter error that follows it.

8 min read
TypeScript

Fix: TypeError: Invalid PostCSS Plugin found at: plugins[0]

A postcss.config.js that lists plugin names as plain strings compiles nothing — the array syntax needs each entry already resolved, not a package name.

7 min read
TypeScript

Fix: unable to determine transport target for pino-pretty

Reproduce the exact failure in a clean container, then pick the right fix: skip the transport outside production, install pino-pretty as a real dependency, use it as a stream, or wire up a bundler plugin.

9 min read
Supabase

Fix "More Than One Relationship Was Found" in Supabase

The embed is not broken — PostgREST just cannot guess which of two many-to-many paths you meant, and it tells you both candidates in the error body.

8 min read
TypeScript

Fix MikroORM: global EntityManager instance is disallowed

A fresh MikroORM 5/6 project throws a ValidationError on the first em.create() call. Here is why the global EntityManager is blocked, and the two ways to fix it properly.

7 min read
DevOps

Fix Cannot find module '/dist/main' in a Docker build

Find out which file the builder stage really emitted, then fix the Dockerfile order and the TypeScript output layout so node dist/main starts.

8 min read
Next.js

Fix Failed to fetch dynamically imported module (Vite)

Reproduce the production-only Vite error in Chromium, see why retrying the same import does nothing, and ship a reload handler that cannot loop.

8 min read
Next.js

Fix response data evicted from inspector cache in Chrome

Separate a missing DevTools response body from a failed download, then capture and check the contents without relying on a 200 status or a guessed size limit.

8 min read
TypeScript

Docker: Run a Shell Command Before ENTRYPOINT at Startup

Your envsubst step ran while the image was built, long before the container got its variables. A small entrypoint script runs it at start-up instead and still hands control to npm or node.

8 min read
TypeScript

Fix Day.js: dayjs_1.default is not a function

Separate a successful type check from a callable runtime import, and avoid the namespace workaround that fails when interop is enabled.

8 min read
Supabase

Fix Firebase 'Invalid site key or not loaded in api.js'

Trace the two Enterprise script loaders, confirm which Firebase release contains the repair, and distinguish a stale SDK from a genuine key configuration problem.

7 min read
TypeScript

Fix Tailwind v4 padding and margin not working

Prove that the utility exists but loses the CSS cascade, restore spacing with one layer change, and inspect the child margins behind space-x.

8 min read
Next.js

Fix Next.js missing .next/BUILD_ID at server startup

Separate an absent build from the wrong application root, a mismatched output folder and development artifacts, using the file the production server checks.

7 min read
Next.js

Fix Next.js Global CSS cannot be imported: Pages Router

A working global Sass entry point, the rename-only trap, and the different rule for App Router projects, checked against current Next.js builds.

8 min read
DevOps

Fix Nginx 502 in Docker Compose: upstream localhost

Trace the upstream address in the Nginx log, prove the Node listener is reachable from the proxy, and separate a wrong host from a loopback-only bind.

7 min read
TypeScript

Fix npm Conflicting peer dependency: react@16.14.0

Read the package refusing your installed React version, distinguish the alternative candidate from the selected version, and preserve a verifiable lock file.

8 min read
PostgreSQL

Fix Prisma 42P01: table exists but raw query cannot find it

A catalog listing and a missing-table error can both be correct. Trace the name PostgreSQL resolves, preserve bound search values, and verify mapped tables.

7 min read
PostgreSQL

Fix Supabase CHARINDEX does not exist (SQLSTATE 42883)

Repair the email-to-username expression without adding columns or hiding trigger failures, with a PostgreSQL reproduction and signature checks.

8 min read
TypeScript

Fix Tailwind v4: dark class changes no background colour

Keep one bg-bgContrast class while changing its inherited colour, with real browser checks for the wrong theme syntax and the inline-token trap.

8 min read
TypeScript

Fix Vite 'global is not defined': shim or move fs code

Why each define line only reveals the next error with fs-extra (reproduced on Vite 2.9.5), which shim works for Buffer-based libraries on Vite 2 and 8, and how to type it.

8 min read
PostgreSQL

Drizzle TableLikeHasEmptySelection error in generic helpers

Keep your reusable Drizzle query helpers compiling on 0.45.4: why only generic code breaks, four workarounds that type-check, and what each one costs you.

8 min read
PostgreSQL

drizzle-kit: Cannot use import statement outside a module

Get drizzle-kit generate, push and migrate past an ES module import in your schema: find which loader and which Node defaults you have, then pick one of three fixes.

7 min read
DevOps

Fix Cannot find module 'dotenv' in Docker Compose (Node)

Reproduced step by step in Compose: why npm install in the Dockerfile is not enough under a bind mount, and why a new package still goes missing after a rebuild.

8 min read
TypeScript

Fix Cannot find name 'AbortSignal' in axios typings

Which axios releases trigger TS2304, why upgrading axios no longer clears it, and the tsconfig fixes reproduced on TypeScript 4.5.2 and 7.0.2.

8 min read
TypeScript

Fix: Directory import is not supported resolving ES modules

Why Node throws ERR_UNSUPPORTED_DIR_IMPORT under "type": "module", three fixes reproduced on Node 24, and why the old specifier flag no longer helps.

7 min read
DevOps

Docker Hostname ENOTFOUND in Next.js Prod but Not in Dev

Why next dev reaches your Compose service while the production image build cannot resolve it, proved on Next.js 16.4.0, with a fix for the Pages Router and the App Router.

8 min read
Next.js

Fix: A Route is only ever to be used as the child of Routes

Why v5-style routing code crashes on React Router 6 and 7, the two-step migration that fixes it, and the second error that appears if you only do half of it.

7 min read
Next.js

Fix Functions cannot be passed directly to Client Components

Read the caret line to find the exact prop, then keep that function on the client side of the boundary: four reproduced shapes on Next.js 16.4.0, and why "use server" rarely fixes it.

8 min read
TypeScript

Fix ERR_MODULE_NOT_FOUND: relative import missing .js

Why an Express app with "type": "module" cannot find ./config/app, why the flags from older answers now do nothing, and how TypeScript catches it at compile time.

8 min read
TypeScript

Vite build Unexpected token in node_modules: fix define

Why vite build fails on react-router-dom while vite dev works, which define line triggers it, and a polyfill setup that builds, reproduced on Vite 2.9.12.

9 min read
Next.js

Next.js: Error: only absolute urls are supported (fix)

Why fetch("/api/products") works after a client-side click but throws on refresh, what each fetch implementation prints, and the two fixes that hold in both routers.

9 min read
Next.js

Fix react-scripts: Permission denied on npm run build

Find out in two commands whether your react-scripts bin lost its execute bit or lives on a noexec filesystem, then apply the fix that matches, instead of chmod 777 and sudo.

8 min read
TypeScript

Fix tsc SyntaxError: Unexpected token '?' on old Node.js

Find which Node actually runs tsc, move it to a supported runtime or pin a compiler that matches it, and avoid the different error a plain npm install -g typescript now gives on Node 12 and 14.

7 min read
Supabase

Firebase Google Sign-in on Vercel: Custom authDomain Fix

Keep the Next.js app on Vercel and make the Google sign-in screen name your own domain instead of the project-id.firebaseapp.com subdomain.

8 min read
TypeScript

Fix Vite [commonjs--resolver] Failed to resolve entry

Reproduced on Vite 3, 4, 7 and 8: why a CommonJS dependency makes vite build stop on a package entry, why the odd "main" field is not the cause, and three fixes that each work on their own.

8 min read
TypeScript

Fix Failed to resolve "@tailwindcss/vite": ESM only error

Why a Vite 6 project that builds fine refuses to load the Tailwind CSS v4 plugin, reproduced step by step, with the two one-line fixes and the variant newer plugin releases print.

7 min read
DevOps

Fix RabbitMQ ECONNREFUSED 5672 between Docker containers

Your consumer starts, RabbitMQ starts, and the first connect is refused. Fix the amqp URL, pick a healthcheck that waits for port 5672, and avoid the guest trap.

8 min read
DevOps

Fix Sequelize "Cannot find /config/config.json" in Docker

Reproduced in Docker: why moving WORKDIR alone still fails, why build-time migrations cannot reach the database, and a Compose setup that migrates on start.

8 min read
TypeScript

Vite ERR_DLOPEN_FAILED: specified module could not be found

When reinstalling node_modules changes nothing, read the [cause] line: the Rollup binary is there, Windows just cannot load one of its DLLs.

7 min read
TypeScript

Fix ERR_REQUIRE_ESM in gulp: ESM-only plugins, old gulp-cli

Why renaming to gulpfile.mjs still fails on Node 24 with gulp 4, what changes on newer Node, and three fixes reproduced in Docker.

8 min read
TypeScript

npm EACCES without sudo: fix the cache and global prefix

Reproduced on npm 11.19.0: how to tell the cache EACCES from the global-install EACCES by the path line, and the two fixes npm documents that end sudo for good.

8 min read
Next.js

NextAuth login failed: handle CredentialsSignin, v4 and v5

Reproduced on next-auth 4.24.15 and 5.0.0-beta.32: what signIn() returns on a wrong password, why the accepted if (ok) check breaks on v5, and how to get a usable error code.

9 min read
TypeScript

npm WARN requires a peer of X but none is installed: fix

Read the peer range npm prints, install it into your app with one command, and see why the same project installs cleanly on npm 7 and later.

7 min read
Next.js

Fix 'authOptions' is not a valid Route export field

Reproduced on Next.js 13.4.3 (Linux and Windows), 15.4.11 and 15.5.27: why exporting authOptions from the NextAuth route breaks the build only, and the one-file move that fixes it.

8 min read
PostgreSQL

Fix Can't resolve 'fs' When Importing pg in Next.js

Where a node-postgres Pool belongs in a Next.js app, why a Client Component import breaks the build, and how to prove one pool serves every request.

9 min read
PostgreSQL

Supabase db push: must be owner of table (SQLSTATE 42501)

Why a migration that runs fine locally is refused on the remote project, which owner fixes work from the postgres role today, and when only Supabase support can help.

7 min read
TypeScript

Fix print "%s.%s.%s" invalid syntax in yarn install

Find the old node-gyp hiding in your lockfile, see why pointing it at Python 3 or Python 2 no longer works, and get yarn install green again with Dart Sass.

8 min read
PostgreSQL

Drizzle: Offset is outside the bounds of the DataView

Make findFirst({ with }) return your PostGIS points again: why only nested relations crash, and three fixes tested against PostGIS 3.6.

8 min read
Next.js

Cannot assign to 'current' (read-only): useRef TS2540 fix

Two characters of parentheses decide whether TypeScript hands back a mutable ref or a read-only one. Here is how to read the overloads and fix the ref in place.

7 min read
Next.js

Fix Cannot find module 'caniuse-lite/dist/unpacker/agents'

Why npm install, npm ls and update-browserslist-db all report a healthy tree while the error stays, and the one reinstall that actually puts the missing files back.

8 min read
Supabase

Firebase: Cannot read property 'getProvider' of undefined

Why passing firebaseConfig to getFirestore() breaks inside the Firebase SDK, reproduced on firebase 9.0.0 and 13.0.0, with the corrected Next.js module and the wrapper that only hid the bug.

7 min read
PostgreSQL

Keystone 6 Foreign Key NOT NULL on a Relationship Field

Turn a nullable Keystone relationship column into a NOT NULL foreign key, backfill the rows that block the push, and replace raw Prisma errors with clear messages.

7 min read
Next.js

Fix Cannot read properties of undefined (reading 'apps')

A Firebase v8 tutorial pasted into a project with a current firebase package: why firebase.apps is undefined, the two imports that fix it, and what Turbopack prints instead.

7 min read
TypeScript

npm ERR! Invalid version: "1" — make it full semver

Find which package.json carries the short version, rewrite it as major.minor.patch, and know which npm commands check the field on old and current npm.

7 min read
TypeScript

Fix return old(m, filename) ERR_REQUIRE_ESM in ts-node

Why the ts-node frame appears, why the dynamic import() the error suggests still fails under module commonjs, and five fixes tested on Node 18 and 24.

8 min read
Next.js

Minified React error #425: Text Mismatch After Deploy

Decode #425 and its companion #423, reproduce both triggers from the Stack Overflow thread on Next.js 12.2.5, and see what React 19 prints instead.

8 min read
Next.js

Fix UnhandledSchemeError: Reading from "node:buffer"

Reproduced on Next.js 16.4.0 with webpack: which import triggers the error, why bare "buffer" builds but "node:buffer" does not, and the three fixes that compile.

8 min read
PostgreSQL

Fix drizzle-kit migrate Hanging After Using 'pg' Driver

Get a real error message, or a finished migration, out of a drizzle-kit migrate that sits on its last line: two causes you can rule out in a minute, and two ways to apply the migrations anyway.

8 min read
TypeScript

Fix EACCES: permission denied, mkdir node_modules/.cache

Reproduced in Docker: why the cache directory cannot be created, the one-line Dockerfile move that fixes it, and why an old volume keeps the error alive after a rebuild.

7 min read
Supabase

Fix 'Failed to get document because the client is offline'

The emulator call from the Stack Overflow question, reproduced with the Node SDK against a real Firestore emulator: what the SDK builds from the host string, which other causes give the same error, and which do not.

7 min read
TypeScript

Ineffective mark-compacts near heap limit: npm build fix

Find the heap cap your build actually runs under, raise it in the place that reaches the crashing process, and avoid the two spellings that silently change nothing.

8 min read
TypeScript

Fix babel-node: not found on Heroku (devDependencies pruned)

Make a Babel-based Node app start on Heroku: see what the Node.js buildpack removes after the build, then move the compile step to build time so npm start only needs node.

8 min read
PostgreSQL

Prisma nested connect: syntax error at or near "ON"

Find out in one query whether your production PostgreSQL is too old for Prisma, then move the data to a supported server with pg_dump and pg_restore.

8 min read
Next.js

Super expression must either be null or a function: Next.js

Reproduced on Next.js 16.4.0 and 13.5.11: why the carousel import crashes the App Router, the two-file fix that keeps your page a Server Component, and the error that comes next.

7 min read
PostgreSQL

Fix Drizzle Rollback: let the exception escape

Prove whether a swallowed manual rollback commits, then check the persisted rows after changing one catch handler.

8 min read
Supabase

Fix npm ERESOLVE: Firebase prerelease peer conflict

Read the two version requirements behind this Firebase install failure, reproduce the prerelease mismatch, and select a stable dependency tree.

8 min read
TypeScript

Fix tsc is not recognized: run the local compiler

Prove that TypeScript is installed, then make Command Prompt and VS Code build with that project version without a global compiler.

7 min read
TypeScript

Vite entry module (index.html): fix .dockerignore

Reproduce a Docker build failure caused by excluded HTML, then repair the context with a single ignore-file exception.

8 min read
TypeScript

Fix Tailwind v4 IntelliSense not working in VS Code

Find which layer has stopped working: Tailwind project discovery, document mapping, or automatic suggestions inside JSX strings.

8 min read
DevOps

Fix Docker Compose 'Exec format error' loading a library

Your app crashes on docker-compose up while it works fine outside Docker — here is why a native module refuses to load, and the three fixes that actually remove it.

9 min read
TypeScript

Fix: exports is not defined in ES module scope

How Node decides CommonJS vs ES module, and three remedies for aligning source syntax, compiler output and the runtime.

7 min read
PostgreSQL

Supabase pgsodium_trg_mask_update: Fix Owner Error

Creating or editing a table in the Supabase dashboard throws a permission error that names a trigger you have never heard of. It is not a missing grant — it is Vault's pgsodium extension holding an event trigger your role does not own. Here is the workaround that keeps you working today and the fix that resets ownership for good.

8 min read
Supabase

Fix Firestore INTERNAL ASSERTION FAILED (ID: ca9)

Why rapid listener churn can push a Firestore bookkeeping counter below zero, which part of this is actually fixed, and the one mitigation reporters say works when upgrading does not.

9 min read
DevOps

Jenkins "Invalid agent type docker specified" Fix

The Jenkinsfile is not broken — the controller just does not know what "docker" means as an agent type until the right plugin registers it.

7 min read
TypeScript

Fix: Jest SyntaxError Unexpected token export (uuid library)

The fix depends on whether the stale uuid build is yours or a transitive dependency's — here is how to tell, and the exact config for each case.

8 min read
Supabase

Firebase Hosting 404s Every Route Except index.html

A static Next.js export deploys cleanly to Firebase Hosting, yet every page but the homepage 404s. Reproduced locally, with the config that actually fixes it.

8 min read
TypeScript

Prettier and ESLint Indent Rules Conflicting: the Fix

Stop fighting indent: Expected indentation of 2 spaces but found 4 by turning off the rule that conflicts with Prettier, not by retuning it.

8 min read
DevOps

Fix: Sequelize authenticate() Hangs With No Success or Error

Your container logs "start connect" and then nothing — no success, no error. The connection is not failing silently; it is still trying, because pg never times out by default.

8 min read
Next.js

Fix: FetchError request to localhost:1337 ECONNREFUSED ::1

The exact fix for the ECONNREFUSED ::1:1337 error between Next.js and a local Strapi API, and why it depends on your Node version.

7 min read
TypeScript

Tailwindcss not working with Next.js: fix the config

A Next.js build that finishes clean but ships a page with zero Tailwind styling almost always has one wrong setting: the paths Tailwind scans for class names.

7 min read
TypeScript

Fix: No loader is configured for ".node" files (Vite)

Trace the import that brings a native addon into the dev scan, and distinguish the tested Vite 4 behaviour from newer bundlers.

7 min read
Supabase

Fix Firestore 'Host has been set in both settings()' error

Why Next.js reloads turn a harmless emulator warning into a hard FirebaseError, what changed in the modular SDK, and a setup that survives every reload.

8 min read
PostgreSQL

Fix ECONNREFUSED 127.0.0.1:5432 in GitHub Actions

Your Postgres service is healthy, yet the migration step cannot reach it. Pick the host that matches how the job runs, and make Sequelize read DATABASE_URL.

8 min read
TypeScript

Unexpected any. Specify a different type: fix or disable

Make @typescript-eslint/no-explicit-any go quiet for the right reason: a scoped disable that ESLint actually reads, a config override, or a real type.

8 min read
PostgreSQL

Prisma $queryRaw TS2345: 'string' not assignable to Sql

Why a NestJS PrismaService rejects a template literal in brackets, three fixes that compile and run on Prisma 7, and the two errors that come next.

8 min read
Next.js

NextAuth: Property 'session' does not exist on type '{}'

Reproduced on Next.js 12.3.4, 13.0.0 and 16.4.0: why the session prop broke in _app.tsx, the one-line generic that fixes it, and why the d.ts override only seems to work.

8 min read
DevOps

Fix: React hot reload doesn't work in a Docker container

See why editing a file on the host leaves the container blind, reproduce it with a negative control, and pick the right polling flag for your react-scripts or Vite version.

9 min read
TypeScript

Cannot access 'Player' before initialization: ESM cycle

Find the import loop behind the ReferenceError with madge, then cut the one edge that points from the base class back to its subclasses.

8 min read
TypeScript

Fix shadcn "No Tailwind CSS configuration found" in Vite

What shadcn init actually looks for before it says Tailwind is missing, reproduced on Tailwind 3 and 4 with the one line that fixes each.

8 min read
TypeScript

Fix "Cannot apply unknown utility class border-border"

Reproduced on Tailwind 4.1.4 to 4.3.3 and 3.4.19: the four wordings of this error, the @config path that resolves, the hsl() trap in @theme, and the two v3 causes.

9 min read
TypeScript

Fix "Missing specifier" & npx tailwindcss init Errors

Why a clean npm install turns a working Vite + Tailwind build into three errors at once, reproduced one at a time with the fix for each.

8 min read
DevOps

Fix Docker Compose environment 'unexpected type map' error

See the three wordings this error has had across Compose releases, fix the line in either valid form, and avoid the quoted look-alike that hides the error but loses the variable.

8 min read
DevOps

Docker 'OCI runtime create failed': a flag after the image

See why runc tries to execute -w, why the official node image now answers node: bad option: -w, and which cause each other create-time message and exit code points to.

9 min read
TypeScript

Fix ERR_IMPORT_ASSERTION_TYPE_MISSING when importing JSON

Match the import form to the Node.js release that runs your code, make tsc flag the missing attribute at build time, and handle the two errors that come next.

9 min read
Supabase

Fix "Assertion failed: resolving hosting target" (Firebase)

firebase deploy says this "should have caused an error earlier". With a single hosting object and a dead login it did, and the CLI threw it away. Both causes, reproduced on firebase-tools 15.32.1, and how to tell them apart.

9 min read
Supabase

Fix Firebase Functions Deploy: Missing: X from lock file

The build server runs npm ci with a stricter config than your laptop. Here is why that produces dozens of "Missing" lines on a lockfile that installs fine locally, reproduced end to end.

8 min read
Next.js

Fix localStorage is not defined after 'use client' (Next.js)

The cookie banner from the Stack Overflow question, rebuilt on Next.js 16.3.8: why 'use client' does not stop the crash, the useEffect fix, and the other errors Node 25 and 26 print.

9 min read
Next.js

Fix: "[object Date]" Cannot Be Serialized as JSON

A Date prop cannot go straight from getStaticProps to the page — convert it first, or the page will not build.

7 min read
TypeScript

Fix 'Missing parameter name at 1' in Express 5 routes

Your Express 5 server crashes at start-up. One changed route string brings it back, and on current installs the message itself names the route to change.

9 min read
PostgreSQL

Fix: TypeORM "array is not supported in postgres"

Reproduced the exact failure and the fix on PostgreSQL 16: an array column needs an explicit base type plus array: true, or synchronize throws.

7 min read
DevOps

Fix Docker Compose "unknown flag: --iidfile" Build Error

The flag Compose added is real; the CLI parsing it is the part that is too old. Find which docker binary your build actually runs, then fix that one.

7 min read
PostgreSQL

Fix npx prisma db push Hanging on Supabase (Port 6543)

Reproduced against Supavisor: the same schema waits until killed on port 6543 and syncs on 5432. The port, directUrl and prisma.config.ts fixes, version by version.

8 min read
TypeScript

Fix Cannot find module @rollup/rollup-win32-x64-msvc

Find out where your node_modules came from, reinstall it for the machine that runs Vite, and avoid the popular fix that breaks Linux CI and Docker builds.

8 min read
DevOps

Fix Could not find a required file: index.html in Docker

Prove whether a volume is hiding public/index.html, fix the mount path or the COPY order, and know why docker run shows the file while Compose does not.

8 min read
PostgreSQL

Fix Postgres 5432 bind: address already in use in Docker

Tell the Docker messages apart, find what owns port 5432 on Linux, macOS or Windows, and pick between stopping it and moving the published port.

8 min read
TypeScript

Fix error:0308010C digital envelope routines::unsupported

Find which part of your build still asks for MD4, apply the one-line workaround to unblock a deploy, then remove it with a webpack or react-scripts upgrade.

8 min read
TypeScript

Fix Node Sass could not find a binding for your environment

Read the two environment lines in the error, rebuild the binding for the Node that actually runs your build, and know when the only real fix is moving to Dart Sass.

8 min read
TypeScript

Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: subpath not in exports

Read the package exports map, tell a private deep import from an import-only entry, and pick the one change that makes the require or import resolve.

9 min read
Next.js

Fix Vercel 'Git author must have access to the project'

Work out which of the three access rules blocked your commit, fix the author identity or the team setup, and get pushes deploying again.

8 min read
TypeScript

Fix gyp: No Xcode or CLT version detected! in npm install

Learn which of the three checks node-gyp runs on macOS is failing, repair the Command Line Tools, and get native modules compiling again.

9 min read
Next.js

Next.js Images Not Loading from public/static Folder: Fix

Which URL serves a file from public/, why next/image answers 400 instead of 404, and what basePath and a production server change.

8 min read
Next.js

Can't Import SVG in Next.js: Fix for Turbopack and Webpack

Why <Logo /> fails with "Element type is invalid" or "Module parse failed", and the SVGR setups that build on Next.js 16 with both bundlers.

8 min read
PostgreSQL

Prisma deleteMany: Foreign key constraint failed (P2003)

Why profile.deleteMany() is blocked by Project_profile_email_fkey, which common tweaks leave the error in place, and how to prove the child rows are really gone.

9 min read
PostgreSQL

Prisma $queryRaw Fails With Variables Inside Single Quotes

Why interval and LIKE patterns break in Prisma raw SQL, the rewrites that work on Prisma 6 and 7, and how to prove the query now uses your value.

8 min read
Next.js

Fix: blocked by CORS policy from origin localhost:3000

The browser, not your server, is refusing the response — read the exact wording of the console error to know which of three fixes actually applies.

7 min read
PostgreSQL

Fix: Can't Migrate Schema Using Prisma With Supabase

The message comes from PgBouncer, and the same mistake now shows up as a silent hang: which port Prisma Migrate needs on Supabase, and how to keep both URLs in Prisma 6 and 7.

7 min read
TypeScript

Fix: import.meta.env Undefined on Production Build (Vite)

Vite strips anything not prefixed VITE_ out of the client bundle on purpose — here is how to confirm that's the cause and the three ways to fix it.

6 min read
TypeScript

Fix: ReferenceError: jest is not defined (ESM tests)

Access Jest's mocking object in native ESM tests without confusing it with the test, expect and global names that remain available by default.

6 min read
DevOps

Fix: sh: tsc: not found in Docker build

Two different causes produce the identical "tsc: not found" — here is how to tell them apart, and the multi-stage fix for both.

6 min read
TypeScript

Fix Cannot find module '@vitejs/plugin-react' in Vite

Read one line of the tsc output to tell a missing package from a resolution setting, then fix vite.config.ts in the tsconfig that actually owns it.

7 min read
DevOps

Docker: Override or Remove ENTRYPOINT From a Base Image

Distinguish a Dockerfile override from a runtime override, then check which command the final image and container actually execute.

7 min read
PostgreSQL

Fix ECONNREFUSED 127.0.0.1:5432 in Docker Compose (Node)

Your Node app and Postgres both start, yet every query fails with connection refused. Read the address in the error, fix the host, and gate startup on pg_isready.

8 min read
TypeScript

Fix npm WARN package.json: No repository field

The warning is informational and harmless. Silence it for good in an application, fill it in properly for a library, and know why modern npm no longer prints it.

7 min read
Supabase

Fix "supabaseUrl is required" in Supabase JS

The error reads like a typo in a URL, but almost every case is a build-time environment variable that never made it into the bundle.

7 min read
TypeScript

Fix: Tailwind PostCSS Plugin Has Moved (Vite + React)

The exact steps to resolve the Tailwind v4 PostCSS plugin relocation error in a Vite + React + TypeScript build.

7 min read
Next.js

Fix /tmp/chromium libnss3.so Error on Vercel and Lambda

Get headless Chromium launching again in a Vercel Function or on AWS Lambda, and understand why pinning Node 14 was never a real fix.

8 min read
TypeScript

Fix Cannot find name 'console' in TypeScript (TS2584)

console.log fails to type-check in a Node project. See which two tsconfig settings hide console, why the compiler hint points the wrong way, and the fix.

7 min read
PostgreSQL

Prisma Migrate P3014: permission denied to create database

Hit `P3014: permission denied to create database` when running Prisma Migrate on Heroku Postgres? Use prisma db push, a separate shadow database, or grant CREATEDB — and fix hangs with Supabase pooled connections.

7 min read
DevOps

Fix 'exec format error' on AWS Fargate: ARM vs x86 images

Your container runs locally but Fargate kills it on start. Check which CPU architecture the image was built for, then rebuild or change the task platform.

7 min read
DevOps

Fix OCI runtime exec failed: executable file not found

The container is fine; the command you asked for is not in it. Find out what the image really ships, then install the tool or bring it in from outside.

7 min read
PostgreSQL

Prisma Migrate Dev Hangs? Fix the Supabase Pooler Stall

Reproduced on Supavisor: migrate dev waits at an early query on 6543 and migrates in a second on 5432. The fix for Prisma 6 and 7, and why the advisory lock is not the cause.

9 min read
TypeScript

Fix Rollup failed to resolve import "/src/main.tsx" in Vite

Vite build fails with 'Rollup failed to resolve '/src/main.tsx'' when index.html is placed inside src and the script tag uses an absolute path. Fix it by correcting the file structure.

4 min read
PostgreSQL

Fix Deno 'UnsupportedCertVersion' TLS Error on Supabase

Deno Deploy throws 'UnsupportedCertVersion' TLS error when connecting to Supabase Postgres. Here's how to use --unsafely-ignore-certificate-errors and verify your connection stays secure.

7 min read
Next.js

Postmortem: The Next.js App Router Memory Leak of 2023

In 2023, self-hosted Next.js App Router apps were reported eating memory until the host killed them. Issue #49929 ran three months and 131 comments; it found a high process baseline and one canary-only Node.js fetch() leak.

8 min
TypeScript

Fix 'originalKeywordKind' DeprecationError in TypeScript

The 'originalKeywordKind' DeprecationError fires when @typescript-eslint packages are stuck on v5 while TypeScript moved on. Upgrade to v6.x and restart ESLint to clear it.

7 min read
PostgreSQL

Prisma Can't Connect to PostgreSQL: Fix invalid port

Prisma error "invalid port number" often means your password contains characters like @ or # that break URL parsing. This guide shows how to percent-encode them and confirm the fix.

7 min read
PostgreSQL

Fix: drizzle-kit push — statement does not return data

drizzle-kit push failing with a driver-level TypeError on SQLite/libSQL/Turso setups. Why .run() and .get() aren't interchangeable, and the two safe ways around it.

7 min read
Next.js

Why global-error.tsx Doesn't Fire in Next.js Dev Mode

A root layout error boundary that looks broken in development but works fine once deployed. The dev-overlay behavior behind it, and how to verify global-error.tsx before you ever hit production.

8 min read
Next.js

Fix: Can't Perform a State Update on an Unmounted Component

Separate the old React warning from a persistent resource leak and from out-of-order responses while the component is still mounted.

8 min read
Supabase

Fix: Supabase redirectTo Ignored on Magic Link / Email Auth

Magic links and password-reset emails that always land on the production Site URL instead of the redirectTo you passed. The allow-list mechanism behind it, and the wildcard pattern for local dev and preview branches.

8 min read
TypeScript

Fix: compilerOptions.paths Must Not Be Set (Alias Imports)

A tsconfig "paths" alias that works with the TypeScript compiler but breaks Create React App's build. Why CRA specifically forbids it, and three ways to keep clean "@/..." imports anyway.

7 min read
Supabase

prepared statement s0 already exists: Fix for Prisma +

Solve the Prisma 'prepared statement s0 already exists' error caused by Supabase pooling. Add directUrl, enable pgbouncer mode, and verify your connection.

7 min read
TypeScript

Fix Extremely Slow Drizzle IntelliSense on Large Schemas

Drizzle schema files make tsserver grind to a halt on large table sets. Here are the upgrade and cast trick that restore completions.

7 min read
Supabase

Prisma: Environment variable not found: DATABASE_URL

Prisma errors out with missing DATABASE_URL when the .env file isn't loaded. Trigger prisma generate and get your GraphQL query running again.

7 min read
TypeScript

Cannot use JSX unless the '--jsx' flag is provided

The tsconfig jsx option is set, but the editor still reports the JSX flag error. Here's how to force VS Code to use the project's TypeScript version and apply the change.

7 min read
TypeScript

Fix ESLint 'import/extensions' Definition Not Found

The import/extensions error appears when the eslint-plugin-import package isn't loaded. Register the plugin and extend airbnb-base to resolve it.

7 min read
DevOps

Fix Prisma Query Engine Library Not Found

The error 'Query engine library for current platform debian-openssl-1.1.x could not be found' stops Prisma in its tracks when you deploy to Linux containers. Here is exactly why it happens and the two-line fix that resolves it.

7 min read
TypeScript

Fix TS7053: Element Implicitly Has an Any Type When Indexing

TypeScript throws TS7053 when a plain string indexes a typed object. Use keyof typeof, index signatures, or Record to fix it safely.

8 min read
DevOps

MySQL 'Got an error reading communication packets' in Docker

When MySQL inside Docker aborts connections with 'Got an error reading communication packets', the root cause is usually a race between container startup and the first query. Here's how to fix it with a readiness check and timeout tuning.

7 min read
PostgreSQL

Prisma: Can't reach database server at database:5432 on M1

Check the address seen by the app container, preserve the PostgreSQL volume and distinguish a reachable database from a healthy container.

7 min read
PostgreSQL

Extract date (yyyy/mm/dd) from a timestamp in PostgreSQL

Confused by extracting date from a timestamp in PostgreSQL? Learn how to cast to ::date, use date_trunc, and verify column types for straightforward table insertion.

7 min read
TypeScript

Fix An index signature parameter type cannot be a union

TypeScript blocks union types in index signatures. Learn why the error fires and how to fix it with mapped types or the Record utility type in under a minute.

7 min read
PostgreSQL

Fix Missing Headers in PostgreSQL CSV Export (2026)

Stop getting CSV exports without column names. Master the HEADER option, avoid the 'delimiters' mistake, and use COPY vs \COPY the right way.

7 min read
PostgreSQL

PostgreSQL INSERT IF NOT EXISTS: ON CONFLICT and NOT EXISTS

Stop getting 'duplicate key value violates unique constraint' errors in PostgreSQL. Use INSERT ... ON CONFLICT DO NOTHING with RETURNING to atomically insert only when the row is missing.

7 min read
PostgreSQL

How to Get Enums in Prisma Client: Import, Query

Stuck trying to access Prisma enum values? This guide shows you exactly how to import, use, and validate generated enum types in your Node.js app.

7 min read
Next.js

Firebase Auth IDBDatabase Transaction Error: 2026 Fix

Firebase Auth stores its session in an IndexedDB database called firebaseLocalStorageDb. When that connection closes mid-session, sign-in throws InvalidStateError. Here is the cause, the SDK version that changed the behaviour, and a Next.js App Router setup that degrades gracefully.

8 min read
Next.js

Fix "Default condition should be last one" (Firebase)

One Firebase release put "default" before "browser" in the package.json exports map of 30 packages, and webpack's resolver refuses that. Here is the exact error, the diff that caused it, the release that fixed it, and how to find any other package in node_modules doing the same thing.

7 min read
Automation

n8n Microsoft OAuth2: Fix 'Need Admin Approval'

An admin clicked "Grant admin consent" and the n8n Microsoft credential still fails. The grant was real; it just did not cover the app or the scopes n8n actually requests. Here is the Entra ID checklist that ends it.

9 min read
DevOps

Firebase webframeworks Not Enabled in GitHub Actions: Fix

Running firebase experiments:enable webframeworks on your laptop does nothing for GitHub Actions. Here is the env var the CLI actually reads, the complete workflow, and why Firebase now steers Next.js apps to App Hosting.

8 min read
Next.js

Fix: react-dom/server Import Error in Next.js App Router

"You're importing a component that imports react-dom/server" is a compile-time rule of the App Router, not a bug in your code. Here is what the rule protects, which use cases are legitimate, and the fixes verified against Next.js 15.5 and 16.3 with both webpack and Turbopack.

8 min read
Supabase

Cookie "__cf_bm" has been rejected for invalid domain: fix

The warning fires on every image, upload and WebSocket that touches <ref>.supabase.co in Firefox. It is Cloudflare's bot-management cookie being scoped to a Public Suffix List domain, so every browser drops it. Here is the verified cause, the cases where the noise hides a real 403 or auth bug, and how to tell them apart in two minutes.

8 min read
TypeScript

Force tsc to Ignore node_modules: Fix TS Errors

Run tsc --noEmit on a project that compiles fine in the editor and the terminal lights up with type errors from inside node_modules. The fix is skipLibCheck, plus two

7 min read
PostgreSQL

Fix PostgreSQL Server Won't Start on Mac OS X (2026)

A fresh Homebrew install of PostgreSQL on a Mac completes without errors, then psql answers connection refused because the server was never started. Which command starts it depends on

8 min read
Next.js

Cross-Origin-Opener-Policy Blocks window.closed: 2026 Fix

The Firebase Google sign-in popup loses window.closed access when a COOP header isolates the opener. Here's the exact header change that restores the popup flow.

7 min read
Next.js

FirebaseError: Expected first argument to collection() — Fix

When Firestore throws 'Expected first argument to collection()', it's almost always a missing Firestore instance. Learn the exact fix for Next.js and v9 modular SDK.

7 min read
Next.js

Next.js 16 /_not-found Prerender Build Error: The Real Fix

Next.js 16 build crashes prerendering the internal /_not-found route. Here are the three actual causes behind it, how to tell which one is yours, and the fix for each.

9 min read
Next.js

Next.js 16 "use cache" Errors: Why Cache Components Break

Next.js 16 replaced implicit caching with the explicit "use cache" directive. Here is what actually breaks when you flip cacheComponents on, and how to fix it without reverting.

10 min read
TypeScript

TypeScript 6.0 Migration: What Actually Breaks in Next.js/Supabase

TypeScript 6.0 shipped in March 2026 with strict mode on by default and several legacy options removed. Here is what actually breaks migrating a real Next.js + Supabase codebase, in the order to fix it.

11 min read
Supabase

Better Auth vs Supabase Auth 2026: Honest Verdict

Supabase Auth integrates identity with Supabase APIs and RLS. Better Auth keeps auth in your application; database policies remain possible when you deliberately propagate a verified identity under a restricted role.

10 min read
Supabase

AuthSessionMissingError: Auth session missing! (Next.js fix)

`AuthSessionMissingError: Auth session missing!` is not a bug report — it is Supabase telling you, accurately, that the client you called had no session to work with. The hard part is that the same message covers a signed-out user, a server client that never received your cookies, a middleware that forgot to forward them, and a session the Auth server has already ended. Each has a different fix.

8 min read
Supabase

Supabase Hangs After onAuthStateChange: The Deadlock

Your app loads, the session arrives, and then every Supabase call after it hangs forever. No error, no rejected promise, no network request — the query simply never returns and the loading spinner stays up until someone reloads the page. If you fetch a profile inside your `onAuthStateChange` callback, this is a documented deadlock in supabase-js, and the fix is one line.

8 min read
Supabase

Supabase 42501: permission denied for schema auth

A view over `auth.users`, a policy that joins it, or a client query against it all fail the same way: `ERROR: 42501: permission denied for schema auth`. It is not a missing GRANT you forgot — Supabase keeps the `auth` schema out of reach of the API roles deliberately, and granting your way in is the one fix you should not apply. The supported route is a security definer function.

8 min read
Supabase

Test Supabase RLS Policies Before You Ship

Every RLS leak I have seen shipped the same way: the policy was tested in a context that does not enforce it. The Supabase SQL editor runs as a privileged role, the service key carries `BYPASSRLS`, and the table owner is exempt from its own policies unless you say otherwise. Three green checks, zero enforcement. This is the procedure that actually tests a policy — plus the two Postgres flags that decide whether your test means anything.

9 min read
Supabase

Firestore PERMISSION_DENIED: Every Real Cause and Fix

The Firestore error "PERMISSION_DENIED: Missing or insufficient permissions" never tells you which rule rejected you. Here is how to find out — and the seven causes that account for almost every occurrence.

7 min read
TypeScript

Fix tsconfig Paths Not Working in Next.js

The @/* alias fails in four different places for four different reasons. A 60-second checklist, then a fix per resolver: Next.js build, TS server, Jest and ESLint.

7 min read
PostgreSQL

FATAL: password authentication failed for user "postgres"

The error fires when PostgreSQL rejects the password the client sent — common when a role never got a password, when an old md5 hash meets a scram-sha-256 rule in pg_hba.conf, or when a Docker volume still holds an older password. Set the password with ALTER USER, then check the hash type.

6 min
PostgreSQL

psql command not found: install the client or fix PATH

The error fires when the shell cannot locate the psql binary — either PostgreSQL is not installed (only libpq-dev or a GUI client is), or it is installed but its bin directory is not on PATH. Fix it by installing the postgresql-client package on Linux, libpq via Homebrew on macOS, PostgreSQL itself (choco on Windows), or appending the bin directory to PATH.

6 min
DevOps

Scaleway vs AWS S3: EU Pricing & Data Residency 2026

AWS S3 is the default for object storage, but for EU-only workloads it is more expensive than necessary and you must explicitly select an EU region to satisfy GDPR data residency. Scaleway Object Storage stores every byte in Paris or Amsterdam by default — there is no US region to opt out of — uses the same S3-compatible API, and costs 25-60% less on storage depending on the tier you pick. Here is the 2026 pricing breakdown, the API parity list, and the gotchas that make Scaleway a no-go for some workloads (fewer storage classes, no Object Lambda, no Lambda@Edge equivalent).

7 min
DevOps

Self-Hosted Plausible vs GA4: GDPR by Default (2026)

Google Analytics 4 is found illegal in multiple EU countries (Austria, France, Italy, Denmark, Finland, Norway, Sweden) because it transfers user data to the US. To stay compliant you need a consent banner, a Data Processing Agreement, and Consent Mode v2 — and the EU-US Data Privacy Framework on which Google relies is itself under legal threat at the EU's top court. Self-hosted Plausible Analytics collects no personal data, sets no cookies, and runs on your own server. Here is the 2026 setup, the cost, the feature gaps you should plan for (no heatmaps, no BigQuery export, no Google Ads Smart Bidding), and the deployment steps on a Hetzner VPS or a Scaleway Stardust instance.

8 min
PostgreSQL

How to Drop All Tables in PostgreSQL Safely (2026)

Dropping tables one by one is painful. Here is the one-command reset, the PostgreSQL 15 permission gotcha that breaks it, and the safe way to do it on Supabase.

9 min read
PostgreSQL

How to Change a PostgreSQL User Password (Supabase)

`ALTER ROLE alice WITH PASSWORD 'newpass';` is the SQL. The psql `\password` prompt avoids logging the cleartext. In Supabase the `postgres` role password is reset from the Dashboard, not SQL. Here is each method, the scram-sha-256 default, and the three things that break after a password change.

10 min read
PostgreSQL

PostgreSQL SHOW TABLES / DESCRIBE TABLE (psql + Supabase)

Coming from MySQL you type `SHOW TABLES` or `DESCRIBE table` and PostgreSQL throws a syntax error — both are MySQL commands. The psql equivalents are `\dt` (list tables) and `\d table_name` (describe a table); the portable SQL equivalents are `information_schema.tables` and `information_schema.columns`. Here is exactly what to run in psql, the Supabase SQL editor, Drizzle, or any client, plus why your query returns zero rows.

9 min read
PostgreSQL

PostgreSQL DESCRIBE TABLE: The psql \d Equivalent

Coming from MySQL you type DESCRIBE table and psql throws a syntax error. The psql equivalent is \d table_name. For Supabase, Drizzle, or any SQL client without backslash commands, use the information_schema.columns view.

5 min
PostgreSQL

psql: FATAL: Peer authentication failed for user "postgres"

The error fires when PostgreSQL's peer auth check compares the OS username to the database role and they differ — common after sudo-ing into psql or in local dev. Fix it by matching users, or by switching the local auth method to scram-sha-256 with a real password.

6 min
Next.js

useSearchParams Suspense Error: 3 Real Fixes (Next.js 15)

The error only surfaces during the production build — dev mode hides it completely. Here is why, and the three fixes ranked by situation.

6 min read
Next.js

Fix: Next.js proxy.js matcher not working for static assets

Without a matcher, proxy.js runs on every request including _next/static and public assets. And Server Functions are not separate routes — a matcher gap silently drops auth coverage.

7 min read
Supabase

Supabase getClaims() vs getSession(): The Silent Auth Bug

Your auth looks correct but users can bypass it. The bug: getSession() in server code reads from local storage without revalidating the token against the Auth server.

7 min read
Supabase

Supabase redirectTo Failing on Vercel Previews: SITE_URL Fix

The redirect silently lands on your production domain instead of the preview URL, with no error from Supabase. Here is the exact Supabase dashboard config and the Vercel env var pattern.

6 min read
TypeScript

TypeScript Getter Setter Errors: TS1056, TS2378, TS2380 Fix

TypeScript getter/setter errors come from ES target misconfiguration or type mismatches. Fix TS1056, TS1028, and TS2378 in minutes.

8 min read
TypeScript

JSX.Element vs ReactNode vs ReactElement: TS2322 Fix

Fix TS2322 by understanding when ReactNode, JSX.Element, and ReactElement apply in React + TypeScript component typing.

9 min read
Next.js

Fix ChunkLoadError: Loading chunk failed (Next.js, webpack)

"ChunkLoadError: Loading chunk 5760 failed" almost always means a user has an old tab open after you shipped a new deploy. The fix is configuration — deploymentId, build IDs, and CDN headers — not a try/catch.

9 min read
Next.js

Fix Dynamic Server Usage Error in Next.js App Router

Next.js throws this when a route it wants to render at build time calls a dynamic function — cookies(), headers(), searchParams, or a no-store fetch. The fix is either opt the route into dynamic rendering, or remove the request-time dependency if it should be static.

9 min read
Next.js

Fix next/image Hostname Not Configured in Next.js

next/image strictly allow-lists remote hosts. The fix is images.remotePatterns in next.config — matched exactly on protocol, hostname, port, and pathname. Get one wrong (http vs https, a subdomain, a missing port) and it still blocks.

7 min read
Next.js

use client vs use server in Next.js: The Real Difference

The #1 misconception in the App Router: "use server" is not the opposite of "use client". One marks a client boundary in the module graph; the other exposes callable server functions. Server Components are the default — no directive needed.

8 min read
PostgreSQL

Fix Postgres 'Could Not Serialize Access' (40001)

Postgres aborts one transaction with 40001 to prevent a serialization anomaly. The docs are explicit: apps using REPEATABLE READ or SERIALIZABLE must be prepared to retry. Here's the correct retry loop and how to reduce conflicts.

9 min read
PostgreSQL

Fix Foreign Key Constraint Violation in Supabase (23503)

23503 means a foreign key relationship is broken. Inserting a child before its parent? Insert the parent first. Can't delete a parent with children? Choose an ON DELETE action. The most common Supabase case is a profiles row referencing auth.users.

9 min read
PostgreSQL

Select the First Row per Group in Supabase Postgres

The "greatest-N-per-group" problem: one representative row per group. Postgres solves it with DISTINCT ON; supabase-js can't express that directly, so you wrap it in a view or an RPC function. Both confirmed by Supabase maintainers.

8 min read
TypeScript

TS7016: Could not find a declaration file for module (fix)

TS7016 fires when you import an untyped JavaScript module under noImplicitAny. The right fix is usually `npm i -D @types/X` — but sometimes the package already ships types, and sometimes you need to write a one-line declaration.

8 min read
TypeScript

Fix TS2305: Module Has No Exported Member in TypeScript

TS2305 says the export you're importing doesn't exist under that name. The cause is almost always one of: a typo, default-vs-named confusion, a CJS/ESM interop mismatch, or @types drifting from the runtime package. Each has a precise fix.

8 min read
TypeScript

TS2564: Why Constructor Methods Don't Count as Init

TS2564 fires when a class field is typed but never guaranteed to be set. The fix depends on WHY it's unset: a default value, constructor assignment, the definite-assignment `!`, or an optional `?`. Picking the wrong one hides real bugs.

8 min read
TypeScript

Fix "Property does not exist on Window" in TypeScript

Learn how to safely extend the Window interface in TypeScript with declaration merging and declare global, and why bracket notation on an undeclared key fails under noImplicitAny.

9 min read
Next.js

Next.js Build Passed But Production Broke

A green build only proves the bundle compiled. This postmortem walks through three production-only failures: missing Vercel env vars, Edge runtime imports, and cache behavior that changed after deploy.

8 min read
Next.js

Next.js Middleware Not Running on Vercel: 3 Causes

Middleware that works locally can disappear in Vercel production because the matcher never matches, Edge bundles a Node-only import, or auth middleware cannot read the token. This guide gives you the diagnosis order I use before touching app code.

8 min read
Supabase

Supabase Realtime Not Receiving Events: Complete Fix

A Supabase Realtime subscription can say SUBSCRIBED and still receive nothing. This fix walks through RLS, filter syntax, stale React subscriptions, paused projects, and broadcast versus postgres_changes confusion.

8 min read
Next.js

How to set the next/image component to 100% height

If your <Image / component ignores height: 100% and appears too small or misaligned, the issue is almost always that the parent container lacks an explicit

7 min read
Next.js

Fix Module not found: Can't resolve 'encoding' in Vercel

You see "Module not found: Can't resolve 'encoding'" in your Vercel deployment logs. This guide explains why it happens with cross-fetch/node-fetch and how to fix it permanently.

8 min read
Supabase

How to get COUNT(*) in Supabase

If you are fetching whole result sets just to count them, you are paying for bandwidth and latency you do not need. Supabase already returns counts in query metadata.

5 min read
Next.js

Next.js Query String Params: searchParams + useRouter

If `router.query` examples keep breaking on you, the problem is usually that you're mixing App Router and Pages Router APIs. Here is the exact fix for each case.

6 min read
Automation

n8n requested webhook is not registered fix

This n8n webhook error is usually not about your payload. It is almost always a test-vs-production URL mixup or an inactive workflow.

6 min read
Next.js

Next.js Redirect from / to another page

If your redirect works only after render, flickers, or fires in the wrong place, you are probably using the wrong redirect API for the job. Here is the exact mapping.

6 min read
Supabase

Supabase bucket RLS policy for table objects fix

This Storage error almost never means Supabase is broken. It usually means your upload path, your RLS policy, or your use of `upsert` does not match how Storage actually authorizes writes.

7 min read
Next.js

How to Access Route Parameter Inside getServerSideProps

Learn why your dynamic route parameter appears as undefined in getServerSideProps and how to correctly extract it from the context object for server-side data fetching.

8 min read
Next.js

Fix 'Next.js 15 requires Node.js 18.18' Build Error

Next.js 15 drops support for older Node versions. Here is how to upgrade to Node.js 18.18.0 or later and fix build errors.

8 min read
Supabase

Does Supabase service_role Bypass RLS? Yes — Use It Safely

The Supabase service_role key bypasses every RLS policy in your database. That is exactly what you want for admin jobs, migrations, and cron tasks — and exactly what an attacker wants if it ever leaks to the client bundle. Here is how to set up the admin client in Next.js, where it is safe to use, and the three mistakes that put a root credential in your JS bundle.

12 min read
PostgreSQL

Supabase Enums: ALTER TYPE ADD VALUE in Migrations

Step‑by‑step guide to adding a PostgreSQL enum type and column in Supabase, including verification and common pitfalls.

7 min read
Next.js

How to Change the Port in Next.js (dev and start)

Change the default Next.js port when it collides with another process, and know why next dev sometimes moves to 3001 on its own while next start crashes.

7 min read
Supabase

Supabase 42501 Permission Denied: Schema public & auth

Learn the exact steps to grant the right permissions in Supabase and stop the 'permission denied for schema public' error from breaking your app.

7 min read
Next.js

How to implement LCP end to end

Learn how to instrument Largest Contentful Paint (LCP) in a Next.js project, send the metric to your analytics provider, and verify that the data is accurate.

7 min read
Next.js

Fix "cookies() should be awaited" Error in Next.js 15

Next.js 15 broke synchronous `cookies().get()`. Every server-side call must now `await cookies()` first. Here's the precise migration — App Router pages, route handlers, Server Actions, and Supabase SSR — plus the codemod that fixes 90% of call sites automatically.

9 min read
Next.js

Fix Next.js revalidatePath Not Working in Server Actions

Your Server Action mutates data but the page shows stale values until you hard-refresh. `revalidatePath` is one of those APIs that "succeeds" while doing nothing. Here are the six reasons it no-ops, with the exact fix for each — including a URL served through a rewrite and a second page that reads the same tagged data.

8 min read
DevOps

Stripe Webhook Signature Verification Failed in Next.js

If Stripe webhooks return `Webhook signature verification failed`, your Next.js route is parsing the JSON before Stripe sees it. Here's the exact raw-body pattern for App Router, Pages Router, and Vercel Edge — plus the three secret-mismatch traps that cause the same error.

11 min read
Supabase

Supabase Auth Error Codes: Fixes + TS Cheat Sheet (2026)

Supabase Auth returns precise error codes — `invalid_credentials`, `weak_password`, `same_password`, `email_not_confirmed` — but most apps collapse them all into "Something went wrong." Here's the full TypeScript enum, a typed handler, and the UX pattern that doubles signup completion.

9 min read
Supabase

Fix Supabase RLS Infinite Recursion (Production 2026)

If your Supabase query returns `infinite recursion detected in policy for relation "X"`, your RLS policy is querying the same table it protects. Here's exactly why it loops, and three production-grade fixes that don't leak data.

9 min read
Supabase

Clerk vs Better Auth vs Supabase: Next.js Auth in 2026

A grounded comparison of the four major Next.js auth options — including the middleware vulnerability that changed everything, real MAU pricing math, and which architecture actually scales.

22 min read
Next.js

Fix next/image Layout Shift (CLS) in Next.js

next/image only prevents layout shift when it can reserve space. Eight fixes for CLS and LCP problems caused by images, each checked against the Next.js and web.dev documentation.

11 min read
Supabase

11 Supabase Auth Lessons From a Year in Production

Eleven recurring traps that surface once Supabase Auth is wired into a production Next.js app — drawn from public Supabase docs, the SSR guide, and the postmortems the community has published.

11 min read
Next.js

Next.js 15 Caching Explained: Why Data Shows Stale

Upgraded to Next.js 15 and suddenly your data is stale — or refreshing too often? The caching model changed completely. Here is what actually happens and how to control it.

11 min read
Supabase

Why Your Supabase Queries Are Slow (And How to Fix)

Slow Supabase queries kill your app feel and inflate your bill. Here are the six causes I keep seeing in production apps, and the exact SQL and code fixes for each one.

13 min read
Automation

n8n Client Reporting Workflow: ClickUp, Toggl and Gmail

A step-by-step n8n workflow that reads active clients from Notion, pulls completed ClickUp tasks and Toggl time entries, builds an HTML summary and leaves a Gmail draft per client for review before sending.

9 min read
Automation

n8n Workflow Failing Silently: How to Detect and Fix It

n8n marks a workflow "successful" the moment it completes without throwing — even when a node returns zero items and the whole run produced nothing useful. Here's why that happens and the three-layer monitoring pattern that catches it before a client does.

9 min read
Automation

Migrating from Zapier to n8n: Docker Setup and Zap Mapping

A practical Zapier-to-n8n migration path: what to audit first, the Docker Compose settings n8n documents for self-hosting, the localhost trap inside containers, and which n8n trigger and action nodes replace common Zaps.

8 min read
Automation

n8n Lead Capture to Notion: Webhooks, Scoring, Slack Alerts

A tutorial for a lead pipeline in n8n: capture leads from a form webhook, Gmail and an n8n Form, classify emails with a local model, score each lead, store it in Notion and get a Slack reminder when a lead goes unanswered.

8 min read
Next.js

How to Structure Your Next.js App Router Project for Scale

Stop shoving everything into the components folder. Learn the Feature-Sliced Design pattern adapted perfectly for the Next.js App Router.

Supabase

Supabase + Next.js Tutorial for Beginners (Free, 2026)

Build a complete full-stack application with Next.js and Supabase from scratch. Authentication, database, CRUD operations, and deployment — all in 20 minutes.

20 min read
Supabase

Supabase vs Firebase in 2026: The Honest Comparison

Supabase vs Firebase — which backend should you pick in 2026? We compare pricing, performance, developer experience, and scalability with real benchmarks and code examples.

18 min read
Next.js

Offline-First Next.js + Supabase: Sync That Actually Works

A typed Dexie queue, stable sync lifecycle and account-scoped cache, with explicit boundaries for offline edits and mocked failure-path tests.

14 min read
Supabase

7 Next.js + Supabase Architecture Decisions I'd Skip

After shipping multiple production apps with Next.js and Supabase, here are the decisions that cost the most time to undo — and what I'd do instead from day one.

8 min read
Next.js

Next.js Server Actions vs API Routes: When to Use Each

Understand the differences between Server Actions and API Routes in Next.js 15. Learn when to use each approach with real-world examples and performance comparisons.

10 min read
Supabase

Next.js + Supabase: 10 Production Mistakes + Fixes (2026)

Avoid these critical mistakes when building with Next.js and Supabase. Learn from real-world errors that cost developers hours of debugging and discover proven solutions.

14 min read
Next.js

Next.js + Supabase Performance: 10 Real Fixes

Ten fixes for slow Next.js + Supabase apps, each grounded in the official docs rather than a single unverifiable case-study number — RLS-indexed columns, N+1 joins, the connection-pooler trap on serverless, image transforms, and caching layers.

14 min read
Supabase

Supabase Auth Session Disappears on Refresh? Fix (2026)

Supabase auth sessions mysteriously disappearing after page refresh? Learn the exact cause and fix it in 5 minutes with this tested solution.

8 min read
Supabase

Supabase AuthSessionMissingError in Middleware: 5 Fixes

Auth errors crashing your Next.js middleware? Learn how to handle Supabase auth errors gracefully with proper error handling patterns.

10 min read
Next.js

Next.js 15 vs 14: Real Benchmarks + Upgrade Verdict (2026)

What Next.js's own release notes actually say changed between 14 and 15 — caching defaults, async APIs, and Turbopack's real (and still-partial) stability status — plus the breaking changes that hurt on upgrade.

10 min read
Supabase

Supabase Auth Callback Redirect Not Working? Next.js Fix

Auth redirect not working after Supabase sign-in? Here are the three root causes and the exact fixes — callback route, redirect URL allowlist, and router.refresh().

11 min read
DevOps

Next.js Environment Variables Undefined on Vercel? Fix

Environment variables not working on Vercel? Learn the exact configuration needed for Next.js 15 deployment with zero errors.

10 min read
Next.js

Fix 'Hydration failed' in Next.js: 8 Root Causes (2026)

Hydration mismatch errors breaking your Next.js app? Learn the root causes and 8 proven fixes to eliminate these errors permanently.

12 min read
Next.js

Next.js 'Module not found: Can't resolve': 6 Fixes

Module not found errors only in production? Learn why Next.js builds fail after deploy and get 6 proven fixes that work on Vercel, AWS, and other platforms.

11 min read
Next.js

Next.js Turbopack Stuck on Compiling? 5 Fixes (2026)

Turbopack stuck on compiling in Next.js 15/16? Learn the exact causes and 5 proven fixes, plus how to disable Turbopack safely with next build --webpack when production builds crash.

9 min read
Supabase

Supabase "Error sending confirmation email" (500): 5 fixes

Email confirmations not sending from Supabase? Learn the exact causes and fixes for SMTP, template, and configuration issues in 10 minutes.

10 min read
DevOps

Docker Tutorial 2026: Dev Environment with Compose

Step-by-step guide to creating a production-ready Docker development environment with hot reload, debugging, and Docker Compose.

10 min read
TypeScript

Migrate JavaScript to TypeScript with ts-migrate (2026)

Migrate a JS codebase to TypeScript file-by-file — no full rewrite required. The tsconfig settings, file order, and tricks for handling untyped packages along the way.

13 min read

Never Miss an Update

Get the latest articles, insights, and expert perspectives delivered straight to your inbox.

One email a month — the latest explained errors

What the site published that month — mostly Next.js, Supabase and Node errors, explained. You confirm by email; unsubscribe any time in one click.