sentry-javascript icon indicating copy to clipboard operation
sentry-javascript copied to clipboard

[node][8.0.0] TypeError: acs.getCurrentScope is not a function

Open lcsvcn opened this issue 1 year ago • 7 comments

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 Self Hosted

Which SDK are you using?

@sentry/node

SDK Version

8.0.0

Framework Version

"@sentry/node": "^8.0.0",

Link to Sentry event

no link, setup issue.

SDK Setup

    Sentry.init({
      dsn: process.env.SENTRY_DSN,
      environment: process.env.SERVER_ENV,
      tracesSampleRate: 0,
      release: "1.0.0",
    })

Steps to Reproduce

  1. Update to 8.0.0
  2. Try to run

Expected Result

Application start normal

Actual Result

Failed to start server
TypeError: acs.getCurrentScope is not a function
    at getCurrentScope (/Users/lcsvcn/Documents/GitHub/backend-audio/node_modules/.pnpm/@[email protected]/node_modules/@sentry/src/currentScopes.ts:24:14)
    at Object.getClient (/Users/lcsvcn/Documents/GitHub/backend-audio/node_modules/.pnpm/@[email protected]/node_modules/@sentry/src/currentScopes.ts:131:10)
    at Object.hasTracingEnabled (/Users/lcsvcn/Documents/GitHub/backend-audio/node_modules/.pnpm/@[email protected]/node_modules/@sentry/src/utils/hasTracingEnabled.ts:19:18)
    at getDefaultIntegrations (/Users/lcsvcn/Documents/GitHub/backend-audio/node_modules/.pnpm/@[email protected]/node_modules/@sentry/src/sdk/init.ts:81:9)
    at getClientOptions (/Users/lcsvcn/Documents/GitHub/backend-audio/node_modules/.pnpm/@[email protected]/node_modules/@sentry/src/sdk/init.ts:219:35)
    at Object.init (/Users/lcsvcn/Documents/GitHub/backend-audio/node_modules/.pnpm/@[email protected]/node_modules/@sentry/src/sdk/init.ts:91:25)
    at main (/Users/lcsvcn/Documents/GitHub/backend-audio/src/server/
server.ts:38:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Screenshot 2024-05-15 at 12 10 01

lcsvcn avatar May 15 '24 15:05 lcsvcn

Started after Dependabot changed from:

7.114.0 to 8.0.0

reverting to 7.114.0 works fine

lcsvcn avatar May 15 '24 15:05 lcsvcn

Hey, thank you for reporting.

Some questions:

  1. What node version are you using?
  2. Could you share more of your init code, e.g. where in your app do you initialize Sentry?

I will look into this, it seems to me there may be some conflict there. One thing you could try is to log this before calling Sentry.init():

console.log(globalThis.__SENTRY__);

Does this output something for you? 🤔

mydea avatar May 16 '24 09:05 mydea

Same issue here, migrating from configureScope() to getCurrentScope(). Adding console.log(globalThis.__SENTRY__); outputs nothing both in sentry.client.config.ts and sentry.server.config.ts. Currently running node v20.12.0 and our config files can be found here for the client and for the server

Mintoo200 avatar May 23 '24 09:05 Mintoo200

@Mintoo200 just to rule one thing out: Did you follow the migration guide for initializing the v8 SDK? I looked at your repo and couldn't find the instrumentation.js file that you need for NextJS with v8.

Lms24 avatar May 23 '24 09:05 Lms24

Looking into this some more, in addition to @Lms24 comment above, I think @Mintoo200 your problem is because of https://www.npmjs.com/package/pino-sentry, which uses v7 of the SDK, see https://github.com/aandrewww/pino-sentry/blob/master/package.json#L37. This has to be updated to be compatible with v8!

I opened an issue for this: https://github.com/aandrewww/pino-sentry/issues/68

mydea avatar May 23 '24 09:05 mydea

Did you follow the migration guide for initializing the v8 SDK?

Indeed we did not, we relied on the changelog, which didn't mention it. I'll take a peek today, thanks for the pointer :)

I opened an issue for this: https://github.com/aandrewww/pino-sentry/issues/68

Thanks !

Mintoo200 avatar May 23 '24 10:05 Mintoo200

@lcsvcn also for your original issue, I think the most likely cause is that there is somehow an older version of Sentry installed & used as well - could that be the case?

FWIW we are looking into ways to make this less likely to break, but in any case such a setup would always be subject to have problems, so this should be resolved in any case - there should always just be a single version of Sentry installed and run in your app!

mydea avatar May 23 '24 10:05 mydea