Skip to content

fix(worklets): don't leak controller setter rejections from bindUIUpdatesToController - #4182

Open
jslok wants to merge 1 commit into
margelo:mainfrom
jslok:fix/worklets-controller-setter-rejections
Open

jslok wants to merge 1 commit into
margelo:mainfrom
jslok:fix/worklets-controller-setter-rejections

Conversation

@jslok

@jslok jslok commented Sep 6, 2026 •

Copy link
Copy Markdown
Contributor

The controller setters bound here (setZoom, setExposureBias, …) return Promises and nothing on the UI runtime handles a rejection. CameraX cancels the previous setZoomRatio future whenever a new one arrives, so an animated zoom driven by a shared value (withDecay/withSpring) produces a burst of OperationCanceledException rejections, and a value applied while the session is re-configuring rejects with "Camera is not active". They surface as unhandled promise rejections on the UI runtime, and the onError routing from #4101 can't reach this path. This attaches a no-op catch, duck-typed so a void-returning setter keeps working. Follow-up to #3907, which was reported as still reproducing on 5.2.2.

@vercel

vercel Bot commented Sep 6, 2026

Copy link
Copy Markdown

@jslok is attempting to deploy a commit to the Margelo Team on Vercel.

A member of the Team first needs to authorize it.

@jslok
jslok force-pushed the fix/worklets-controller-setter-rejections branch from 5df96cc to ecc7fac Compare September 14, 2026 05:50

This branch has not been deployed

No deployments
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