Crash on init within a docker container (but worked before in the container)
Is there an existing issue for this?
- [x] I have checked for existing issues https://github.com/getsentry/sentry-javascript/issues
- [x] I have reviewed the documentation https://docs.sentry.io/
- [x] I am using the latest SDK release https://github.com/getsentry/sentry-javascript/releases
How do you use Sentry?
Sentry Saas (sentry.io)
Which SDK are you using?
@sentry/nodejs
SDK Version
8.34.0
Framework Version
Express
Link to Sentry event
No response
Reproduction Example/SDK Setup
No response
Steps to Reproduce
Run app within docker container
Expected Result
the add does not crash
Actual Result
The app crashes with:
Error: Cannot find module '/home/node/app/node_modules/@sentry/profiling-node/lib/sentry_cpu_profiler-linux-x64-musl-131.node'
Require stack:
- Error: Cannot find module '/home/node/app/node_modules/@sentry/profiling-node/lib/sentry_cpu_profiler-linux-x64-musl-131.node'
R node:internal/modules/cjs/loader:1262
throw err;
^
Note the version 131 it wants to load indeed does not exists, when i run nodejs locally and test the code that is used by sentry node profiler i get this:
Welcome to Node.js v22.9.0.
Type ".help" for more information.
> const nodeAbi = require('node-abi');
undefined
> const node_process = require('node:process');
undefined
> nodeAbi.getAbi(node_process.versions.node, 'node');
'127'
>
The file with 127 does exist and sentry works normally
The docker file just uses the official docker image and nothing special:
# Use the official Node.js image as the base image
FROM node:current-alpine
# Set the working directory inside the container
WORKDIR /home/node/app
# Copy package.json and package-lock.json to the working directory
COPY package*.json ./
# Install dependencies
RUN npm install
RUN npm install -g nodemon
# Start the server
CMD ["nodemon", "-x", "bin/www"]
I was forced to remove sentry from the apps within the company so we can deploy them and i rather would reactivate sentry.
Hey @stoneburner, we currently only ship prebuilt binaries for node versions v16-22 (see https://github.com/getsentry/sentry-javascript/blob/develop/packages/profiling-node/README.md#prebuilt-binaries), and current-alpine resolves to v23. Can you try downgrading to node 22?
Thanks, downgrading nodejs to 22 worked!
Maybe a check of the abi version would be a good idea, disabling profiling (and warning about that) would be nicer than just crashing
Great to hear that it worked! And yes, checking for the version makes sense. I'll put that on our list.
A PR closing this issue has just been released 🚀
This issue was referenced by PR #14043, which was included in the 8.36.0 release.