Our tool transcribes audio in the browser — Whisper running locally via transformers.js, no upload. It worked fine, until analytics showed something too clean to be a coincidence:

.mov uploads on mobile failed 100% of the time. Not 90%. Every single one. Desktop had never reported a single .mov failure.

This is what I found, and how it got fixed without pulling in ffmpeg.wasm or WebCodecs.

The 30-second reproduction

I took one AAC audio track and put it in two containers — same encoder, same bytes for the audio itself, only the wrapper differs: