getsentry / getsentry/sentry-javascript

Elysia events report as `sentry.javascript.bun`

Open Beginner friendly
#24,046 1 comment 0 reactions 0 assignees View on GitHub
Bug Bun javascript
Dominant language
TypeScript
Stars
8.7k
Forks
1.8k
Avg merge
1d 17h
Merged PRs (30d)
523

Description

Running under both node and bun, with the built `@sentry/elysia`:

```
sdk: {"name":"sentry.javascript.bun","version":"10.67.0",
"packages":[{"name":"npm:@sentry/bun","version":"10.67.0"}]}
```

`sentry.javascript.elysia` never appears. `packages/elysia/src/sdk.ts:44`copies `userOptions` into `options` *before* calling `applySdkMetadata(userOptions, 'elysia', ...)`. When `userOptions._metadata` is undefined, `applySdkMetadata` creates a fresh `_metadata` on `userOptions`, which the already-made copy does not have. `initBun(options)` then applies its own `'bun'` metadata to the copy.

The Elysia SDK is invisible in SDK adoption telemetry, and support cannot tell Elysia reports from plain Bun ones.

**Work item.** Call `applySdkMetadata(options, ...)` on the copy, or move the call above the spread. One-line fix. Add an assertion to `packages/elysia/test` that `event.sdk.name === 'sentry.javascript.elysia'`.

**Prior art** the identical bug was already found and fixed one package over: [#15458]()/[#15459]() "fix(bun): Includes correct sdk metadata". That PR also added the SDK-metadata assertion to the Bun tests, which is the test to copy here.

Contributor guide

Open the contributing guide

Research direction

Start at packages/elysia/src/sdk.ts:44 and inspect how userOptions is copied before applySdkMetadata runs. Make the metadata call target the copied options or move it before the spread, then add the SDK-name assertion in packages/elysia/test, following the assertion added to the Bun tests in #15459. Done means the test sees event.sdk.name as sentry.javascript.elysia.

Written by the indexing model from the issue text.

Assessment

Tech stack
bun, node.js, typescript
Domain
backend, testing-qa
Issue type
Bug
Difficulty
1/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
92/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.