getsentry / getsentry/sentry-javascript

hono: Double `init()` behaves differently per runtime

オープン
#24,049 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
Bug Bun javascript
主要言語
TypeScript
スター
8.7k
フォーク
1.8k
平均マージ
1日 17時間
マージ済み PR(30日)
523

説明

```
node : same client after 2nd init? true | release now: 1.0.0
bun : same client after 2nd init? false | release now: 2.0.0
(plus a console warning)
```

`hono/src/node/sdk.ts:15` returns the existing client and skips re-initialization. `hono/src/bun/sdk.ts:17` and `hono/src/deno/sdk.ts:17` warn and then re-initialize anyway, replacing the client. Anything buffered on the first client is dropped, and its integrations stay installed against a dead client.

The Hono docs tell users to init through the `sentry()` middleware, so a user who also calls `Sentry.init()` hits exactly this path.

**Work item.** Make all four entries behave the same way. Returning the existing client (the Node behavior) is the safer default. Keep the loud warning from bun/deno on all of them.

**Prior art **[#21176]() asked for the Bun middleware to follow the Node pattern. getsentry/sentry-javascript#21195 closed it by adding the warning only. The behavior divergence this item describes is what is left over: bun and deno warn and then re-initialize anyway.

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

Start with hono/src/node/sdk.ts:15 and compare it with hono/src/bun/sdk.ts:17 and hono/src/deno/sdk.ts:17, then locate the fourth runtime entry. Check the initialization and warning behavior across all four entries. Done means every runtime warns on a second init while preserving and returning the existing client rather than replacing it.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
bun, deno, nodejs, typescript
領域
backend, observability
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
活発
明瞭さ
明確に書かれている
初心者へのやさしさ
76/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。