getsentry / sentry-javascript

Official Sentry SDKs for JavaScript
https://sentry.io
MIT License
7.97k stars 1.57k forks source link

Identifier '$haml' has already been declared #13982

Open florian-lefebvre opened 2 weeks ago

florian-lefebvre commented 2 weeks ago

Is there an existing issue for this?

How do you use Sentry?

Sentry Saas (sentry.io)

Which SDK are you using?

@sentry/astro

SDK Version

8.34.0

Framework Version

8.34.0

Link to Sentry event

No response

Reproduction Example/SDK Setup

Hi! I'm trying to upgrade the Astro integration from 7.119.2 to 8.34.0 (also tried from 7.119.2 to 8.0.0 and same). I've tried to create a minimal reproduction to isolate this issue, but I can't manage to reproduce the error in a brand new project. I apogolize about this, I know it sucks as a maintainer not to get a minimal repro.

So this issue is first to ask for clues to debug the error, and 2nd to provide a proper minimal reproduction after debugging. There's one related issue at #13304 for Nuxt but it seems unrelated to my setup.

The issue occurs with a minimal setup, ie. pnpm astro add @sentry/astro:

export default defineConfig({
    output: 'server',
    adapter: netlify(),
    integrations: [sentry({ dsn: process.env.SENTRY_DSN })]
})

The error goes away if I remove sentry from the integrations array.

Steps to Reproduce

  1. Start the dev server with astro dev

Expected Result

The page should load properly

Actual Result

I get the following error:

12:05:04 [ERROR] [vite] Internal server error: Identifier '$haml' has already been declared
      at compileSourceTextModule (node:internal/modules/esm/utils:339:16)
      at ModuleLoader.moduleStrategy (node:internal/modules/esm/translators:168:18)
      at callTranslator (node:internal/modules/esm/loader:428:14)
      at ModuleLoader.moduleProvider (node:internal/modules/esm/loader:434:30)
      at async link (node:internal/modules/esm/module_job:87:21)
chargome commented 2 weeks ago

Hey @florian-lefebvre, thanks for reaching out. Can you add debug: true to your Sentry config and check the logs?

florian-lefebvre commented 2 weeks ago

The error seems to occur super early, here is what I get:

➜  satquiz git:(renovate/major-sentry-javascript-monorepo) ✗ pnpm astro dev  

> satquiz@0.0.1 astro /home/florian/Documents/github/satquiztime/satquiz
> astro "dev"

09:07:19 [@sentry/astro] Using /home/florian/Documents/github/satquiztime/satquiz/sentry/client.ts for client init.
09:07:19 [@sentry/astro] Using /home/florian/Documents/github/satquiztime/satquiz/sentry/server.ts for server init.
09:07:19 [WARN] [config] The adapter @astrojs/netlify provides experimental support for "assets". You may experience issues or breaking changes until this feature is fully supported by the adapter.
09:07:19 [WARN] [config] The adapter @astrojs/netlify provides experimental support for "astro:env getSecret". You may experience issues or breaking changes until this feature is fully supported by the adapter.
09:07:19 [types] Generated 2ms

 astro  v4.16.3 ready in 742 ms

┃ Local    http://localhost:4321/
┃ Network  use --host to expose

09:07:20 watching for file changes...
09:07:33 [ERROR] Identifier '$haml' has already been declared
  Stack trace:
    at compileSourceTextModule (node:internal/modules/esm/utils:339:16)
    at callTranslator (node:internal/modules/esm/loader:428:14)
    at async link (node:internal/modules/esm/module_job:87:21)

The error only occurs once I open localhost:4321/

chargome commented 2 weeks ago

@florian-lefebvre astro build runs successfully? Are you using any UI framework integration within astro?

florian-lefebvre commented 2 weeks ago

The project has many dependencies so many things could conflict. I guess I'll have to go little by little, disabling things until it starts working to spot the issue. Thanks anyways!

chargome commented 2 weeks ago

@florian-lefebvre Keep us posted here please if you spot the culprit 🙏