Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Nuxt 4.4.8 node-server output can package an incomplete vue runtime bundle, causing SSR 500s at runtime #35340

Description

@dshelley66

Environment

  • Nuxt version: 4.4.8
  • Nitro version: 2.13.4
  • Vue version: 3.5.35
  • Preset: node-server
  • Runtime: Node v24.14.x
  • Package manager: bun
  • OS: macOS (also in CI envrionment ubuntu/alpine)

Reproduction

We do not yet have a minimal public reproduction.

In our real app, the failure is reproducible with:

bun run build
node .output/server/index.mjs

Then request an SSR route.

The build reports success, but the runtime SSR request fails with the errors above.

Describe the bug

After upgrading framework dependencies, bun run build completes successfully, but running the built server with:

node .output/server/index.mjs

can fail on SSR requests because the traced vue package inside .output/server/node_modules is incomplete or unusable.

In our case, API routes still worked, but SSR page requests failed at runtime.

Observed runtime errors

We saw two related failure modes from the built output:

Cannot find module '/.../.output/server/node_modules/vue/index.mjs'
imported from /.../.output/server/chunks/routes/renderer.mjs

and after restoring the missing wrapper files manually:

The requested module 'vue' does not provide an export named 'getCurrentInstance'

What appears to be wrong

The built output contains a traced Vue package here:

.output/server/node_modules/vue -> .nitro/[email protected]

but that traced package does not match what the generated server renderer expects.

In our broken output, the traced Vue directory only had a very partial payload, e.g.:

.output/server/node_modules/.nitro/[email protected]/package.json
.output/server/node_modules/.nitro/[email protected]/dist/vue.cjs.prod.js
.output/server/node_modules/.nitro/[email protected]/server-renderer/index.mjs

Missing or unusable pieces included the normal entrypoints / runtime files needed for SSR, such as:

index.js
index.mjs
dist/vue.runtime.esm-bundler.js

At the same time, the generated server code still imports Vue in a way that expects a valid package entry from the traced output.

Why this looks like a Nuxt/Nitro output packaging issue

The installed Vue package in node_modules/nuxt/node_modules/vue was fine.

The failure only existed in the built server output under:

.output/server/node_modules/.nitro/[email protected]

So this does not look like a Vue runtime bug by itself. It looks like the node-server output/tracing step is packaging an incomplete or incompatible copy of Vue.

This seems similar in shape to:

Nuxt 4.4.7 node-server output packages incomplete [email protected]

That issue was about unhead being incompletely packaged in node-server output. This looks like the same class of regression, but affecting vue.

Additional context

The main signal from our investigation is:

  • source node_modules/.../vue is OK
  • traced .output/server/node_modules/.nitro/[email protected] is not
  • SSR fails from the built output, while API endpoints can still work

Metadata

Metadata

Assignees

No one assigned

    Type

    Fields

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions