[Cloudflare] instrumentWorkflowWithSentry does not capture a NonRetryableError thrown before the final attempt
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 78/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- typescript
調査の方向性
まず instrumentWorkflowWithSentry と WrappedWorkflowStep.do を読み、特に現在は試行回数に応じてキャプチャの有無が決まる instrumentedCallback を確認してください。既存の Cloudflare workflow instrumentation のテストを確認し、最後の再試行より前にスローされる NonRetryableError のテストを追加してください。このエラーによって Sentry イベントが 1 件発生し、再試行を使い切った場合の動作も引き続きテストでカバーされていれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Is there an existing issue for this?
- I have checked for existing issues https://github.com/getsentry/sentry-javascript/issues
- I have reviewed the documentation https://docs.sentry.io/
- I am using the latest SDK release https://github.com/getsentry/sentry-javascript/releases
Related: #17421, #21025
How do you use Sentry?
Sentry Saas (sentry.io)
Which SDK are you using?
@sentry/cloudflare
SDK Version
11.9.0 (the code is the same in 11.10.0 and on develop)
Framework Version
wrangler 4.98.0, compatibility_date 2025-06-04
Reproduction Example/SDK Setup
import { WorkflowEntrypoint } from 'cloudflare:workers'
import { NonRetryableError } from 'cloudflare:workflows'
import * as Sentry from '@sentry/cloudflare'
class MyWorkflow extends WorkflowEntrypoint<Env, Params> {
async run(event, step) {
await step.do('load', { retries: { limit: 2, delay: '1 second' } }, async () => {
throw new NonRetryableError('permanent failure')
})
}
}
export const Instrumented = Sentry.instrumentWorkflowWithSentry(
(env) => ({ dsn: env.SENTRY_DSN }),
MyWorkflow,
)
Steps to Reproduce
- Wrap a Workflow with
instrumentWorkflowWithSentry. - Throw a
NonRetryableErrorin astep.dowithretries.limit > 0. - Trigger an instance.
Expected Result
One Sentry event for the NonRetryableError that ends the instance.
Actual Result
No event. WrappedWorkflowStep.do only captures when attempt > retries.limit, and a NonRetryableError ends the instance on attempt 1. Regression since 10.56.0 (#21025): before, the step error was captured on every attempt, so it was reported.
Additional Context
#17421 asked for one error "once all step.do retries have been exhausted, or on a NonRetryableError". #21025 covered only the first case.
Suggested fix: in instrumentedCallback, also capture when error.name === 'NonRetryableError'. I'm happy to open a PR with integration tests.
- 主要言語
- TypeScript
- スター
- 8.8k
- フォーク
- 1.9k
- 平均マージ
- 1日 20時間
- マージ済み PR(30日)
- 682
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
getsentry/sentry-javascript のほかの issue
-
Workers AI integration drops output of non-streaming chat responses in the OpenAI format (`choices`)オープンBug Cloudflare Workers Spans
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
getsentry/sentry-javascript#26120 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
Vercel AI: `gen_ai.system_instructions` is missing when the system prompt is a message object対応中かも @biggdawg320 が 1 日前に担当しました。 オープンBug Package: node Spans vercel ai
難易度 2/5 1〜3時間 初心者へのやさしさ 73/100
getsentry/sentry-javascript#26079 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
fsIntegration crashes in native ESM when patching the read-only fs namespace対応中かも @chargome が 1 日前に担当しました。 オープンBug Node.js Waiting for: Product Owner
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
getsentry/sentry-javascript#25950 · コメント 2 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
normalize() throws when a getter throws a Symbol or a null-prototype object対応中かも @rjmcgee53192 が 5 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
getsentry/sentry-javascript#25920 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
Only create Nuxt database and storage spans when there is a parent span対応中かも @nicohrubec が 7 日前に担当しました。 オープンImprovement Nuxt
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
getsentry/sentry-javascript#25805 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
getsentry/sentry-javascript の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
vercel-labs/durable-harness#53 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
area/docs area/ui enhancement
難易度 1/5 1〜3時間 初心者へのやさしさ 88/100
melgarafael/DeskcommCRM#4098 ·
メンテナーはふだん 1 日以内に返信
-
bug ready-for-agent
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
kerti/balances-v2#801 ·
メンテナーはふだん 1 日以内に返信
-
lesson-submission pending-review
難易度 1/5 1時間未満 初心者へのやさしさ 84/100
Ikalus1988/MisakaNet#4510 ·
メンテナーはふだん 1 日以内に返信