justin․searls․co

The First Annual Buggy Awards!

Welcome to the 2023 Buggies! The inaugural award ceremony in which I celebrate the most frustrating, hard-to-reproduce, and least-discussed software bug of the year.

Buggy Trophy of a Golden Ladybug

This year's award recipient for Neatest Bug of the Year has been striving for literal years to climb atop the pile of apps that freeze on first launch after install, error pages that themselves trigger additional errors, and save buttons that do nothing until you clear your cookies. But as we say goodbye to 2023, this bug found a way to emerge on top of a more-crowded-than-ever field of hopelessly broken software.

So, without further ado, the Neatest Bug of The year is…

🏆 AirPods incorrectly switching audio from Apple Watch to iPhone 🏆

AirPods, especially earlier models, are notorious for switching playback to the wrong device at the wrong time and for the wrong reasons. Early models were so unreliable that a lot of people turned off the auto-switch setting altogether, resigning themselves to a life of forever selecting their AirPods from the little AirPlay icon dingus or else buying a separate pair for each device. Weirdly, this bug is not that bug and cannot be solved with those workarounds.

Instead, this bug is Apple Watch-specific. Because AirPods have a special relationship with Apple Watch (as cousins of a sort, both being subordinates to the same paired iPhone), there exists no configuration to reliably control when AirPods audio will switch playback between Apple Watch and that paired iPhone.

Let me set the table a bit by way of a few caveats. I try to live an Apple Watch-first lifestyle so I keep my iPhone on the charger near our home's entrance, and I realize that makes me an extreme outlier compared to most users who don't even realize that Apple Watch can actually play audio separately from iPhone. I also live in a mostly-concrete house that (thanks to California's housing crisis) is probably twice as large as the homes of whichever Apple engineers work on this stuff, so I wouldn't blame them if they've never considered what to do when a Watch goes in and out of Bluetooth range with its paired iPhone dozens of times a day. I also spend a significant chunk of my existence getting in and out of swimming pools as I travel between 100% humidity locales, and appreciate the miracle of science that allows those teeny AirPod radios to penetrate the thicket of moisture enveloping me.

Below is an incomplete list of buggy behaviors I encounter when listening to Music and Podcasts on my Apple Watch Ultra 2 with AirPods Pro (2nd generation, USB-C) on a daily basis (before you e-mail me, yes, I have the Connect to This iPhone > When Last Connected to This iPhone setting selected to disable auto-switching between devices; it has no effect):

  1. From Apple Watch, opening Control Center > AirDrop and selecting my AirPods displays an indeterminate progress spinner for so long that Apple Watch's display goes to sleep, effectively cancelling the connection attempt
  2. When switching audio playback to Apple Watch in watchOS 10 (via … > AirPlay > Control Other Speakers & TVs > Apple Watch) and then selecting media, it plays from iPhone anyway
  3. After experiencing #2, repeating the steps to switch playback to Apple Watch results in the media briefly appearing to open before dismissing itself and returning to the list view. Continuing to select the media results in the same open-and-dismiss animation until Apple Watch is restarted
  4. When playing Music or Podcasts via Apple Watch to my AirPods from outside iPhone's Bluetooth range, playback will suddenly and mysteriously pause whenever I enter Bluetooth range of iPhone
  5. When #4 occurs—pausing playback—if I unpause by clicking an AirPod's stem, playback will transfer to iPhone (resuming whatever the most recently played media on iPhone was)
  6. When #4 occurs, if I unpause by tapping on Apple Watch's screen, playback will resume correctly but is liable to pause itself again any number of times so long as I continue to linger on the edge of Apple Watch's ethereal tether to its paired iPhone
  7. If audio is playing from Apple Watch and iPhone is at least 10 feet away, when I pause playback by clicking an Airpod's stem and wait more than 2 seconds before unpausing, then playback will switch to iPhone (resuming whatever iPhone was most recently playing)
  8. When either #4 or #7 occurs, if it happens that the most-recently-played media on iPhone is the same podcast episode I'm currently listening to on Apple Watch, then the iPhone will start playback at whatever timestamp its playhead was at when I last listened from iPhone. Because Podcasts syncs the playhead position to iCloud whenever playback is started and stopped, iPhone's outdated playhead position will be uploaded to iCloud as the current timestamp. As a result, even after I manually switch playback back to Apple Watch, that outdated playhead position will download from iCloud, overwriting the correct position—effectively rewinding the podcast to wherever it was when I last intentionally listened on iPhone. There is no way to restore Apple Watch's (correct) playhead position when this happens, so I'm stuck either mashing the 30-second fast forward icon or guessing how many minutes to ask Siri to jump ahead
  9. Not a bug, but can we all agree #8 is so ridiculous I'm justified in my anger that I just realized I've developed the habit of eyeballing Apple Watch's circular playback progress indicator and taking mental note of its position before resuming audio playback… just in case #8 occurs and I need to fast forward to that point in the circle to recover my playback position?
  10. Some Podcast episodes just never show up on Apple Watch. Even if I'm subscribed to that podcast. Even if I've taken the extra defensive measure of Library > Shows > … > Automatically Download. Because there's no sync button to force Apple Watch to query Apple's podcast directory, the only solution is to restart Apple Watch
  11. After Apple Watch restarts, immediately opening the Podcasts app will display "Updating Library…" with an indeterminate progress spinner that can take anywhere from 30 seconds to 5 minutes before it displays the app's UI and accepts any input from the user
  12. When restarting Apple Watch in order to resolve #10 and after waiting on #11, the most recent episode of the show I want to listen to often still doesn't show up (even though it does appear on iPhone). When this happens, I either run with my iPhone 15 Pro Max as a kind of overpriced dumbbell or give up and find something else to listen to
  13. Just a note that I'm somehow at #13 already and I haven't even broached the subject of streaming Music and Podcasts on Apple Watch over LTE yet
  14. When streaming a podcast over LTE, playback will often pause as if hitting the end of its buffer but failing to download the next chunk of audio. If you wait for the audio to download, the audio will actually never resume on its own. Additionally, rather than manually triggering a network request, subsequent taps of the play/pause button do nothing at all once the connection has stalled in this way. The only thing that works? Rewind 15 seconds and play the buffered content again—then and only then will the next audio chunk start downloading
  15. I realize I've completely lost the thread in that this bug is supposed to be about playback transferring to iPhone and that every item after #9 should have been presented as their own additional Buggy awards, so I'll quit after this one: I literally purchased Apple Watch Ultra because it supported international cellular data roaming. After 6 weeks of attempts in over 20 cities and after 3 not-from-backup watchOS restores, I was never not once able to get my Apple Watch Ultra to stream a podcast over LTE in Japan

So, with that, congratulations! I realize this was a team effort: it couldn't have happened without a combination of iPhone, Apple Watch, and AirPods. This year's winner wasn't content being a constant thorn in my side for years, it went above-and-beyond by becoming markedly more annoying with this year's crop of software updates: iOS 17, watchOS 10, and, uhh, firmware 6B34. I can think of no bug more deserving for our first annual Buggy award. You earned it. 🐞


Got a taste for fresh, hot takes?

Then you're in luck, because you can subscribe to this site via RSS or Mastodon! And if that ain't enough, then sign up for my newsletter and I'll send you a usually-pretty-good essay once a month. I also have a solo podcast, because of course I do.