check --at hangs, then fails with Runtime.callFunctionOn: Target closed on a composition that renders successfully · Issue #5717 · heygen-com/hyperframes · GitHub
Skip to content

check --at hangs, then fails with Runtime.callFunctionOn: Target closed on a composition that renders successfully #5717

Open

Description

@cathrynlavery

Bug description

On HyperFrames 0.8.74, hyperframes check . --at ... --browser-gpu --json hangs for several minutes and then records check_runtime_failure: Protocol error (Runtime.callFunctionOn): Target closed. The same composition renders all 3261 frames successfully at delivery quality with hardware GPU.

Reproduction

  1. Use a 1080x1920, 30 fps, 108.7 second HTML composition containing one video, one audio track, GSAP timeline elements, and local PNG assets.
  2. Run HF_CHECK_MAX_WAIT_MS=90000 hyperframes check . --at 31.90 --browser-gpu --json.
  3. The command stalls beyond the requested max wait and is later killed by the shell timeout. A larger multi-timestamp run wrote the attached failure shape below.
  4. Run hyperframes render . --quality delivery --workers 4 --browser-gpu.
  5. Rendering completes successfully: 3261/3261 frames, artifact validated.

Actual result

{
  "ok": false,
  "runtime": {
    "ok": false,
    "findings": [{
      "code": "check_runtime_failure",
      "message": "Protocol error (Runtime.callFunctionOn): Target closed"
    }]
  },
  "layout": {"ok": true},
  "motion": {"ok": true}
}

The command also warns that two PNG assets (2.2 MB and 5.8 MB) exceed the 2 MB inline limit. That warning may be relevant, but browser rendering still resolves those same local assets correctly.

Expected result

check --at should either complete successfully for the requested timestamps, or fail promptly with a bounded actionable error. HF_CHECK_MAX_WAIT_MS should prevent an unbounded hang.

Environment

  • HyperFrames: 0.8.74 (project-pinned)
  • Node: v22.23.1
  • macOS 27.0, Apple M3 Ultra
  • Browser GPU: ANGLE Metal hardware
  • Render path succeeds with --quality delivery --workers 4 --browser-gpu
  • Lint: 0 errors; warnings only

Activity

  1. Dante-dan commented on Oct 16, 2026

    @Dante-dan
    Contributor

    The report is pinned to 0.8.74. Since then, #5537 added a shared 120-second check deadline after browser readiness, cancellation, and bounded cleanup. Current main is at 0.8.166 and contains that implementation. HF_CHECK_MAX_WAIT_MS is not read by the current CLI; the deadline is fixed at 120 seconds.

    I ran the existing deadline unit suite: all 5 tests passed, including sampling sharing the readiness budget and cleanup when an operation ignores cancellation. I have not run your original composition, so this does not establish whether its timestamp check now succeeds.

    Could you retry with a current HyperFrames version, confirming that the project-local binary is also updated? If it still stalls, the exact new version and whether it returns the check-deadline diagnostic would help distinguish a remaining problem from the older unbounded path.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions