← All posts

Three builds, one of which never existed.

Uploading to TestFlight took three tries in four days, and the second one told me it worked when it hadn't.

Getting build 406 to testers on September 17th took three attempts over four days. Along the way I found several problems that had nothing to do with 406.

The sign-in that expires quietly

Xcode logs in to Apple using a session that expires without telling you. You only learn at the very end of a long upload, after every earlier step printed green. It refused the build twice on the 18th. The upload now uses a key that doesn't expire and needs no password.

The purchase that said nothing

When the server refused a purchase, the app discarded the refusal, closed the sheet, and finished as if it had worked. You paid nothing, got nothing, and saw nothing. That matters most for Apple's own reviewers, because they buy things through a test environment that our server deliberately refuses. They'd have seen the sheet close and decided the app was broken. Every refusal now shows an actual sentence on screen.

The screen with no exit

If you lose every device and need to type your recovery key, that screen had no Cancel, no swipe down, no way to sign out. Force-quitting put you right back on it. Someone who had genuinely lost everything couldn't even delete their account and start over. It now has both Sign Out and Delete Account.

The build that didn't exist

One of the three uploads reported success. App Store Connect had never received it. I only found out because I stopped trusting the tool that said so and checked the other end. Now I treat “upload succeeded” as a claim to verify, not a fact.

Written October 21, 2026 from the build log, and dated to when this happened.

← Newer: Notes and files get a proper home Older: A month without a new build →