Skip to content

fix(runner): stop filing the mount's transport failure as a Tier-1 compile error (DEV-3370) - #425

Merged
demtario merged 3 commits into
masterfrom
fix/tier1-mount-transport-failure
Oct 12, 2026
Merged

demtario merged 3 commits into
masterfrom
fix/tier1-mount-transport-failure

Conversation

@demtario

@demtario demtario commented Oct 12, 2026 •

Copy link
Copy Markdown
Member

Context

Sentry DEMOS-15 ("Tier1CompileError: Tier-1 compile failed") has collected the mount path rejecting with the browser's own TypeError: Failed to fetch (latest event: compileDiagnostic: "Failed to fetch", cause chain TypeError, reported from the mount .catch in App.tsx). That means the Sandpack bundler could not be reached on the visitor's network, which says nothing about their source, and sandpack.bundler_unreachable already counts it. tier1Report now takes an opaqueNetworkFailure fact (from the existing isOpaqueNetworkFailure) and stands down for it on the compile branch. Real compile diagnostics (SandpackCompileError), the compiler-asset branch and its own offline gate are untouched. Older events in the issue are keystroke diagnostics and stay as they are.

Types of changes

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

How was this verified?

Added five cases to runner/pipeline/tier1-report.test.mjs, including two that feed a real TypeError("Failed to fetch") and a real compile error through isOpaqueNetworkFailure into tier1Report. The transport-failure cases fail against the old tier1Report.ts (2 fail, 16 pass) and pass after. node --experimental-strip-types --test pipeline/tier1-report.test.mjs pipeline/fetch-failure.test.mjs is 29 pass, 0 fail. The authoring tsc --noEmit is clean (after building @handsontable/demo-runtime). Not covered: the App.tsx call site itself cannot be imported by node --test, and e2e was not run.

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 added or changed, runner-only.

Related issue(s):

  1. DEV-3370 (Sentry DEMOS-15)

Note

Low Risk
Runner-only Sentry grouping change with no auth or data impact; misclassification would only affect which errors reach Sentry, and tests lock the new branch order.

Overview
Stops Tier-1 Sandpack mount failures that are plain browser transport errors (e.g. TypeError: Failed to fetch) from being filed as Tier-1 compile Sentry issues (DEMOS-15 / DEV-3370).

reportRuntimeError in App.tsx now passes opaqueNetworkFailure: isOpaqueNetworkFailure(e) into tier1Report. tier1Report adds that fact and stands down on the compile-reporting path when it is true—after the compiler-asset and evaluation-error branches, and before the monitorDemos gate—because those events are not visitor source diagnostics and are already covered by sandpack.bundler_unreachable. Compiler-asset reporting and real SandpackCompileError paths are unchanged.

Unit tests in tier1-report.test.mjs cover the flag, integration with isOpaqueNetworkFailure, and that compiler-asset reporting is not suppressed by the transport stand-down.

Reviewed by Cursor Bugbot for commit ba1b44c. Bugbot is set up for automated code reviews on this repo. Configure here.

demtario and others added 3 commits October 12, 2026 09:17
…mpile error (DEV-3370)

A mount that rejects with the browser's opaque TypeError: Failed to fetch means the bundler never loaded on the visitor's network. It says nothing about their source and sandpack.bundler_unreachable already counts it.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@demtario demtario self-assigned this Oct 12, 2026
@demtario
demtario merged commit a89e0ba into master Oct 12, 2026
8 checks passed
@demtario
demtario deleted the fix/tier1-mount-transport-failure branch October 12, 2026 08:18
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