Skip to content

@clerk/nextjs is not a valid ESM package #6424

@wardpeet

Description

@wardpeet

Preliminary Checks

Reproduction

https://stackblitz.com/edit/rollup-repro-idgkp8vx

Publishable key

pk_no_Key

Description

The sub imports inside the root should have an extension.

import "../chunk-BUSYA2B4.js";
import { createRouteMatcher } from "./routeMatcher";
import { verifyToken, createClerkClient } from "@clerk/backend";
import { clerkClient } from "./clerkClient";
import { getAuth } from "./createGetAuth";
import { buildClerkProps } from "./buildClerkProps";
import { auth } from "../app-router/server/auth";
import { currentUser } from "../app-router/server/currentUser";
import { clerkMiddleware } from "./clerkMiddleware";
import { reverificationErrorResponse, reverificationError } from "@clerk/backend/internal";
export {
  auth,
  buildClerkProps,
  clerkClient,
  clerkMiddleware,
  createClerkClient,
  createRouteMatcher,
  currentUser,
  getAuth,
  reverificationError,
  reverificationErrorResponse,
  verifyToken
};
//# sourceMappingURL=index.js.map

Steps to reproduce:

  1. create an mjs script that import from @clerk/nextjs/server

Expected behavior:
Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/home/projects/rollup-repro-unnj4jbw/node_modules/@clerk/nextjs/dist/esm/server/routeMatcher' imported from /home/projects/rollup-repro-unnj4jbw/node_modules/@clerk/nextjs/dist/esm/server/index.js
at finalizeResolution (node:internal/modules/esm/resolve:161:10481)
at moduleResolve (node:internal/modules/esm/resolve:161:10624)
at defaultResolve (node:internal/modules/esm/resolve:161:12052)
at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:157:5815)
at #n (node:internal/modules/esm/loader:157:5397)
at ModuleLoader.resolve (node:internal/modules/esm/loader:157:5293)
at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:157:1852)
at ModuleJob._link (node:internal/modules/esm/module_job:158:1632) {
code: 'ERR_MODULE_NOT_FOUND',
url: 'file:///home/projects/rollup-repro-unnj4jbw/node_modules/@clerk/nextjs/dist/esm/server/routeMatcher'
}

Actual behavior:

it throws no error

Environment

