Skip to content

issues installing on openclaw due to HeadlessExperimental.beginFrame #294

Closed

Description

@niyogi

Describe the bug

hyperframes installs successfully on openclaw but fails during rendering:

✗ Render failed
Protocol error (HeadlessExperimental.beginFrame):
'HeadlessExperimental.beginFrame' wasn't found

openclaw "healed" itself by discovering: PRODUCER_FORCE_SCREENSHOT=true

but seems like something that should be auto-detected/handled by the package? For context, this is what the openclaw instance reported:

...the code already has a built-in escape hatch: PRODUCER_FORCE_SCREENSHOT=true forces screenshot mode and bypasses the broken HeadlessExperimental.beginFrame path. Let me verify and create a patched wrapper.


Now I understand the full picture. Let me test that PRODUCER_FORCE_SCREENSHOT=true forces screenshot mode:


Confirmed — Chromium 147 doesn't support HeadlessExperimental.beginFrame. The fix is to force screenshot mode. I can do this cleanly with an env var, but the proper patch is to change the default so it auto-detects correctly.


It works with PRODUCER_FORCE_SCREENSHOT=true. Now let me make that the permanent default for this server.


Now I need to make forceScreenshot: true the default for this server. Let me find where the config is stored:


PRODUCER_FORCE_SCREENSHOT=true works. Now I'll make it the permanent default so every render uses screenshot mode:


Clean render with screenshot capture. Let me add a note to the skill so this server-specific override is documented for future sessions:


Now let me add a note to the hyperframes skill:


Now update the CLI skill to document the screenshot-mode note:


All good. Here's what was done:

Installation

• npx skills add heygen-com/hyperframes pulled all 5 hyperframes skills into ~/.openclaw/workspace/.agents/skills/
• npm install -g hyperframes installed the CLI globally (needed for the hyperframes binary and bundled engine code)

Patch applied
The capture engine defaults to forceScreenshot: false, which on Linux ARM64 with a system Chromium tries to use HeadlessExperimental.beginFrame — a protocol removed in Chromium 147. One line in the bundled engine was patched:
// BEFORE (in DEFAULT_CONFIG2):
forceScreenshot: envBool("PRODUCER_FORCE_SCREENSHOT", false),

// AFTER:
forceScreenshot: envBool("PRODUCER_FORCE_SCREENSHOT", true),
This makes screenshot capture the default on this machine. The PRODUCER_FORCE_SCREENSHOT env var still works as an override if needed....

Link to reproduction

n/a

Steps to reproduce

run on openclaw and attempt a render

Expected behavior

render successfully

Actual behavior

fails on render

Environment

n/a

Additional context

No response

Activity

  1. added 4 commits that reference this issue on Apr 16, 2026
    46cf81a
    4dca292
    7c0d1ae
    5e52e27
  2. miguel-heygen commented on Apr 16, 2026

    @miguel-heygen
    Collaborator

    Solved! Thanks for the feedback @niyogi!

  3. jrusso1020 commented on Apr 16, 2026

    @jrusso1020
    Collaborator

    Have your openClaw run npx hyperframes upgrade -y to upgrade to the latest version @niyogi

    Thanks for the first issue!

  4. added 3 commits that reference this issue on Jul 1, 2026
    07901ce
    a454360
    14eb892
  5. added 2 commits that reference this issue on Aug 6, 2026
    29dc9d4
    82f5ba5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions