Skip to content

[Bug]: Error "--inspect-publish-uid destination can be stderr or http" when run with node --watch #3699

@mdoi2

Description

@mdoi2

Version

v5.66.5

Platform

NodeJS

What happened?

When running a sandboxed process using node --watch in Node.js version 24.12.0 or later, the following error occurs:

Error [ERR_WORKER_INVALID_EXEC_ARGV]: Initiated Worker with invalid execArgv flags: --inspect-publish-uid destination can be stderr or http
    at new Worker (node:internal/worker:287:13)
    at Child.init (/path/node_modules/.pnpm/bullmq@5.66.5/node_modules/bullmq/dist/cjs/classes/child.js:74:36)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async ChildPool.retain (/path/node_modules/.pnpm/bullmq@5.66.5/node_modules/bullmq/dist/cjs/classes/child-pool.js:38:13)
    at async initChild (/path/node_modules/.pnpm/bullmq@5.66.5/node_modules/bullmq/dist/cjs/classes/sandbox.js:16:33) {
  code: 'ERR_WORKER_INVALID_EXEC_ARGV'
}

When checking the values of process.envArgv during debug execution, they appear to vary significantly depending on the Node.js version.

Node.js v24.11.1

// process.envArgv
[
]

Node.js v24.13.0

// process.envArgv
[
  "--test-concurrency=0",
  "--heap-prof-interval=524288",
  "--max-http-header-size=16384",
  "--stack-trace-limit=10",
  "--report-signal=SIGUSR2",
  "--heapsnapshot-near-heap-limit=0",
  "--tls-cipher-list=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA",
  "--watch-kill-signal=SIGTERM",
  "--inspect-publish-uid=stderr,http",
  "--cpu-prof-interval=1000",
  "--test-coverage-functions=0",
  "--test-timeout=0",
  "--require=/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/bootloader.js",
  "--test-coverage-lines=0",
  "--test-isolation=process",
  "--test-coverage-branches=0",
  "--network-family-autoselection-attempt-timeout=250",
  "--use-largepages=off",
  "--inspect-port=127.0.0.1:9229",
  "--secure-heap-min=2",
  "--v8-pool-size=4",
  "--node-snapshot",
  "--trace-event-file-pattern=node_trace.${rotation}.log",
  "--secure-heap=0",
]

How to reproduce.

// run.mjs

import { Worker, Queue } from 'bullmq';
import path from 'node:path';

const processorFile = path.join(import.meta.dirname, 'processor.mjs');
new Worker('queue1', processorFile, {
  connection: {
    host: 'localhost',
    port: 6379,
  },
  useWorkerThreads: true,
});

const queue1 = new Queue('queue1');
await queue1.add('job1');
// processor.mjs

export default async (job) => {
  console.log(job.id);
};
node --watch ./run.mjs

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions