Learning the Wrong Lessons
Sorry for the rant đ.
So I accidentally shipped a critical bug in Vinegar 2.0.1. How critical? Well, it breaks YouTubeâs mobile website. The entire web page doesnât load if you have Vinegar 2.0.1 installed.
Oh no.
The bug doesnât happen on all devices, which is why I never noticed it. It always worked on my iPhone during testing. Feeling the pressure, I quickly fixed the bug (by running the app through all the Simulators until I could finally reproduce the bug) and submitted an update. Then I waited.
And waited.
And waited.
Meanwhile, users have been contacting me nonstop via both email and Twitter. After I apologized and explained the situation, some of them were understanding, saying, âItâs OK, I will wait. Mistakes happen.â But some never replied.
Itâs been four days now, a lot of users have left 1-star reviews complaining about the app. I donât have the heart to see the number of refunds. The data in App Store Connect are one-day late, so I donât know how many more are coming. Anything that could go wrong went wrong. Murphyâs law is in full force.
(By the way, developerâs responses to a review also take one day to be approved. The minimum 2-day delay makes the App Store review section the worst supporting channel ever.)
Update: After four days, Apple finally approved the update. Here are the lessons I learned from this incident:
- Never submit an update in December. Itâs the holiday season, and nobody is working. Itâs too risky.
- Donât bother requesting an expedited review. The chances of you being granted one are slim. You might as well wait for the regular review.
- Expedited review â short review time. My expedited review was approved after being âin reviewâ for 55 hours.
- Contacting the app review team is like yelling into a black hole.
- Donât be fooled by emails from Apple Support. Those are just auto-generated boilerplate emails to give you false hope.
- Every time you open App Store Connect to check the status, your review time gets delayed by an hour. (Haha.)
- Being an Apple developer is like being religious: the Cupertino Gods never communicate, make arbitrary rules, can punish you at any time, and are never wrong.
The lessons are probably wrong, and I know the correct lessons are: be more careful, do more testing, yadda yadda. But what am I supposed to do if the bug doesnât happen during testing?