Windows Phone Marketplace Woes

I wrote this letter to the director in charge of developer programs at Microsoft:

Hi Brandon, I got your contact information from Loke Uei Tan, who I've worked with extensively in the past. To introduce myself, I'm Koushik Dutta, a former Device MVP (2008-2009). I dropped out of the WinMo scene around 2008 to begin working on Android and iPhone instead. I have started dabbling in Windows Phone again in since its release.
Mobile app development is my passion and now my full time, self-employed, profession; I have several apps on the Android Market with millions of users.

I am very pleased with the platform as a whole; it has exceeded my expectations in terms of ease of development. A solid V1 product all around, and I am looking forward to future releases that will help round out the platform (ringtones, background processes, inter-app communication).

However, I must say, the Market approval process is a blemish on the platform. And it will have a significant impact on how I will design apps in the future.
I released a Google Voice client (GVoice) on the market a few weeks ago. It took 14 days to get it onto the market, due to a variety of reasons and failures.

  • First failure was due to the back button exiting the app when a non full screen popup was shown.
    • It took 4 days to get this response.
  • Second failure was due to a phone in airplane mode crashing when attempting to setup push.
    • Ok, pretty obscure, but good to know.
    • Took around 4 days to get this response.
  • Third failure was due to Push not being allowed to be turned on by default on, without user confirmation. This is really quite strange.
    • For one, the app is useless without push.
    • Secondly, what are the point of the WMAppManifest.xml capabilities/permissions, if not to explicitly tell the user up front that push would be used? That's what Android does.
    • Thirdly, why is the confirmation task offloaded onto the developer? Why not make a dialog pop up at the system level (similar to iPhone) that lets the user confirm the usage of push?
    • It took 4 days to get this response.
  • Fourth submission: Success! App was released.

I am now trying to release a new version; which was submitted a week ago (11 days if you include the test failure). Its status is still "Testing in Progress". In that same 7 day period, a competitor app, has had two releases.

  • What priority are submissions given? First come first serve? Do resubmissions on failed apps get priority?
  • Why reject the app altogether for obscure bugs? Ie, rejecting a submission for an app that requires connectivity and crashes in airplane mode in specific scenarios. Seems it would be wiser to just note that in the application, approve it, and let the developer address it in a future release. Entirely too much churn is happening here.
  • How does a developer make an emergency release?
    • Currently I am parsing HTML and JSON from a third party web page. If that page format changes, the app stops working, period. I would need to update it immediately.
    • Unfortunately, a 7 day turnaround time is glacial by Android standards (where approvals are instant). An app being broken for that long in lieu of waiting for Market approval is unacceptable and will cost a developer in users and reviews.
    • If this is expected to be the norm, I will need to redesign my application by offloading all parsing onto my own server (infrastructure costs money), to gaurantee reliability and quick fixes.

I would love to hear your thoughts on this.


Edit: Regarding approving apps with bugs:

Bugs happen. If the bug is low risk, low occurrence, and generally not an issue during normal user usage: Don’t delay the application release by another 4 days by rejecting the app. Obviously highly visible crash bugs or UX issues should be rejected.


I finally got an update regarding why the GVoice update has not been approved yet:

Hello Koushik,
My apologies for the confusion regarding your app since you resubmitted it. The app should have completed testing by now of course so it most likley has become Stuck in Workflow. This means that something in the testing process stopped and the app will need to be resubmitted for testing. Again, I apologize for this inconvenience but it is the only way to resolve this right now.
Best Regards,
The Windows Phone Marketplace Support Team

TLDR version: Something messed up on our end. My bad. Resubmit and we’ll try again. My response:

Uh... you know you can't submit another version of your app with the same language while a submission is in progress?

The Marketplace Support Team needs to resolve this. I can't do another submission from my end...

Another update from Brandon:

Hello Koushik,
I apologize for the delay in getting back to you but due to the volume of issues we are handling, it will take a day or two for us to get back to you. Also, we do not have a contact number so we cannot assist other than through this medium. Please understand that additional support and answers can be found in the App Hub Forums as well as they are monitored by Microsoft Evangelists, MVPs and Engineers.
Again, I apologize for the trouble you are having submitting the app. The workaround to submit your app is to submit it as a new project instead of an update. You may have to choose a new name for the project in Step 1 to complete this. We are still working with the Certification Team to see if they can remove the app from workflow but o resolution has been provided yet. As soon as I do hear something I will let you know.
Best Regards,
The Windows Phone Marketplace Support Team

I already have people that have purchased the app. How do I give them updates?

Furthermore, if I release another version of the app under a new name, I'll end up having two paid userbases and will need to update TWO apps instead of just one. This is NOT an acceptable workaround.


Hello Koushik,
After working with my support team, we cannot find any app submission after12/7 when GVoice failed testing. Since the site is not allowing you to submit the update, please follow these steps to submit the app and ensure customers receive the update.
Create a new project in the App Certification Dashboard
In Step 1, use a new name for the project
In Step 2, use the actual app's name that it will be published under
Continue through the entire process, including the loading of the XAP file and images to get the app into testing.
This should work but if you run into any errors, please provide screenshots starting from when you log into the site until you reach the error.
Best Regards,
The Windows Phone Marketplace Support Team