System:
    OS: macOS 15.5
    CPU: (28) arm64 Apple M3 Ultra
    Memory: 99.94 GB / 256.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 22.14.0 - ~/.nvs/default/bin/node
    npm: 11.4.2 - ~/.nvs/default/bin/npm
    pnpm: 10.11.0 - ~/.nvs/default/bin/pnpm
    bun: 1.2.15 - ~/.bun/bin/bun
  Browsers:
    Brave Browser: 137.1.79.123
    Chrome: 138.0.7204.169
    Safari: 18.5
  npmPackages:
    @ai-sdk/anthropic: ^1.2.12 => 1.2.12 
    @ai-sdk/openai: ^1.3.22 => 1.3.23 
    @ai-sdk/react: ^1.2.12 => 1.2.12 
    @clerk/clerk-js: ^5.77.0 => 5.77.0 
    @clerk/nextjs: ^6.25.4 => 6.25.4 
    @floating-ui/react: ^0.27.13 => 0.27.13 
    @google/genai: ^1.10.0 => 1.10.0 
    @hocuspocus/extension-logger: ^3.2.1 => 3.2.1 
    @hocuspocus/provider: ^3.2.1 => 3.2.1 
    @hocuspocus/server: ^3.2.0 => 3.2.1 
    @libsql/client: ^0.15.9 => 0.15.9 
    @libsql/darwin-arm64: ^0.5.13 => 0.5.13 
    @mastra/core: transpile-packages => 0.0.0-transpile-packages-20250724123433 
    @mastra/libsql: transpile-packages => 0.0.0-transpile-packages-20250724123433 
    @mastra/loggers: transpile-packages => 0.0.0-transpile-packages-20250724123433 
    @opentelemetry/core: ^2.0.1 => 2.0.1 
    @prisma/client: ^6.12.0 => 6.12.0 
    @radix-ui/react-collapsible: ^1.1.11 => 1.1.11 
    @radix-ui/react-icons: ^1.3.2 => 1.3.2 
    @radix-ui/react-slot: ^1.2.3 => 1.2.3 
    @repo/database: workspace:* => 0.0.0 
    @repo/design-system: workspace:* => 0.0.0 
    @repo/feature-flags: workspace:* => 0.0.0 
    @repo/next-config: workspace:* => 0.0.0 
    @repo/testing: workspace:* => 0.0.0 
    @repo/typescript-config: workspace:* => 0.0.0 
    @sentry/nextjs: ^9.22.0 => 9.36.0 
    @slate-yjs/core: ^1.0.2 => 1.0.2 
    @t3-oss/env-nextjs: ^0.13.8 => 0.13.8 
    @tanstack/react-query: ^5.82.0 => 5.83.0 
    @testing-library/dom: ^10.4.0 => 10.4.0 
    @testing-library/react: ^16.3.0 => 16.3.0 
    @types/jsonwebtoken: ^9.0.10 => 9.0.10 
    @types/lodash: ^4.17.20 => 4.17.20 
    @types/multer: ^2.0.0 => 2.0.0 
    @types/node: 22.15.21 => 22.15.21 
    @types/react: 19.1.5 => 19.1.5 
    @types/react-dom: 19.1.5 => 19.1.5 
    @uiw/react-json-view: 2.0.0-alpha.33 => 2.0.0-alpha.33 
    ai: 4.3.19 => 4.3.19 
    bcryptjs: ^3.0.2 => 3.0.2 
    class-variance-authority: ^0.7.1 => 0.7.1 
    classnames: ^2.5.1 => 2.5.1 
    clsx: ^2.1.1 => 2.1.1 
    concurrently: ^9.1.2 => 9.2.0 
    date-fns: ^4.1.0 => 4.1.0 
    framer-motion: ^11.18.2 => 11.18.2 
    fuse.js: ^7.1.0 => 7.1.0 
    import-in-the-middle: ^1.13.2 => 1.14.2 
    jose: ^6.0.11 => 6.0.11 
    jsdom: ^26.1.0 => 26.1.0 
    jsonrepair: ^3.13.0 => 3.13.0 
    jsonwebtoken: ^9.0.2 => 9.0.2 
    libsql: ^0.5.13 => 0.5.13 
    lodash: ^4.17.21 => 4.17.21 
    lucide-react: ^0.511.0 => 0.511.0 
    mammoth: ^1.9.1 => 1.9.1 
    mastra: transpile-packages => 0.0.0-transpile-packages-20250724123433 
    moment: ^2.30.1 => 2.30.1 
    multer: ^2.0.2 => 2.0.2 
    next: 15.3.2 => 15.3.2 
    next-themes: ^0.4.6 => 0.4.6 
    prisma: ^6.12.0 => 6.12.0 
    react: 19.1.0 => 19.1.0 
    react-dom: 19.1.0 => 19.1.0 
    react-inlinesvg: ^4.2.0 => 4.2.0 
    react-markdown: ^10.1.0 => 10.1.0 
    remark-gfm: ^4.0.1 => 4.0.1 
    remeda: ^2.24.0 => 2.25.0 
    require-in-the-middle: ^7.5.2 => 7.5.2 
    sass: ^1.89.2 => 1.89.2 
    shiki: ^1.17.7 => 1.29.2 
    slate: ^0.117.2 => 0.117.2 
    slate-history: ^0.113.1 => 0.113.1 
    slate-react: ^0.117.4 => 0.117.4 
    sonner: ^2.0.3 => 2.0.6 
    tailwind-merge: ^3.3.0 => 3.3.1 
    tailwindcss: ^4.1.7 => 4.1.11 
    ts-node: ^10.9.2 => 10.9.2 
    tsx: ^4.20.3 => 4.20.3 
    tw-animate-css: ^1.3.0 => 1.3.5 
    typescript: ^5.8.3 => 5.8.3 
    uuid: ^11.1.0 => 11.1.0 
    vitest: ^3.1.4 => 3.2.4 
    ws: ^8.18.3 => 8.18.3 
    y-prosemirror: ^1.3.5 => 1.3.7 
    y-protocols: ^1.0.6 => 1.0.6 
    y-websocket: ^3.0.0 => 3.0.0 
    yjs: ^13.6.27 => 13.6.27 
    zod: ^3.25.74 => 3.25.76 
    zustand: ^5.0.6 => 5.0.6

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-triageA ticket that needs to be triaged by a team member

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions