How to fix: Diablo 3 “Blizzard Update Agent has stopped working”

I finally succumbed and bought a copy of Diablo 3 today, only to found out that it just doesn’t work:

Argh! No matter what I did, it would always crash. Every single time, over and over and over and over again.

In a last act of desperation before borrowing the DVD from a friend to try and load it that way, I had some Raymond Chen style psychic insight and thought it might be a multithreading bug. You see, I just put together a brand new Dual Xeon E5-2687W system. It is a beast: dual processor, 8 cores each, with HyperThreading. That means Task Manager shows 32 tiny little performance graphs. It makes compiling Paint.NET really fast (lots of C++/CLI these days), and is killer for working on all that multithreaded rendering code.

Anyway, the fix is a bit clumsy but it seems to work (so far! we’ll see if it still works after all the downloading is done):

  1. Download the “Diablo-III-Setup-enUS.exe” as usual, from Blizzard’s website.
  2. Run it, as usual (double click on it).
  3. When you get the UAC prompt, do NOT click Yes (yet).
  4. Instead, open up Task Manager and find the program in the “Processes” tab (Diablo-whatever.exe)
  5. Right click on it and then click on the “Set Affinity…” command.
  6. Make sure only 1 of the CPU’s checkboxes is enabled. If you’re on Windows 7, just click the “<All Processors>” node to uncheck everything, and then click on “CPU 0” to enable it. This will lock the program to just 1 CPU core/thread, minimizing the risk of the hypothesized multithreading bug.
  7. Now you can click on Yes in the UAC prompt… and tada, it should work.

I found some battle.net forum threads where tons of people are having this issue, and it goes on and on for pages and pages without any fix for the poor souls (so to speak).

Once it starts downloading you’ll probably want to do the same thing for “Blizzard Launcher.exe” except that this time you’ll 1) have to click the “Show processes from all users” button (bottom of Task Manager in the Processes tab), and then 2) enable all CPUs instead of having any of them disabled.

Hope this helps anyone else who’s having this frustrating problem.

Update: Once Diablo 3 finished downloading, it still would not start after clicking the Play button. “Diablo III.exe” would pop up in Task Manager, and then silently disappear a few seconds later. According to the Windows Event Viewer, it was crashing. However, I did get it to work, and the trick is to “Set Affinity” on explorer.exe and give it something like 4 of the CPU cores. Since processor affinity is inherited, running Diablo 3 from within Windows Explorer (aka your desktop) now works. Hey Blizzard! Try testing on something more than a dual core Pentium D!

Advertisements

14 thoughts on “How to fix: Diablo 3 “Blizzard Update Agent has stopped working”

  1. John Dangerbrooks says:

    Reblogged this on Confidential Files! and commented:
    In a rather interesting blog post today, Rick Brewster (the developer of Paint.NET) sheds light on an interesting bug in Diablo III. Apparently, Blizzard Update Agent does not support multiprocessor systems.

  2. AASoft says:

    A better solution would be to find a program that remembers cpu affinity for processes and can set it on launch. That way, all of your other, more thread-hungry, apps can enjoy the 32 cores, while Diablo gets by with just a few.
    One name that I can remember is “CPU Control”, or something similar, but there are a bunch floating around the intertubes.

    • Rick Brewster says:

      I don’t know if I’d call that a “better” solution, just a different one. Installing more stuff and complexity isn’t always needed or desirable. But yes that’s another good way to go about it.

      • John Dangerbrooks says:

        True. I think the divine solution would have been the developers attending to this problem quickly. But I guess a PowerShell script that automate the process would be a great compromise.

        • Rick Brewster says:

          I ended up writing a little utility that I tossed into Startup to do this for me. I added Diablo 3 to Steam, and now at startup I force Steam to use every other logical processor with the utility. This also fixes a few other games such as Deus Ex: Human Revolution.

    • Rick Brewster says:

      Oh, right. If you have UAC at the default settings, it’ll block you from clicking on anything else. The 2nd trick I mention of setting explorer.exe’s affinity should work then.

  3. Adam Zey (@guspaz) says:

    I (and I assume millions of other people) have not had any problems on quad-core hyperthreaded systems with eight logical threads. I don’t see why it would make a difference of you have eight or thirty two, but there’s probably something more going on here.

    • Rick Brewster says:

      I did some experimenting and it seems to hit once the # of available logical processors hits 17. If it’s 16 or less, no matter how you spread them around the two physical processor sockets, it’s fine.

      Hacking the thread affinity to <=16 processors also fixes the same problem I was having with Deus Ex: Human Revolution and The Witcher 2. I'd see their EXE in Task Manager, it would burn CPU for a few seconds, and then vanish.

  4. Saif says:

    Why you guys not releasing Paint.net 4 Beat.
    i usually visit 4time a month

    I am great fan of Paint.net

    its really extra ordinary application

    • Rick Brewster says:

      Because it’s not ready yet. I’m making some big bets on a new rendering and a completely new way to write code for the tools in order to enable fine-grained history. I think you’ll even like what happens to the Paint Bucket tool. But these things take a lot of time when there’s only 1 main developer.

Comments are closed.