Ben, I have submitted GVoice under the name "GVoice." but with the same Application Title. I hope that users of the "GVoice" app which have already paid are able to upgrade to this new version.


At this point, I can’t tell if Brandon is trying to be really nice, or just messing with me. Guess we’ll find out. I’ll give him the benefit of the doubt, since he hasn’t chewed me out for being my usual boorish self. So, let’s hope this all works out!

Update: Microsoft really was not prepared. I am apparently the victim of a major “workflow” bug that needs to be manually resolved:

Ben, I have submitted GVoice under the name "GVoice." but with the same Application Title. I hope that users of the "GVoice" app which have already paid are able to upgrade to this new version.


Hello Koushik,
Thank you for resubmitting the app. I do want to add that when submitting the app for testing, as long as you change the name in Step 1 (it can be any name, or even a variation like GVoice 1, 2, etc), Step 2 can remain GVoice. As long as the components in the XAP are similar, there should be no reason for a new app is created. I am requesting my Certification Team to provide more technical details that will explain this further, and if I get a response I will let you know.
Best Regards,
The Windows Phone Marketplace Support Team

Thanks Ben. The whole submission process is very opaque to a developer. The submission process makes it feel like unless you use the "Add Additional Submission" option in the existing submission, it will create a new instance of an application on the market. This is good to know.


Hello Koushik,
I just exited a conference call with the Certification Team and one of the topics was the issue you are experiencing. In short, the steps I provided, which came from the Certification Team until this meeting, were a workaround. Unfortunately, they do not allow for the app to be updated.
The Certification Team has acknowledged that apps Stuck in Workflow, as yours is, must be manually repaired by their team. I am putting in a request to get GVoice repaired ASAP, though the process is taking several business days for expedited requests and 2 weeks for all others.
What this means is that the newest submission I had you do will not resolve the issue and I must have the Certification Team get your updated app tested and certified. Please allow me to work with them to get this resolved and I apologize for the time this is taking from you. I will provide updates as soon as possible.
Best Regards,
The Windows Phone Marketplace Support Team


Arktronic said...

Hey, don't get Loke Uei in trouble!

On a more serious note, I do agree with most points you made in your letter. I also noted the various Marketplace issues, from the consumer and developer sides, in my blog at .

I must disagree with your disapproval of the app rejection due to crashing in airplane mode. Microsoft has made it very clear that they're monitoring app quality, and unstable apps should not pass certification.


James T said...

Dude - it takes 3-5 weeks to get something out on the iPhone market - my experience with windows phone 7 so far has been 12 hour to 48 hour turn-around for approvals.

Stop whining, or as Woz said 'shut up and code it already'.

Koush said...

LOL 3-5 weeks for iPhone? Have you ever published an app for iPhone, especially recently? iPhone apps are usually approved within 24 hours now. They made dramatic changes to the approval process in August 2009.

I'm coding, but whats the point when I can't release it.

Koush said...

Though approval times have been shit due to the holiday season.

Though I don't think Microsoft can afford to have a approval process for a 4th or 5th place platform, and an empty app store.

Ian said...

Thanks for the update, I've been waiting for this guy to pop up in the market. Glad to see you've been so on top of things (likewise, sucks to see the hold up on MS's end).

Qorbani said...

Hi Koush, Believe me don't rely on Microsoft AT ALL! Specially Ben who you contacted!!! I have an issue in my submission for almost 1 month now and no one even care to answer. They answered you because you were MVP! Ben replied me couple of times and said "I'm sorry" but at end he or anyone else from Microsoft NEVER reply back!

Greg Bray said...

Sorry to hear that you have had issues with the Windows Phone Marketplace. I was concerned about turnaround times for my first app (PhraseMeme Scanner), but luckily it only took a few days: Submitted Friday afternoon and was approved Monday morning and available Monday night.

After submitting I found a few bugs, but luckily none of them caused the program to crash. I think so long as you catch all exceptions bugs will be overlooked and the app will be approved.

I agree that the app hub submission process could be improved, but it was only released a few months ago, so hopefully they will iron out the bugs soon.

Best of luck with the re-submission. Keep up the great work!

Anonymous said...

way takes to long to download a droid x recovery program i buy about 2 hrs ago still wait on it

scottt732 said...

This whole mobile development system is a major step backwards for developers! Sure, we get a centralized distribution, but at the expense of having to maintain separate codebases & sharing profits with Apple, Google, Microsoft, RIM, etc. (you're welcome RIM). There is a reason that client-server applications started moving to the web in the first place!

How do MS, Apple, Google, etc. verify the stability of simple WebView style apps with HTML on a web server somewhere (Bank of America's apps comes to mind). They aren't seeing the code thats running on the web servers... How can they approve apps with issues server-side?

Stop reviewing & approve immediately! The community will judge the quality and the cream will rise to the top.