[🐞] Qwik SSR bundle steals Astro's build.serverEntry filename, breaking astro preview and @astrojs/node standalone runtime
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 287
- Forks
- 24
- Avg merge
- 14h 44m
- Merged PRs (30d)
- 3
Description
Which component is affected?
Integration
Describe the bug
Summary
@qwik.dev/astro's SSR build emits its bundle using whatever filename is configured as Astro's build.serverEntry. Astro detects the collision and falls back to <configured-name-without-ext>2.mjs for its own handler. Both astro preview and @astrojs/node (standalone mode) read build.serverEntry to locate the handler, so they load the Qwik bundle instead, find no handler export, and crash.
There is no pure-config workaround: any value of build.serverEntry gets claimed by Qwik.
Versions
@qwik.dev/astro@1.0.2@qwik.dev/core@2.0.0-beta.34astro@6.3.1@astrojs/node@10.1.0- Bun 1.3, macOS
Reproduction
https://stackblitz.com/~/github.com/NecroPrism4/rockypointnet-client
Steps to reproduce
Minimal astro.config.mjs:
import node from "@astrojs/node";
import qwik from "@qwik.dev/astro";
import { defineConfig } from "astro/config";
export default defineConfig({
output: "server",
adapter: node({ mode: "standalone" }),
integrations: [qwik({ clientRouter: true })],
});
One Qwik component imported into an .astro page is enough.
bun run build
bun run preview # astro preview --port 8080
Actual
[AstroUserError] The server entrypoint doesn't have a handler. Are you sure this is the right file?
at createPreviewServer (node_modules/@astrojs/node/dist/preview.js:13:13)
bun ./dist/server/entry.mjs (the standalone production CMD) fails the same way — that file is Qwik's bundle, with only export { root as default }.
System Info
System:
OS: macOS 14.6.1
CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Memory: 1.39 GB / 32.00 GB
Shell: 5.9 - /bin/zsh
Binaries:
Node: 24.14.0 - /Users/darien/.nvm/versions/node/v24.14.0/bin/node
Yarn: 1.22.22 - /Users/darien/.nvm/versions/node/v24.14.0/bin/yarn
npm: 11.9.0 - /Users/darien/.nvm/versions/node/v24.14.0/bin/npm
pnpm: 10.33.0 - /Users/darien/.nvm/versions/node/v24.14.0/bin/pnpm
bun: 1.3.10 - /Users/darien/.bun/bin/bun
Browsers:
Chrome: 147.0.7727.138
Safari: 17.6
Additional Information
No response
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the minimal astro.config.mjs reproduction and run bun run build followed by bun run preview. Inspect the generated dist/server/entry.mjs alongside @astrojs/node/dist/preview.js to trace which server entry is loaded. Done means both Astro preview and the standalone bun ./dist/server/entry.mjs run without the missing-handler error while Qwik SSR still builds.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- node.js, typescript
- Domain
- backend, build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 44/100