Skip to content

chore(runner): flip SENTRY_SCOPE and VITE_SENTRY_SCOPE to uncaught (DEV-3099) - #432

Merged
demtario merged 1 commit into
masterfrom
chore/sentry-scope-uncaught
Oct 13, 2026
Merged

demtario merged 1 commit into
masterfrom
chore/sentry-scope-uncaught

Conversation

@demtario

Copy link
Copy Markdown
Member

Context

DEV-3099: narrow Sentry to errors that escape a handler. This flips SENTRY_SCOPE on the API worker (runner/workers/api/wrangler.jsonc) and VITE_SENTRY_SCOPE in the authoring production build (.github/workflows/master.yml) from full to uncaught. Handled diagnostics then go only to Grafana/Loki.
The preconditions in DEV-3094 are met and go was recorded on 2026-10-12: real data end to end, alerts fired for real, alert windows retuned (#429), fingerprint feed cleaned up (#430), 422 build_failed capture dropped (#431), Tier-2 output probe clean, volume at about 0.5M events a month against a 5M target.
Known gap, accepted: a fresh post-#430 production probe of the API-side new-fingerprint feed was not possible (the npm-registry:* paths only fire when the registry fetch throws). It is covered by pipeline/o11y-normalise.test.mjs, and the first natural new API handled-error class after the flip is the live confirmation. A new class is only a row in the "New handled-error fingerprints (first seen)" table on Observability self, with no Slack post (decided in DEV-3094).
Rollback: set both values back to full (a revert of this PR does exactly that), merge and let the API worker and the authoring build deploy. No code change is needed. Sentry resumes receiving handled diagnostics on the next deploy of each half.
The run-and-deploy.md runbook now says the committed values read uncaught. api-telemetry-config.test.mjs pinned SENTRY_SCOPE to full, so it now pins uncaught, and a new master-workflow.test.mjs pin covers the authoring half so the two halves cannot drift apart.

Types of changes

  • New example
  • Update to an existing example
  • README / documentation change
  • Demo runner (runner/) change
  • CI / tooling change

How was this verified?

Raw node --experimental-strip-types --test pipeline/*.test.mjs: 2774 tests, 2774 pass, 0 fail. Reverting either half (SENTRY_SCOPE to full, or VITE_SENTRY_SCOPE to full) turns its pin test red; both were restored. pnpm --filter @handsontable/demo-api typecheck exits 0.
This is a config flip: the effect is observable only after deploy, as Sentry volume dropping to uncaught errors while Grafana still shows the handled diagnostics (the watch steps in DEV-3099).

Checklist

  • New/renamed example: added to runner/config/frameworks.json (see CONTRIBUTING.md); otherwise it won't appear on demos.handsontable.com
  • New example: added a row to the tables in README.md
  • Ran pnpm build (and pnpm dev) in the affected example/server-example locally

Not applicable: no example is added or renamed.

Related issue(s):

  1. DEV-3099 (this flip), DEV-3094 (preconditions, closed)

Narrows Sentry to errors that escape a handler; handled diagnostics go
only to Grafana/Loki. Rollback is setting both back to full.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@demtario
demtario merged commit f3eeefb into master Oct 13, 2026
9 checks passed
@demtario
demtario deleted the chore/sentry-scope-uncaught branch October 13, 2026 06:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant