8000 [🐞] serializeQRL: Cannot resolve symbol when build with bun in docker · Issue #7565 · QwikDev/qwik · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

[🐞] serializeQRL: Cannot resolve symbol when build with bun in docker #7565

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you acco 8000 unt related emails.

Already on GitHub? Sign in to your account

Open
dmitryuck opened this issue May 5, 2025 · 11 comments
Open
Labels
STATUS-1: needs triage New issue which needs to be triaged TYPE: bug Something isn't working

Comments

@dmitryuck
Copy link

Which component is affected?

Qwik Runtime

Describe the bug

I am creating a new project using bun 1.2

bun create qwik@latest

Then I add a bun adapter

bun run qwik add bun

Then I can run project using

bun run dev

Also I can build project on my local machine (Linux mint)

bun run build

And then serve it

bun run serve

The issue appear when I want to dockerize my application
I have a Dockerfile like that

FROM oven/bun:1-alpine

WORKDIR /opt/app

COPY package.json .

RUN bun install

COPY . .

RUN bun run build

ENTRYPOINT ["bun"]

EXPOSE 3000

CMD ["run", "serve"]

I use this command to build cimage

docker build . -f ./Dockerfile -t qwik_project:test

And during build I have got an error

Starting Qwik City SSG...
5.414 Missing client manifest, loading symbols in the client might 404. Please ensure the client build has run and generated the manifest for the server build.
5.426 serializeQRL: Cannot resolve symbol s_x10PYepITvU in null undefined
5.428 QWIK ERROR Code(31) https://github.com/QwikDev/qwik/blob/main/packages/qwik/src/core/error/error.ts#L39 s_x10PYepITvU Error: Code(31) https://github.com/QwikDev/qwik/blob/main/packages/qwik/src/core/error/error.ts#L39
5.428     at createAndLogError (/opt/app/server/q-ThznMd5o.js:31:56)
5.428     at serializeQRL (/opt/app/server/q-ThznMd5o.js:3616:11)
5.428     at mapJoin (/opt/app/server/q-ThznMd5o.js:3351:16)
5.428     at renderNode (/opt/app/server/q-ThznMd5o.js:845:52)
5.428     at <anonymous> (/opt/app/server/q-ThznMd5o.js:944:22)
5.428     at reduce (native:1:11)
5.428     at renderNodeVirtual (/opt/app/server/q-ThznMd5o.js:655:19)
5.428     at renderNodeVirtual (/opt/app/server/q-ThznMd5o.js:655:19)
5.428     at <anonymous> (/opt/app/server/q-ThznMd5o.js:944:22)
5.428     at reduce (native:1:11)
5.433 28 | };
5.433 29 | const printParams = (optionalParams) => optionalParams;
5.433 30 | const createAndLogError = (asyncThrow, message, ...optionalParams) => {
5.433 31 |   const err = message instanceof Error ? message : new Error(message);
5.433 32 |   return console.error("%cQWIK ERROR", "", err.message, ...printParams(optionalParams), err.stack), asyncThrow && setTimeout(() => {
5.433 33 |     throw err;
5.433                ^
5.433 error: Code(31) https://github.com/QwikDev/qwik/blob/main/packages/qwik/src/core/error/error.ts#L39
5.433       at <anonymous> (/opt/app/server/q-ThznMd5o.js:33:11)
5.433 
5.433 Bun v1.2.12 (Linux x64 baseline)
5.457 error: script "build.server" exited with code 1
5.458 
5.458 undefined
5.458 
5.459 3579 |   const message = [shortMessage, stderr, stdout].filter(Boolean).join("\n");
5.459 3580 |   if (isError) {
5.459 3581 |     error.originalMessage = error.message;
5.459 3582 |     error.message = message;
5.459 3583 |   } else {
5.459 3584 |     error = new Error(message);
5.459                    ^
5.459 error: Command failed with exit code 1: bun run build.server
5.459  shortMessage: "Command failed with exit code 1: bun run build.server",
5.459     command: "bun run build.server",
5.459  escapedCommand: "bun run build.server",
5.459    exitCode: 1,
5.459      signal: undefined,
5.459  signalDescription: undefined,
5.459      stdout: undefined,
5.459      stderr: undefined,
5.459         cwd: "/opt/app",
5.459      failed: true,
5.459    timedOut: false,
5.459  isCanceled: false,
5.459      killed: false,
5.459 
5.459       at makeError (/opt/app/node_modules/@builder.io/qwik/dist/cli.cjs:3584:13)
5.459       at <anonymous> (/opt/app/node_modules/@builder.io/qwik/dist/cli.cjs:4496:29)
5.459 
5.460 
6.765 error: script "build" exited with code 1
------
Dockerfile:24
--------------------
  22 |     COPY . .
  23 |     
  24 | >>> RUN bun run build
  25 |     
  26 |    
--------------------
ERROR: failed to solve: process "/bin/sh -c bun run build" did not complete successfully: exit code: 1

this happens in one of /server bundle, here is a place

const serializeQRL = (qrl2, opts = {}) => {
  var _a2, _b2;
  let symbol = qrl2.$symbol$;
  let chunk = qrl2.$chunk$;
  const refSymbol = qrl2.$refSymbol$ ?? symbol;
  const platform = getPlatform();
  if (platform) {
    const result = platform.chunkForSymbol(refSymbol, chunk, (_a2 = qrl2.dev) == null ? void 0 : _a2.file);
    result ? (chunk = result[1], qrl2.$refSymbol$ || (symbol = result[0])) : console.error("serializeQRL: Cannot resolve symbol", symbol, "in", chunk, (_b2 = qrl2.dev) == null ? void 0 : _b2.file);
  }

I tried to build project with node then run with bun in docker and it works fine, so the problem in the bun build step

Reproduction

https://google.com

Steps to reproduce

bun create qwik@latest
bun run qwik add bun
docker build . -f ./Dockerfile -t qwik_project:test

System Info

System:
    OS: Linux 5.15 Linux Mint 21.3 (Virginia)
    CPU: (6) x64 Intel(R) Core(TM) i5-9600K CPU @ 3.70GHz
    Memory: 7.11 GB / 15.55 GB
    Container: Yes
    Shell: 5.8.1 - /usr/bin/zsh
  Binaries:
    Node: 20.12.2 - ~/.nvm/versions/node/v20.12.2/bin/node
    Yarn: 1.22.19 - ~/.yarn/bin/yarn
    npm: 10.5.0 - ~/.nvm/versions/node/v20.12.2/bin/npm
    pnpm: 9.3.0 - ~/.nvm/versions/node/v20.12.2/bin/pnpm
    bun: 1.2.12 - ~/.bun/bin/bun
  Browsers:
    Chrome: 136.0.7103.59
  npmPackages:
    @builder.io/qwik: ^1.13.0 => 1.13.0 
    @builder.io/qwik-city: ^1.13.0 => 1.13.0 
    typescript: 5.4.5 => 5.4.5 
    undici: * => 7.8.0 
    vite: 5.3.5 => 5.3.5

Additional Information

No response

@dmitryuck dmitryuck added STATUS-1: needs triage New issue which needs to be triaged TYPE: bug Something isn't working labels May 5, 2025
@wmertens
Copy link
Member
wmertens commented May 5, 2025

The reason it fails is the missing client manifest. It should exist in dist/q-manifest.json before the server builds starts.

@dmitryuck
Copy link
Author
dmitryuck commented May 6, 2025

When I build on local machine everything fine, this happens only in docker, how to fix that? I can assume that client and server builds are doing in parallel and server start earlier than client finishes, but I don't know how it works internally in qwik

@wmertens
Copy link
Member
wmertens commented May 6, 2025

I presume it's because the client build happens in a different container? Maybe the dockerfile needs tweaking to expose the client build?

@dmitryuck
Copy link
Author
FROM oven/bun:1-alpine

WORKDIR /opt/app
COPY package.json .
RUN bun install
COPY . .

RUN bun run build.client
RUN bun run build.server

EXPOSE 3000
ENTRYPOINT ["bun"]
CMD ["run", "serve"]

I have a Dockerfile like this, so build is doing in a one container

I have divided a build command into two steps bun run build.client and bun run build.server

but it still says an error on build.server step

Starting Qwik City SSG...
1.953 Missing client manifest, loading symbols in the client might 404. Please ensure the client build has run and generated the manifest for the server build.
1.962 serializeQRL: Cannot resolve symbol s_x10PYepITvU in null undefined
1.963 QWIK ERROR Code(31) https://github.com/QwikDev/qwik/blob/main/packages/qwik/src/core/error/error.ts#L39 s_x10PYepITvU Error: Code(31) https://github.com/QwikDev/qwik/blob/main/packages/qwik/src/core/error/error.ts#L39
1.963     at createAndLogError (/opt/app/server/q-ThznMd5o.js:31:56)

--------------------
  10 |     
  11 |     RUN bun run build.client
  12 | >>> RUN bun run build.server
  13 |     
  14 |     EXPOSE 3000
--------------------

@git-ayas
Copy link

@wmertens I am also facing the same issue. When I check the files in dist has q-manifest.json is available. Please take a look at the logs and let me know if you need additional details:

[1/2] STEP 10/10: RUN bun run build
$ qwik build

      ............
    .::: :--------:.
   .::::  .:-------:.
  .:::::.   .:-------.
  ::::::.     .:------.
 ::::::.        :-----:
 ::::::.       .:-----.
  :::::::.     .-----.
   ::::::::..   ---:.
    .:::::::::. :-:.
     ..::::::::::::
             ...::::



bun run build.types
bun run build.client
bun run build.server
bun run lint

$ tsc --incremental --noEmit --pretty
$ vite build
using deprecated parameters for the initialization function; pass a single object instead
vite v5.3.5 building for production...
transforming...
/*! 🌼 daisyUI 5.0.35 */
✓ 144 modules transformed.
rendering chunks...
computing gzip size...
dist/build/q-bundle-graph-h7pgc6.json    1.36 kB │ gzip:  0.66 kB
dist/qwik-prefetch-service-worker.js     3.91 kB
dist/q-manifest.json                    43.39 kB │ gzip:  5.24 kB
dist/assets/CL2ZN89s-style.css          42.24 kB │ gzip:  8.56 kB
dist/build/q-DmOpb5oI.js                 0.07 kB │ gzip:  0.09 kB
dist/build/q-BZ6aua4d.js                 0.12 kB │ gzip:  0.13 kB
dist/build/q-FY-lGNUR.js                 0.13 kB │ gzip:  0.12 kB
dist/build/q-DoVPM3cc.js                 0.14 kB │ gzip:  0.13 kB
dist/build/q-eqX_Ws4k.js                 0.15 kB │ gzip:  0.15 kB
dist/build/q-DcBveyVk.js                 0.15 kB │ gzip:  0.13 kB
dist/build/q-DW8L1dVR.js                 0.15 kB │ gzip:  0.15 kB
dist/build/q-e8nIAmK3.js                 0.15 kB │ gzip:  0.15 kB
dist/build/q-Bjm_sgt1.js                 0.16 kB │ gzip:  0.14 kB
dist/build/q-CK4dgX51.js                 0.17 kB │ gzip:  0.15 kB
dist/build/q-VXedpdZd.js                 0.17 kB │ gzip:  0.15 kB
dist/build/q-DWXaUHjK.js                 0.17 kB │ gzip:  0.15 kB
dist/build/q-DAIkyhPT.js                 0.23 kB │ gzip:  0.19 kB
dist/build/q-UzVaC_Ls.js                 0.25 kB │ gzip:  0.22 kB
dist/build/q-BaoT0aYz.js                 0.27 kB │ gzip:  0.22 kB
dist/build/q-CTrAdxEi.js                 0.27 kB │ gzip:  0.23 kB
dist/build/q-ClWJHSzN.js                 0.29 kB │ gzip:  0.24 kB
dist/build/q-Dxzs3sDw.js                 0.29 kB │ gzip:  0.24 kB
dist/build/q-CcmVfV2U.js                 0.29 kB │ gzip:  0.25 kB
dist/build/q-Bbd0Fgyb.js                 0.31 kB │ gzip:  0.24 kB
dist/build/q-B6NECfOr.js                 0.32 kB │ gzip:  0.24 kB
dist/build/q-BRTQuU_5.js                 0.34 kB │ gzip:  0.27 kB
dist/build/q-BvkCDrgT.js                 0.34 kB │ gzip:  0.26 kB
dist/build/q-C6PiqB0L.js                 0.36 kB │ gzip:  0.27 kB
dist/build/q-MwGv3MnP.js                 0.36 kB │ gzip:  0.27 kB
dist/build/q-Ba-l3zlH.js                 0.37 kB │ gzip:  0.26 kB
dist/build/q-CUkrK6MH.js                 0.38 kB │ gzip:  0.27 kB
dist/build/q-DkJxQ78m.js                 0.39 kB │ gzip:  0.28 kB
dist/build/q-CXoND9DX.js                 0.40 kB │ gzip:  0.27 kB
dist/build/q-DteK5TFV.js                 0.47 kB │ gzip:  0.38 kB
dist/build/q-LDzzoBwE.js                 0.48 kB │ gzip:  0.31 kB
dist/build/q-FvYEUprM.js                 0.52 kB │ gzip:  0.33 kB
dist/build/q-8Lrpr-WC.js                 0.55 kB │ gzip:  0.35 kB
dist/build/q-OsjhL-8Z.js                 0.62 kB │ gzip:  0.42 kB
dist/build/q-DQttD-2-.js                 0.63 kB │ gzip:  0.39 kB
dist/build/q-B7HAszCg.js                 0.64 kB │ gzip:  0.39 kB
dist/build/q-CqAl2Ao4.js                 0.66 kB │ gzip:  0.33 kB
dist/build/q-CwWkpWOz.js                 0.68 kB │ gzip:  0.52 kB
dist/build/q-D9blul2s.js                 0.75 kB │ gzip:  0.43 kB
dist/build/q-BkbipUX5.js                 0.81 kB │ gzip:  0.48 kB
dist/build/q-Dtx_P74N.js                 0.90 kB │ gzip:  0.45 kB
dist/build/q-QN_-q3XK.js                 0.96 kB │ gzip:  0.57 kB
dist/build/q-DQR-QHru.js                 1.01 kB │ gzip:  0.59 kB
dist/build/q-uemlvruI.js                 1.08 kB │ gzip:  0.62 kB
dist/build/q-RwbV8LUn.js                 1.23 kB │ gzip:  0.67 kB
dist/build/q-MDtxbKfe.js                 1.25 kB │ gzip:  0.73 kB
dist/build/q-CSmX_mSz.js                 1.33 kB │ gzip:  0.69 kB
dist/build/q-CYxtdWwp.js                 1.52 kB │ gzip:  0.79 kB
dist/build/q-BW25uXV8.js                 2.05 kB │ gzip:  0.76 kB
dist/build/q-B5NaC6Ac.js                 2.14 kB │ gzip:  1.04 kB
dist/build/q-BZC_Tl3d.js                 2.19 kB │ gzip:  0.90 kB
dist/build/q-D8meH-9D.js                 2.30 kB │ gzip:  1.11 kB
dist/build/q-dybrWh_l.js                 2.41 kB │ gzip:  0.97 kB
dist/service-worker.js                   2.81 kB │ gzip:  1.31 kB
dist/build/q-BSGfoyhh.js                 3.66 kB │ gzip:  1.62 kB
dist/build/q-BTsagoLC.js                 4.47 kB │ gzip:  1.43 kB
dist/build/q-CvKuo6aI.js                 9.92 kB │ gzip:  4.53 kB
dist/build/q-BHMC5f3w.js                67.82 kB │ gzip: 24.56 kB
dist/build/q-DeDSsC1a.js               108.32 kB │ gzip: 29.36 kB
✓ built in 7.75s

✓ Built client modules
$ vite build -c adapters/bun/vite.config.ts
$ eslint "src/**/*.ts*"
using deprecated parameters for the initialization function; pass a single object instead
vite v5.3.5 building SSR bundle for production...
transforming...
/*! 🌼 daisyUI 5.0.35 */
✓ 27 modules transformed.
rendering chunks...
server/assets/FfzZttyQ-style.css   67.67 kB
server/entry.ssr.js                 0.09 kB
server/@qwik-city-plan.js          35.75 kB
server/q-CLeM2_VB.js               38.34 kB
server/entry.bun.js                53.95 kB
server/q-D8-9yd0W.js              201.68 kB
✓ built in 4.47s

Starting Qwik City SSG...
Missing client manifest, loading symbols in the client might 404. Please ensure the client build has run and generated the manifest for the server build.
Missing client manifest, loading symbols in the client might 404. Please ensure the client build has run and generated the manifest for the server build.
serializeQRL: Cannot resolve symbol <sync> in  undefined
serializeQRL: Cannot resolve symbol s_NaP7UUp8w0g in null undefined
QWIK ERROR Code(31) https://github.com/QwikDev/qwik/blob/main/packages/qwik/src/core/error/error.ts#L39 s_NaP7UUp8w0g Error: Code(31) https://github.com/QwikDev/qwik/blob/main/packages/qwik/src/core/error/error.ts#L39
    at createAndLogError (/app/server/q-D8-9yd0W.js:31:56)
    at serializeQRL (/app/server/q-D8-9yd0W.js:3654:11)
    at mapJoin (/app/server/q-D8-9yd0W.js:3389:16)
    at renderNode (/app/server/q-D8-9yd0W.js:851:52)
    at renderNodeVirtual (/app/server/q-D8-9yd0W.js:661:19)
    at renderNode (/app/server/q-D8-9yd0W.js:868:21)
    at <anonymous> (/app/server/q-D8-9yd0W.js:950:22)
    at reduce (native:1:11)
    at renderNode (/app/server/q-D8-9yd0W.js:868:21)
    at renderNodeVirtual (/app/server/q-D8-9yd0W.js:661:19)
serializeQRL: Cannot resolve symbol <sync> in  undefined
serializeQRL: Cannot resolve symbol s_NaP7UUp8w0g in null undefined
QWIK ERROR Code(31) https://github.com/QwikDev/qwik/blob/main/packages/qwik/src/core/error/error.ts#L39 s_NaP7UUp8w0g Error: Code(31) https://github.com/QwikDev/qwik/blob/main/packages/qwik/src/core/error/error.ts#L39
    at createAndLogError (/app/server/q-D8-9yd0W.js:31:56)
    at serializeQRL (/app/server/q-D8-9yd0W.js:3654:11)
    at mapJoin (/app/server/q-D8-9yd0W.js:3389:16)
    at renderNode (/app/server/q-D8-9yd0W.js:851:52)
    at renderNodeVirtual (/app/server/q-D8-9yd0W.js:661:19)
    at renderNode (/app/server/q-D8-9yd0W.js:868:21)
    at <anonymous> (/app/server/q-D8-9yd0W.js:950:22)
    at reduce (native:1:11)
    at renderNode (/app/server/q-D8-9yd0W.js:868:21)
    at renderNodeVirtual (/app/server/q-D8-9yd0W.js:661:19)

!!! /: Error during SSG
Code(31) https://github.com/QwikDev/qwik/blob/main/packages/qwik/src/core/error/error.ts#L39
  Pathname: /
dist/index.html
  Plugin: qwik-ssg
  File: /app/server/q-D8-9yd0W.js:31:56
  29 |  const printParams = (optionalParams) => optionalParams;
  30 |  const createAndLogError = (asyncThrow, message, ...optionalParams) => {
  31 |    const err = message instanceof Error ? message : new Error(message);
     |                                                          ^
  32 |    return console.error("%cQWIK ERROR", "", err.message, ...printParams(optionalParams), err.stack), asyncThrow && setTimeout(() => {
  33 |      throw err;
      at createAndLogError (/app/server/q-D8-9yd0W.js:31:56)
      at serializeQRL (/app/server/q-D8-9yd0W.js:3654:11)
      at mapJoin (/app/server/q-D8-9yd0W.js:3389:16)
      at renderNode (/app/server/q-D8-9yd0W.js:851:52)
      at renderNodeVirtual (/app/server/q-D8-9yd0W.js:661:19)
      at renderNode (/app/server/q-D8-9yd0W.js:868:21)
      at <anonymous> (/app/server/q-D8-9yd0W.js:950:22)
      at reduce (native:1:11)
      at renderNode (/app/server/q-D8-9yd0W.js:868:21)
      at renderNodeVirtual (/app/server/q-D8-9yd0W.js:661:19)

!!! /user/login/: Error during SSG
Code(31) https://github.com/QwikDev/qwik/blob/main/packages/qwik/src/core/error/error.ts#L39
  Pathname: /user/login/
dist/user/login/index.html
  Plugin: qwik-ssg
  File: /app/server/q-D8-9yd0W.js:31:56
  29 |  const printParams = (optionalParams) => optionalParams;
  30 |  const createAndLogError = (asyncThrow, message, ...optionalParams) => {
  31 |    const err = message instanceof Error ? message : new Error(message);
     |                                                          ^
  32 |    return console.error("%cQWIK ERROR", "", err.message, ...printParams(optionalParams), err.stack), asyncThrow && setTimeout(() => {
  33 |      throw err;
      at createAndLogError (/app/server/q-D8-9yd0W.js:31:56)
      at serializeQRL (/app/server/q-D8-9yd0W.js:3654:11)
      at mapJoin (/app/server/q-D8-9yd0W.js:3389:16)
      at renderNode (/app/server/q-D8-9yd0W.js:851:52)
      at renderNodeVirtual (/app/server/q-D8-9yd0W.js:661:19)
      at renderNode (/app/server/q-D8-9yd0W.js:868:21)
      at <anonymous> (/app/server/q-D8-9yd0W.js:950:22)
      at reduce (native:1:11)
      at renderNode (/app/server/q-D8-9yd0W.js:868:21)
      at renderNodeVirtual (/app/server/q-D8-9yd0W.js:661:19)
28 | };
29 | const printParams = (optionalParams) => optionalParams;
30 | const createAndLogError = (asyncThrow, message, ...optionalParams) => {
31 |   const err = message instanceof Error ? message : new Error(message);
32 |   return console.error("%cQWIK ERROR", "", err.message, ...printParams(optionalParams), err.stack), asyncThrow && setTimeout(() => {
33 |     throw err;
               ^
error: Code(31) https://github.com/QwikDev/qwik/blob/main/packages/qwik/src/core/error/error.ts#L39    
      at <anonymous> (/app/server/q-D8-9yd0W.js:33:11)
28 | };
29 | const printParams = (optionalParams) => optionalParams;
30 | const createAndLogError = (asyncThrow, message, ...optionalParams) => {
31 |   const err = message instanceof Error ? message : new Error(message);
32 |   return console.error("%cQWIK ERROR", "", err.message, ...printParams(optionalParams), err.stack), asyncThrow && setTimeout(() => {
33 |     throw err;
               ^
error: Code(31) https://github.com/QwikDev/qwik/blob/main/packages/qwik/src/core/error/error.ts#L39    
      at <anonymous> (/app/server/q-D8-9yd0W.js:33:11)

Bun v1.2.13 (Linux x64 baseline)
error: script "build.server" exited with code 1

undefined

3579 |   const message = [shortMessage, stderr, stdout].filter(Boolean).join("\n");
3580 |   if (isError) {
3581 |     error.originalMessage = error.message;
3582 |     error.message = message;
3583 |   } else {
3584 |     error = new Error(message);
                   ^
error: Command failed with exit code 1: bun run build.server
 shortMessage: "Command failed with exit code 1: bun run build.server",
    command: "bun run build.server",
 escapedCommand: "bun run build.server",
   
8000
exitCode: 1,
     signal: undefined,
 signalDescription: undefined,
     stdout: undefined,
     stderr: undefined,
        cwd: "/app",
     failed: true,
   timedOut: false,
 isCanceled: false,
     killed: false,

      at makeError (/app/node_modules/@builder.io/qwik/dist/cli.cjs:3584:13)
      at <anonymous> (/app/node_modules/@builder.io/qwik/dist/cli.cjs:4496:29)


error: script "build" exited with code 1
building at STEP "RUN bun run build": while running runtime: exit status 1

@wmertens
Copy link
Member

Can you put an ls dist/*json command between the build commands to make sure the file is there?

@git-ayas
Copy link

@wmertens Here you go. Added the ls after build.client (See STEP 11/12):

[1/2] STEP 9/12: RUN bun run build.types
$ tsc --incremental --noEmit
--> 3a9f4853ce92
[1/2] STEP 10/12: RUN bun run build.client
$ vite build
using deprecated parameters for the initialization function; pass a single object instead
vite v5.3.5 building for production...
transforming...
/*! 🌼 daisyUI 5.0.35 */
✓ 144 modules transformed.
rendering chunks...
computing gzip size...
dist/build/q-bundle-graph-h7pgc6.json    1.36 kB │ gzip:  0.66 kB
dist/qwik-prefetch-service-worker.js     3.91 kB
dist/q-manifest.json                    43.39 kB │ gzip:  5.24 kB
dist/assets/CL2ZN89s-style.css          42.24 kB │ gzip:  8.56 kB
dist/build/q-DmOpb5oI.js                 0.07 kB │ gzip:  0.09 kB
dist/build/q-BZ6aua4d.js                 0.12 kB │ gzip:  0.13 kB
dist/build/q-FY-lGNUR.js                 0.13 kB │ gzip:  0.12 kB
dist/build/q-DoVPM3cc.js                 0.14 kB │ gzip:  0.13 kB
dist/build/q-eqX_Ws4k.js                 0.15 kB │ gzip:  0.15 kB
dist/build/q-DcBveyVk.js                 0.15 kB │ gzip:  0.13 kB
dist/build/q-DW8L1dVR.js                 0.15 kB │ gzip:  0.15 kB
dist/build/q-e8nIAmK3.js                 0.15 kB │ gzip:  0.15 kB
dist/build/q-Bjm_sgt1.js                 0.16 kB │ gzip:  0.14 kB
dist/build/q-CK4dgX51.js                 0.17 kB │ gzip:  0.15 kB
dist/build/q-VXedpdZd.js                 0.17 kB │ gzip:  0.15 kB
dist/build/q-DWXaUHjK.js                 0.17 kB │ gzip:  0.15 kB
dist/build/q-DAIkyhPT.js                 0.23 kB │ gzip:  0.19 kB
dist/build/q-UzVaC_Ls.js                 0.25 kB │ gzip:  0.22 kB
dist/build/q-BaoT0aYz.js                 0.27 kB │ gzip:  0.22 kB
dist/build/q-CTrAdxEi.js                 0.27 kB │ gzip:  0.23 kB
dist/build/q-ClWJHSzN.js                 0.29 kB │ gzip:  0.24 kB
dist/build/q-Dxzs3sDw.js                 0.29 kB │ gzip:  0.24 kB
dist/build/q-CcmVfV2U.js                 0.29 kB │ gzip:  0.25 kB
dist/build/q-Bbd0Fgyb.js                 0.31 kB │ gzip:  0.24 kB
dist/build/q-B6NECfOr.js                 0.32 kB │ gzip:  0.24 kB
dist/build/q-BRTQuU_5.js                 0.34 kB │ gzip:  0.27 kB
dist/build/q-BvkCDrgT.js                 0.34 kB │ gzip:  0.26 kB
dist/build/q-MwGv3MnP.js                 0.36 kB │ gzip:  0.27 kB
dist/build/q-C6PiqB0L.js                 0.36 kB │ gzip:  0.27 kB
dist/build/q-Ba-l3zlH.js                 0.37 kB │ gzip:  0.26 kB
dist/build/q-CUkrK6MH.js                 0.38 kB │ gzip:  0.27 kB
dist/build/q-DkJxQ78m.js                 0.39 kB │ gzip:  0.28 kB
dist/build/q-CXoND9DX.js                 0.40 kB │ gzip:  0.27 kB
dist/build/q-DteK5TFV.js                 0.47 kB │ gzip:  0.38 kB
dist/build/q-LDzzoBwE.js                 0.48 kB │ gzip:  0.31 kB
dist/build/q-FvYEUprM.js                 0.52 kB │ gzip:  0.33 kB
dist/build/q-8Lrpr-WC.js                 0.55 kB │ gzip:  0.35 kB
dist/build/q-OsjhL-8Z.js                 0.62 kB │ gzip:  0.42 kB
dist/build/q-DQttD-2-.js                 0.63 kB │ gzip:  0.39 kB
dist/build/q-B7HAszCg.js                 0.64 kB │ gzip:  0.39 kB
dist/build/q-CqAl2Ao4.js                 0.66 kB │ gzip:  0.33 kB
dist/build/q-CwWkpWOz.js                 0.68 kB │ gzip:  0.52 kB
dist/build/q-D9blul2s.js                 0.75 kB │ gzip:  0.43 kB
dist/build/q-BkbipUX5.js                 0.81 kB │ gzip:  0.48 kB
dist/build/q-Dtx_P74N.js                 0.90 kB │ gzip:  0.45 kB
dist/build/q-QN_-q3XK.js                 0.96 kB │ gzip:  0.57 kB
dist/build/q-DQR-QHru.js                 1.01 kB │ gzip:  0.59 kB
dist/build/q-uemlvruI.js                 1.08 kB │ gzip:  0.62 kB
dist/build/q-RwbV8LUn.js                 1.23 kB │ gzip:  0.67 kB
dist/build/q-MDtxbKfe.js                 1.25 kB │ gzip:  0.73 kB
dist/build/q-CSmX_mSz.js                 1.33 kB │ gzip:  0.69 kB
dist/build/q-CYxtdWwp.js                 1.52 kB │ gzip:  0.79 kB
dist/build/q-BW25uXV8.js                 2.05 kB │ gzip:  0.76 kB
dist/build/q-B5NaC6
8000
Ac.js                 2.14 kB │ gzip:  1.04 kB
dist/build/q-BZC_Tl3d.js                 2.19 kB │ gzip:  0.90 kB
dist/build/q-D8meH-9D.js                 2.30 kB │ gzip:  1.11 kB
dist/build/q-dybrWh_l.js                 2.41 kB │ gzip:  0.97 kB
dist/service-worker.js                   2.81 kB │ gzip:  1.31 kB
dist/build/q-BSGfoyhh.js                 3.66 kB │ gzip:  1.62 kB
dist/build/q-BTsagoLC.js                 4.47 kB │ gzip:  1.43 kB
dist/build/q-CvKuo6aI.js                 9.92 kB │ gzip:  4.53 kB
dist/build/q-BHMC5f3w.js                67.82 kB │ gzip: 24.56 kB
dist/build/q-DeDSsC1a.js               108.32 kB │ gzip: 29.36 kB
✓ built in 14.21s
--> b5b074cfffe2
[1/2] STEP 11/12: RUN ls dist/*.json
dist/manifest.json
dist/q-manifest.json
--> ca1aa242a722
[1/2] STEP 12/12: RUN bun run build.server
$ vite build -c adapters/bun/vite.config.ts
using deprecated parameters for the initialization function; pass a single object instead
vite v5.3.5 building SSR bundle for production...
transforming...
/*! 🌼 daisyUI 5.0.35 */
✓ 27 modules transformed.
rendering chunks...
server/assets/FfzZttyQ-style.css   67.67 kB
server/entry.ssr.js                 0.09 kB
server/@qwik-city-plan.js          35.75 kB
server/q-CLeM2_VB.js               38.34 kB
server/entry.bun.js                53.95 kB
server/q-D8-9yd0W.js              201.68 kB
✓ built in 7.60s

Starting Qwik City SSG...
Missing client manifest, loading symbols in the client might 404. Please ensure the client build has run and generated the manifest for the server build.
Missing client manifest, loading symbols in the client might 404. Please ensure the client build has run and generated the manifest for the server build.
serializeQRL: Cannot resolve symbol <sync> in  undefined
serializeQRL: Cannot resolve symbol s_NaP7UUp8w0g in null undefined
QWIK ERROR Code(31) https://github.com/QwikDev/qwik/blob/main/packages/qwik/src/core/error/error.ts#L39 s_NaP7UUp8w0g Error: Code(31) https://github.com/QwikDev/qwik/blob/main/packages/qwik/src/core/error/error.ts#L39   
    at createAndLogError (/app/server/q-D8-9yd0W.js:31:56)
    at serializeQRL (/app/server/q-D8-9yd0W.js:3654:11)
    at mapJoin (/app/server/q-D8-9yd0W.js:3389:16)
    at renderNode (/app/server/q-D8-9yd0W.js:851:52)
    at renderNodeVirtual (/app/server/q-D8-9yd0W.js:661:19)
    at renderNode (/app/server/q-D8-9yd0W.js:868:21)
    at <anonymous> (/app/server/q-D8-9yd0W.js:950:22)
    at reduce (native:1:11)
    at renderNode (/app/server/q-D8-9yd0W.js:868:21)
    at renderNodeVirtual (/app/server/q-D8-9yd0W.js:661:19)
serializeQRL: Cannot resolve symbol <sync> in  undefined
serializeQRL: Cannot resolve symbol s_NaP7UUp8w0g in null undefined
QWIK ERROR Code(31) https://github.com/QwikDev/qwik/blob/main/packages/qwik/src/core/error/error.ts#L39 s_NaP7UUp8w0g Error: Code(31) https://github.com/QwikDev/qwik/blob/main/packages/qwik/src/core/error/error.ts#L39   
    at createAndLogError (/app/server/q-D8-9yd0W.js:31:56)
    at serializeQRL (/app/server/q-D8-9yd0W.js:3654:11)
    at mapJoin (/app/server/q-D8-9yd0W.js:3389:16)
    at renderNode (/app/server/q-D8-9yd0W.js:851:52)
    at renderNodeVirtual (/app/server/q-D8-9yd0W.js:661:19)
    at renderNode (/app/server/q-D8-9yd0W.js:868:21)
    at <anonymous> (/app/server/q-D8-9yd0W.js:950:22)
    at reduce (native:1:11)
    at renderNode (/app/server/q-D8-9yd0W.js:868:21)
    at renderNodeVirtual (/app/server/q-D8-9yd0W.js:661:19)

!!! /: Error during SSG
Code(31) https://github.com/QwikDev/qwik/blob/main/packages/qwik/src/core/error/error.ts#L39
  Pathname: /
  Plugin: qwik-ssg
  File: /app/server/q-D8-9yd0W.js:31:56
  29 |  const printParams = (optionalParams) => optionalParams;
  30 |  const createAndLogError = (asyncThrow, message, ...optionalParams) => {
  31 |    const err = message instanceof Error ? message : new Error(message);
     |                                                          ^
  32 |    return console.error("%cQWIK ERROR", "", err.message, ...printParams(optionalParams), err.stack), asyncThrow && setTimeout(() => {
  33 |      throw err;
      at createAndLogError (/app/server/q-D8-9yd0W.js:31:56)
      at serializeQRL (/app/server/q-D8-9yd0W.js:3654:11)
      at mapJoin (/app/server/q-D8-9yd0W.js:3389:16)
      at renderNode (/app/server/q-D8-9yd0W.js:851:52)
      at renderNodeVirtual (/app/server/q-D8-9yd0W.js:661:19)
      at renderNode (/app/server/q-D8-9yd0W.js:868:21)
      at <anonymous> (/app/server/q-D8-9yd0W.js:950:22)
      at reduce (native:1:11)
      at renderNode (/app/server/q-D8-9yd0W.js:868:21)
      at renderNodeVirtual (/app/server/q-D8-9yd0W.js:661:19)
dist/index.html

!!! /user/login/: Error during SSG
Code(31) https://github.com/QwikDev/qwik/blob/main/packages/qwik/src/core/error/error.ts#L39
  Pathname: /user/login/
dist/user/login/index.html
  Plugin: qwik-ssg
  File: /app/server/q-D8-9yd0W.js:31:56
  29 |  const printParams = (optionalParams) => optionalParams;
  30 |  const createAndLogError = (asyncThrow, message, ...optionalParams) => {
  31 |    const err = message instanceof Error ? message : new Error(message);
     |                                                          ^
  32 |    return console.error("%cQWIK ERROR", "", err.message, ...printParams(optionalParams), err.stack), asyncThrow && setTimeout(() => {
  33 |      throw err;
      at createAndLogError (/app/server/q-D8-9yd0W.js:31:56)
      at serializeQRL (/app/server/q-D8-9yd0W.js:3654:11)
      at mapJoin (/app/server/q-D8-9yd0W.js:3389:16)
      at renderNode (/app/server/q-D8-9yd0W.js:851:52)
      at renderNodeVirtual (/app/server/q-D8-9yd0W.js:661:19)
      at renderNode (/app/server/q-D8-9yd0W.js:868:21)
      at <anonymous> (/app/server/q-D8-9yd0W.js:950:22)
      at reduce (native:1:11)
      at renderNode (/app/server/q-D8-9yd0W.js:868:21)
      at renderNodeVirtual (/app/server/q-D8-9yd0W.js:661:19)
28 | };
29 | const printParams = (optionalParams) => optionalParams;
30 | const createAndLogError = (asyncThrow, message, ...optionalParams) => {
31 |   const err = message instanceof Error ? message : new Error(message);
32 |   return console.error("%cQWIK ERROR", "", err.message, ...printParams(optionalParams), err.stack), asyncThrow && setTimeout(() => {
33 |     throw err;
               ^
error: Code(31) https://github.com/QwikDev/qwik/blob/main/packages/qwik/src/core/error/error.ts#L39
      at <anonymous> (/app/server/q-D8-9yd0W.js:33:11)
28 | };
29 | const printParams = (optionalParams) => optionalParams;
30 | const createAndLogError = (asyncThrow, message, ...optionalParams) => {
31 |   const err = message instanceof Error ? message : new Error(message);
32 |   return console.error("%cQWIK ERROR", "", err.message, ...printParams(optionalParams), err.stack), asyncThrow && setTimeout(() => {
33 |     throw err;
               ^
error: Code(31) https://github.com/QwikDev/qwik/blob/main/packages/qwik/src/core/error/error.ts#L39
      at <anonymous> (/app/server/q-D8-9yd0W.js:33:11)

Bun v1.2.9 (Linux x64 baseline)
error: script "build.server" exited with code 1
building at STEP "RUN bun run build.server": while running runtime: exit status 1

@git-ayas
Copy link

@wmertens I don't mind sharing my dockerfile(its very basic):

# ====================
# Build stage
# ====================

FROM oven/bun:1.2.9-alpine AS builder

WORKDIR /app

COPY . .

RUN bun install 
RUN bun pm untrusted
RUN bun run build.types
RUN bun run build.client
RUN ls dist/*.json
RUN bun run build.server

# ====================
# Runtime stage
# ====================
FROM oven/bun:1.2.9-alpine AS runtime
WORKDIR /app
COPY --from=builder ./dist ./server ./
CMD bun server/entry.bun.js

@git-ayas
Copy link
git-ayas commented May 15, 2025

@dmitryuck @wmertens A workaround for the issue right now is to use node/npm/pnpm in a multi-stage docker build as below. It is confirmed that Qwik is having issues with building with bun on docker.

I suspect that the issue has to do with bun behaving differently when NODE_ENV="production". I vaguely recall that it has more restriction while installing dependencies and file system access is also restricted (kind of like Deno). Will try to see if the bun docs to see if it can shed some light. Holler if you guys find anything.

# Uses node and npm for builds becuase building with bun is borked
# ====================
# Build stage
# ====================

FROM node:current-alpine3.21 AS builder

WORKDIR /app

COPY . .

RUN npm install 
RUN npm run build.types
RUN npm run build.client
RUN npm run build.server

# ====================
# Runtime stage
# ====================
FROM oven/bun:1.2.9-alpine AS runtime
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/server ./server

@octet-stream
Copy link
Contributor
octet-stream commented May 17, 2025

When I build on local machine everything fine

@dmitryuck do you have Node.js installed on your local machine? Do you use --bun flag when you build your project? If so, Bun will not replace node with bun in executables and run Vite as is (in Node.js, not Bun), hence no error. If you add the flag, the error will occur. And I can confirm it's still there.

I've been trying to fix this problem before, but it seems like I failed. I think I don't understand what the cause of the problem is.

Also, if you try to build preview entry - it will not fail for some reason, but you won't be able to run it, because Vite will throw the same error as soon as you open your app in a browser.

@dmitryuck
Copy link
Author

do you have Node.js installed on your local machine?

Yes, I have both node and bun installed on local computer, I do not use --bun flag, and building with bun run build

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
STATUS-1: needs triage New issue which needs to be triaged TYPE: bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants
0