Skip to content

fix(engine): name a failed script's origin and error before its free text - #7256

Merged
miguel-heygen merged 1 commit into
mainfrom
dcloudpro/script-load-cause
Nov 5, 2026
Merged

miguel-heygen merged 1 commit into
mainfrom
dcloudpro/script-load-cause

Conversation

@miguel-heygen

@miguel-heygen miguel-heygen commented Nov 5, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

When a sub-composition script fails to load, the engine knows where it came from and why ([script_load: cdn/net::ERR_NAME_NOT_RESOLVED]), but it put that closed tag at the END of a warning that also carries the failing URLs and the page's error text. The render's error (RenderQualityError) runs each warning through redactTelemetryString, which cuts long strings, so on any real failure the tag is the part that is cut: the CLI's final error box ends in [script_load: remote/net::ERR_…. A host app reading the CLI's error cannot tell a blocked CDN from a missing local file.

Change

The tag now follows the sentence's head, before the free text: A sub-composition timeline script failed to load [script_load: origin/code] (sources). Same words and same content, different order; nothing else reads the old position (the one test that did is updated).

Verified

  • engine frameCapture-scriptLoadCause.test.ts: 8 pass; the changed test fails on main (the tag is not at the head).
  • Real check: a 9:16 project whose head GSAP URL is unreachable renders into this error. A 374-character warning in the old order loses the tag through redactTelemetryString; in the new order the tag survives. (Run against the released 0.9.16 CLI for the old order and core's redaction function for the new.)
  • Formatted with oxfmt; the repo lint hook was not run (no local install).

fails without the fix: names the closed origin and code of each failed script before the free text, so a cut message keeps them

Why it ships alone: it is the one-line move that lets Desktop name why 65 exports failed this week (36 people); nothing else is queued in the engine to carry it, and each release without it keeps those failures unexplained.

@heygengenesis heygengenesis Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: APPROVE · 0 blocker · 0 important · 0 nits · head 1d94fd48

Scope

Read the whole diff. scriptLoadCauseSuffix has only the one caller, so no other message carries the tag at the end. With no causes, the suffix is empty and the message reads failed to load (…). I checked the fails-without-fix line: with main's frameCapture.ts, the named test fails and the other 7 pass. At head, all 8 pass. I also ran a probe through redactTelemetryString: a local and a CDN URL, plus a 300-character page error. On main, the cut ends at …gsap.min.js, runtime-error:… and the tag is gone. At head, [script_load: remote/net::ERR_NAME_NOT_RESOLVED, cdn/http-503] survives, and the path redaction leaves the tag alone. CI was still running when I approved, with no failures so far.

— Genesis V2 reviewer

@github-actions

github-actions Bot commented Nov 5, 2026

Copy link
Copy Markdown
Contributor

Edit accuracy: accurate 267 (base branch 267), smooth 109 of those

The gate passes.
Smoothness is reported in the artifact, not gated. A case fails only if it fails 2 of 3 runs.

Quarantined, measured but not gated (8)

Unstable (2)

  • seqrepeat-none-center-r0-nested-z100: tracking 0.05, pressJump 0, drop 0, reload 0, render 0.02, renderKey -, undo true, teleport true / tracking 0.05, pressJump 0, drop 0, reload 0, render 0.02, renderKey -, undo true, teleport true / tracking 0.05, pressJump 0, drop 0, reload 0, render 0.02, renderKey -, undo true, teleport true
  • seqfastkeys-none-px-r0-root-z100: tracking 0.07, pressJump 0.05, drop 0, reload 0, render 0.02, renderKey -, undo false, teleport true / tracking 0.06, pressJump 0.05, drop 0, reload 0, render 0.02, renderKey -, undo true, teleport true / tracking 0.06, pressJump 0.05, drop 0, reload 0, render 0.02, renderKey -, undo true, teleport true

@miguel-heygen
miguel-heygen added this pull request to the merge queue Nov 5, 2026
Merged via the queue into main with commit 7290ee6 Nov 5, 2026
138 checks passed
@miguel-heygen
miguel-heygen deleted the dcloudpro/script-load-cause branch November 5, 2026 19:12
SanHsien added a commit to SanHsien/hyperframes that referenced this pull request Nov 6, 2026
…view

Adopts heygen-com#7240 (deferred frame extraction leaves the distributed code),
heygen-com#7241 (a capture segment extracts and deletes its own frames), heygen-com#7255
(segmented and sequential capture check drawElement samples), heygen-com#7254
(normalize-audio --reference stops short of the peak ceiling), heygen-com#7256
(engine names a failed script's origin first), heygen-com#7258 (SVG gradient text
judged by its stops) and heygen-com#7242 (windowed source frames, off unless
HF_VIDEO_FRAME_WINDOW=true). Release v0.9.17 is not synced wholesale;
the producer packed budget takes upstream's +12000 from this range.
Watermark advances to 32eb4c3.

Co-authored-by: Vance Ingalls <vance@heygen.com>
Co-authored-by: Miguel Ángel <miguel.sierra@heygen.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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