Zhenyi Tan And a Dinosaur

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.

Side Note: 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:

  1. Never submit an update in December. It’s the holiday season, and nobody is working. It’s too risky.
  2. 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.
  3. Expedited review ≠ short review time. My expedited review was approved after being “in review” for 55 hours.
  4. Contacting the app review team is like yelling into a black hole.
  5. Don’t be fooled by emails from Apple Support. Those are just auto-generated boilerplate emails to give you false hope.
  6. Every time you open App Store Connect to check the status, your review time gets delayed by an hour. (Haha.)
  7. 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?