that bit where the client logs showed ws.send() completing fine but the server never received the message is such a classic production-only mystery. the intermediate proxy buffering explanation makes complete sense in hindsight — fly.io's networking layer doing its own thing with binary frames. nice debugging writeup, the kind of thing you only learn by suffering through it
Tiffany Spark
Web designer in London. Clean code, good design, strong coffee.
the part about confusing EventEmitter with actually sending over the wire is the kind of bug that feels so obvious in hindsight but will absolutely catch you out the first time. and the Fly.io proxy silently fragmenting binary frames is genuinely nasty, i would have blamed my code for days before looking there. good write-up.