Official Sentry SDK for Bun (Beta)

Links
The Sentry Bun SDK is in beta. Please help us improve the SDK by
reporting any issues or giving us feedback.
Usage
To use this SDK, call init(options)
as early as possible in the main entry module. This will initialize the SDK and
hook into the environment. Note that you can turn off almost all side effects using the respective options.
const Sentry = require('@sentry/bun');
import * as Sentry from '@sentry/bun';
Sentry.init({
dsn: '__DSN__',
});
To set context information or send manual events, use the exported functions of @sentry/bun
. Note that these functions
will not perform any action before you have called init()
:
Sentry.setExtra('battery', 0.7);
Sentry.setTag('user_mode', 'admin');
Sentry.setUser({ id: '4711' });
Sentry.addBreadcrumb({
message: 'My Breadcrumb',
});
Sentry.captureMessage('Hello, world!');
Sentry.captureException(new Error('Good bye'));
Sentry.captureEvent({
message: 'Manual',
stacktrace: [
],
});
10.12.0
Important Changes
-
ref: Add and Adjust error event mechanism
values
This release includes a variety of changes aimed at setting the mechanism
field on errors captured automatically by the Sentry SDKs. The intention is to clearly mark which instrumentation captured an error. In addition, some instrumentations previously did not yet annotate the error as handled or unhandled which this series of PRs corrects as well.
<details>
<summary> Relevant PRs </summary>
<br/>
Released in 10.12.0
:
- ref(angular): Adjust ErrorHandler event mechanism (#17608)
- ref(astro): Adjust
mechanism
on error events captured by astro middleware (#17613)
- ref(aws-severless): Slightly adjust aws-serverless mechanism type (#17614)
- ref(bun): Adjust
mechanism
of errors captured in Bun.serve (#17616)
- ref(cloudflare): Adjust event
mechanisms
and durable object origin (#17618)
- ref(core): Adjust
mechanism
in captureConsoleIntegration
(#17633)
- ref(core): Adjust MCP server error event
mechanism
(#17622)
- ref(core): Simplify
linkedErrors
mechanism logic (#17600)
- ref(deno): Adjust
mechanism
of errors caught by globalHandlersIntegration
(#17635)
- ref(nextjs): Set more specific event
mechanism
s (#17543)
- ref(node): Adjust mechanism of express, hapi and fastify error handlers (#17623)
- ref(node-core): Add
mechanism
to cron instrumentations (#17544)
- ref(node-core): Add more specific
mechanism.type
to worker thread errors from childProcessIntegration
(#17578)
- ref(node-core): Adjust
mechanism
of onUnhandledRejection
and onUnhandledException
integrations (#17636)
- ref(node): Add mechanism to errors captured via connect and koa integrations (#17579)
- ref(nuxt): Add and adjust
mechanism.type
in error events (#17599)
- ref(react): Add mechanism to
reactErrorHandler
and adjust mechanism in ErrorBoundary
(#17602)
- ref(remix): Adjust event mechanism of
captureRemixServerException
(#17629)
- ref(replay-internal): Add mechanism to error caught by
replayIntegration
in debug mode (#17606)
- ref(solid): Add
mechanism
to error captured by withSentryErrorBoundary
(#17607)
- ref(solidstart): Adjust event mechanism in withServerActionInstrumentation (#17637)
- ref(sveltekit): Adjust
mechanism
of error events (#17646)
- ref(vue): Adjust mechanism in Vue error handler (#17647)
<br/>
Released in 10.11.0
:
- ref(browser): Add more specific
mechanism.type
to errors captured by httpClientIntegration
(#17254)
- ref(browser): Set more descriptive
mechanism.type
in browserApiErrorsIntergation
(#17251)
- ref(core): Add
mechanism.type
to trpcMiddleware
errors (#17287)
- ref(core): Add more specific event
mechanism
s and span origins to openAiIntegration
(#17288)
- ref(nestjs): Add
mechanism
to captured errors (#17312)
</details>
- feat(node) Ensure
prismaIntegration
works with Prisma 5 (#17595)
We used to require to pass in the v5 version of @prisma/instrumentation
into prismaIntegration({ prismaInstrumentation: new PrismaInstrumentation() })
, if you wanted to get full instrumentation for Prisma v5. However, it turns out this does not work on v10 of the SDK anymore, because @prisma/instrumentation@5
requires OTEL v1.
With this release, we dropped the requirement to configure anything to get v5 support of Prisma. You do not need to configure anything in the integration anymore, and can remove the dependency on @prisma/instrumentation@5
if you had it in your application. You only need to configure the tracing
preview feature according to our docs.
- feat(deps): Update OpenTelemetry dependencies (#17558)
- @opentelemetry/core bumped to ^2.1.0
- @opentelemetry/context-async-hooks bumped to ^2.1.0
- @opentelemetry/resources bumped to ^2.1.0
- @opentelemetry/sdk-trace-base bumped to ^2.1.0
- @opentelemetry/semantic-conventions bumped to ^1.37.0
- @opentelemetry/instrumentation bumped to ^0.204.0
- @opentelemetry/instrumentation-http bumped to ^0.204.0
- @opentelemetry/instrumentation-amqplib bumped to ^0.51.0
- @opentelemetry/instrumentation-aws-sdk bumped to ^0.59.0
- @opentelemetry/instrumentation-connect bumped to ^0.48.0
- @opentelemetry/instrumentation-dataloader bumped to ^0.22.0
- @opentelemetry/instrumentation-express bumped to ^0.53.0
- @opentelemetry/instrumentation-fs bumped from to ^0.24.0
- @opentelemetry/instrumentation-generic-pool bumped to ^0.48.0
- @opentelemetry/instrumentation-graphql bumped to ^0.52.0
- @opentelemetry/instrumentation-hapi bumped to ^0.51.0
- @opentelemetry/instrumentation-ioredis bumped to ^0.52.0
- @opentelemetry/instrumentation-kafkajs bumped to ^0.14.0
- @opentelemetry/instrumentation-knex bumped to ^0.49.0
- @opentelemetry/instrumentation-koa bumped to ^0.52.0
- @opentelemetry/instrumentation-lru-memoizer bumped to ^0.49.0
- @opentelemetry/instrumentation-mongodb bumped from to ^0.57.0
- @opentelemetry/instrumentation-mongoose bumped from to ^0.51.0
- @opentelemetry/instrumentation-mysql bumped to ^0.50.0
- @opentelemetry/instrumentation-mysql2 bumped to ^0.51.0
- @opentelemetry/instrumentation-nestjs-core bumped to ^0.50.0
- @opentelemetry/instrumentation-pg bumped to ^0.57.0
- @opentelemetry/instrumentation-redis bumped to ^0.53.0
- @opentelemetry/instrumentation-undici bumped to ^0.15.0
- @prisma/instrumentation bumped to 6.15.0
Other Changes
- feat(browser): Add timing and status atttributes to resource spans (#17562)
- feat(cloudflare,vercel-edge): Add support for Anthropic AI instrumentation (#17571)
- feat(core): Add Consola integration (#17435)
- feat(deps): Update OpenTelemetry dependencies (#17569)
- feat(core): Export
TracesSamplerSamplingContext
type (#17523)
- feat(deno): Add OpenTelemetry support and vercelAI integration (#17445)
- feat(node-core): Remove experimental note from winston api (#17626)
- feat(node): Ensure
prismaIntegration
works with Prisma v5 (#17595)
- feat(node): Tidy existing ESM loader hook (#17566)
- feat(sveltekit): Align build time options with shared type (#17413)
- fix(core): Fix error handling when sending envelopes (#17662)
- fix(browser): Always start navigation as root span (#17648)
- fix(browser): Ensure propagated
parentSpanId
stays consistent during trace in TwP mode (#17526)
- fix(cloudflare): Initialize once per workflow run and preserve scope for
step.do
(#17582)
- fix(nextjs): Add edge polyfills for nextjs-13 in dev mode (#17488)
- fix(nitro): Support nested
_platform
properties in Nitro 2.11.7+ (#17596)
- fix(node): Preserve synchronous return behavior for streamText and other methods for AI (#17580)
- ref(node): Inline types imported from
shimmer
(#17597) - ref(nuxt): Add and adjust mechanism.type
in error events (#17599)
- ref(browser): Improve
fetchTransport
error handling (#17661)
<details>
<summary> <strong>Internal Changes</strong> </summary>
- chore: Add changelog note about mechanism changes (#17632)
- chore(aws): Update README.md (#17601)
- chore(deps): bump hono from 4.7.10 to 4.9.7 in /dev-packages/e2e-tests/test-applications/cloudflare-hono (#17630)
- chore(deps): bump next from 14.2.25 to 14.2.32 in /dev-packages/e2e-tests/test-applications/nextjs-app-dir (#17627)
- chore(deps): bump next from 14.2.25 to 14.2.32 in /dev-packages/e2e-tests/test-applications/nextjs-pages-dir (#17620)
- chore(deps): bump next from 14.2.29 to 14.2.32 in /dev-packages/e2e-tests/test-applications/nextjs-orpc (#17494)
- chore(deps): bump next from 14.2.30 to 14.2.32 in /dev-packages/e2e-tests/test-applications/nextjs-14 (#17628)
- chore(repo): Rename
.claude/settings.local.json
to .claude/settings.json
(#17591)
- docs(issue-template): Add note about prioritization (#17590)
- ref(core): Streamline event processor handling (#17634)
- test(angular): Bump TS version to 5.9.0 in Angular 20 e2e test (#17605)
- test(nextjs): Remove Next 13 and pin Next 14 canary and latest tests (#17577)
- test(react-router): Unflake
flushIfServerless
test (#17610)
</details>