In nuxt dev, ioredis and mysql never get DB spans. The SDK starts fine and http.server transactions arrive, but the DB spans are missing.
It's a load-order problem. Nitro generates .nuxt/dev/sentry.server.config.mjs, the file nuxt dev passes to --import, as a list of imports for the whole dev server:
import './index.mjs'; // the whole Nitro dev server
// … a few more imports …
import '…/node_modules/ioredis/built/index.js';
import '…/node_modules/mysql/index.js';
// … more imports, then Sentry.init() somewhere inside
ESM runs all imports before any code, so both drivers are loaded by the time Sentry.init() runs, and the runtime hook can't instrument a module that loaded first. A probe on Module.prototype._compile confirms it: when ioredis compiles, globalThis.__SENTRY_ORCHESTRION__ doesn't exist yet.
This isn't only about orchestrion. Anything that needs Sentry.init() to run before a dependency loads is unreliable in nuxt dev.
Repro: in dev-packages/e2e-tests/test-applications/nuxt-4, run bash ./nuxt-start-dev-server.bash && TEST_ENV=development playwright test db-drivers. Both tests time out; the dev pass is filtered to environment today for this reason.
Found while working on JS-3233 (#22857). Blocks the nuxt-4 dev DB tests (#23836).
In
nuxt dev,ioredisandmysqlnever get DB spans. The SDK starts fine andhttp.servertransactions arrive, but the DB spans are missing.It's a load-order problem. Nitro generates
.nuxt/dev/sentry.server.config.mjs, the filenuxt devpasses to--import, as a list of imports for the whole dev server:ESM runs all imports before any code, so both drivers are loaded by the time
Sentry.init()runs, and the runtime hook can't instrument a module that loaded first. A probe onModule.prototype._compileconfirms it: wheniorediscompiles,globalThis.__SENTRY_ORCHESTRION__doesn't exist yet.This isn't only about orchestrion. Anything that needs
Sentry.init()to run before a dependency loads is unreliable innuxt dev.Repro: in
dev-packages/e2e-tests/test-applications/nuxt-4, runbash ./nuxt-start-dev-server.bash && TEST_ENV=development playwright test db-drivers. Both tests time out; the dev pass is filtered toenvironmenttoday for this reason.Found while working on JS-3233 (#22857). Blocks the nuxt-4 dev DB tests (#23836).