Skip to content

[BUG] Critical URL sync and sharing failures with Text Overlays (Data Corruption & btoa Crash) #1468

Description

@divyansha12

Hey @magic-peach
Bug description
The application crashes upon page reload if a text overlay was added because the textOverlays array is incorrectly serialized into the URL as [object Object]. The useEffect that continuously syncs the recipe state to the browser URL iterates through the keys and calls String(currentVal). For the textOverlays array of objects, this pushes ?textOverlays=[object+Object] to the browser URL.

Steps to reproduce
Steps to reproduce the behavior:

  1. Go to the Reframe editor page
  2. Upload video (any format)
  3. Click on the 'Text Overlay' tool and add a new text overlay
  4. Notice the browser URL automatically updates to include &textOverlays=%5Bobject+Object%5D
  5. Refresh the page
  6. See error (the application crashes and becomes unresponsive)

Expected behavior
The application should correctly restore the textOverlays state upon refresh, or it should completely exclude complex objects like textOverlays from the shallow URL auto-sync loop so they aren't corrupted into a string.

Actual behavior
The application reads the string "[object Object]" back into the state, overwriting the array. The app then crashes when attempting to render or export, as it tries to call .map() or .forEach() on a string.

Browser and OS info

  • OS: macOS 14 / Windows 11
  • Browser: Chrome / Firefox / Safari
  • Version: Latest

I am an open-source contributor participating in GSSoC '26 and would love to work on this issue!

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working correctlytype:bugBug fixtype:featureNew feature

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions