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

fix(worklets): don't leak controller setter rejections from bindUIUpdatesToController#4182
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.

🤖 Generated with Claude Code

https://claude.ai/code/session_01NuPbnK4pvM4qAtKiTWtrAy

…atesToController

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NuPbnK4pvM4qAtKiTWtrAy
@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.

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