Unity doesn't load even after upgrade: Unity threads stuck waiting when opening or creating any project

Whenever I try to load or create a project in Unity (a.k.a. open anything but the project select screen), it gets stuck waiting for an event that never comes. Using ProcessHacker, I inspected the running process, and what always happens is that a few, specific threads get stuck in Wait for things that never come. These three threads are the only ones using the CPU, two of them are set at “Highest” priority, and one is set to 13. All three of them also have a starting address of Unity.exe+0x1acf560. The one that I most suspect to be the issue is a thread that gets stuck waiting for an event within the body of ntoskrnl.exe!KiDeliverApc+0x134, with the last function from Unity.exe being Unity.exe+0x22216e5, which makes a syscall to KernelBase.dll!WaitForSingleObjectEx+0x8f. These addresses never change for me. This thread is also specifically stuck in the “Wait:UserRequest” state specifically, and has the highest CPU usage of the three problem threads.

The odd thing here is the event that this thread is waiting for. ProcessHacker has the ability to set, reset, and pulse an event if you have the handle for it. Furthermore, for most threads waiting, it can tell you what handle that thread is waiting for. Using this, I managed to find the event it was waiting for. Now, I know for a fact that ProcessHacker CAN set values for these events. I have successfully seen several events become reported as “true” after telling them to set, and managed to cancel a timer within the program.

The odd thing with this problem thread is that, no matter how much I try, I CANNOT set the event this thread is waiting on. Every attempt just silently fails for no apparent reason, so the thread waits forever as the Event it waits on refuses to change state. I have no idea whether this is a bug in Unity or something to do with my system, but it’s been like this across two versions now. It used to work, too. Even if you cannot resolve or replicate this issue for me, I’d at least like some guidance on what to do. Like I said, I have upgraded this thing from a non-working 5.5 to a still-non-working 5.6. I have no clue WHAT could cause this, but at this point I feel like I need to see this through to the end and figure out what the heck is going on here. Any and all help would be appreciated. It’s pretty consistent about the point of failure no matter what, so I can probably get any extra data you’d need with little trouble.

So, anyone willing to follow me down the rabbit hole?

So, I wound up answering my own question. Firing up procmon, I found that the editor had placed a log file in appdata/local. Opened it, and it mentioned a download task failing. Turns out that my firewall was blocking Unity, even though I had all outbound connections allowed. Whitelisted Unity and the problem was fixed at last.

Though, something like this should NOT silently fail the way it did.