Tuesday, January 8, 2013

Just take my monies! How to fix "Something happened and your purchase can't be completed" In Windows 8

I'm trying to buy an app in the Windows store on Windows 8 and I'm greeted with this message:

Amazing. It's like a riddle. Here's how to fix it:
  1. In the Metro(oops!) interface, open up the charms bar and select "Settings->Change PC Settings"
  2. Select "Users"; your account should be referenced on the right pane. 
  3. (Variable) Most folks will need to click "Switch to a local account", but if you, like me, are on a domain account that is linked to your MSFT ID, you will need to click "Disconnect from your Microsoft account". 
  4. Log out, then back on. 
  5. Buy something from the Windows Store. You should be prompted for your ID and it *should* (see below if not) work. 
  6. You can now re-link your account by navigating to "Settings->Change PC Settings->Users" and linking your account under your username on the top right plane.  You'll be prompted for your e-mail, password, and which settings you would like to sync during the process.
However

If this didn't work for you like it didn't for me (why'd I write it then!?!) you may need to look deeper. In my case it turned out being the fault of a toxic combination of Displaylink software and Nvidia drivers. While the Displaylink folks noted fixes in their latest driver release I wonder if it didn't also have something to do with the fact that the NV drivers aren't all signed properly. To help determine your problem, try the following: 
  1. Re-create the issue by trying to purchase your app again. 
  2. Bring up the charms bar and hit the "Start" charm to bring up the Met..Modern UI interface.
  3. Start typing "reliability" and click "Settings" then select "View reliability history". 
  4. Look for a report from the time frame in which you re-created the problem. In my case, I had issues from "Credential Manager UI Host" and "CredentialUIBroker.exe"
  5. "Right click crash report->View Technical Details". 
  6. Look for "Faulting module path". In my case it was nvwgf2umx.dll, provided by nVidia. Taking a look at that DLL, I noted it wasn't signed correctly. 


This (and procmon, but that's an article for a different day) is what led me down the track of investigating the graphics drivers. Odd when graphics drivers can be the cause of your inability to buy something from the Windows store. Hopefully in the future MSFT builds a DRM/ID testing path tool that can be used to improve this troubleshooting routine. 

Postscript: While the fix in my case was more on the Displaylink software side, I found it interesting that the newest nVidia drivers still aren't signed right. The signing cert traces back up through the "Microsoft Digital Media Authority 2005" CA which hasn't been valid for quite some time. Two driver revs ago, however, the signing was done correctly. Someone's dev box @ NV needs attention. :) Update 4/21/2014: NVidia contacted me regarding this issue we determined that the "Microsoft Digital Media Authority 2005" certificate is actually "baked into" Vista and higher operating systems. This seems a relatively well hidden fact, but it was revealed in this paper by Symantec. Interesting to say the least... anyhow their cert still has a potential revocation issue and they are working to resolve it.

If this still doesn't work, take a look @ the Windows store logs @ %USERPROFILE%\AppData\Local\Temp\winstore.log and %windir%\temp\winstore.log . Good luck!

2 comments:

Unknown said...

My winstore.log contains this, which seems relevant, any ideas how I could go about fixing it?

Toby Meyer said...

Hmmm, I haven't seen that error code in the Windows store before, but I have seen it on a few servers on 2008r2 @ a recent client when updating. Sometimes that error can be solved by running sfc /scannow from an elevated command prompt. (Type cmd.exe from the start screen->right click->Run as Administrator) If those don't work, it may be worth investigating this link, but be careful because depending on how one does a repair installation it can be destructive of some settings, etc. Good luck!