A Trello feature froze, but engineering didn’t: How we fixed an unreproducible React bug
Jul 29, 2022Maisie Johnson

Summary
This post details the debugging process for an unreproducible React bug affecting Trello's date picker. It describes how the team used customer clues (quick edit menu vs. full card edit, 'Page Unresponsive' dialog, exiting fullscreen) to narrow down the problem to Trello's modern stack Popover component. The key finding was an infinite loop caused by a `resizeHandler` function, which used `MutationObserver` and `getBoundingClientRect` to calculate `maxHeight`. Inconsistent floating-point measurements, simulated by modifying `getBoundingClientRect` to add random noise, were found to trigger the loop. The fix involved a one-line change to prevent the loop.