Recently (less than a week ago) Hearthstone stopped working for me. The game would launch, but it was always stuck on the loading screen (the one saying “Hearthstone”).
I’ve tried all the solutions provided by Blizzard’s support I could find online, but none of them worked. I’ve deleted all the Hearthstone and Battle.net-related folders in %LocalAppData%, reinstalled Hearthstone, reinstalled Battle.net app and nothing. I also tried opening ports on my router, but that didn’t work either.
For those looking for solution and not interested in details, feel free to scroll right to the end of this post.
So, I started being really curious about what could have happened. I found information on reddit on how the game logs could be enabled so that I could investigate the issue myself. I ended up with such content of the ‘log.config’ file:
[Zone]
LogLevel=1
FilePrinting=true
ConsolePrinting=true
ScreenPrinting=true
Verbose=True
[Packet]
LogLevel=1
FilePrinting=true
ConsolePrinting=true
ScreenPrinting=true
Verbose=True
[Net]
LogLevel=1
FilePrinting=true
ConsolePrinting=true
ScreenPrinting=true
Verbose=True
[BattleNet]
LogLevel=1
FilePrinting=true
ConsolePrinting=true
ScreenPrinting=true
Verbose=True
After that I launched the game and went to Hearthstone installation directory and found the ‘Logs’ directory. Inside there were several txt files, one of them containing current date and time in its name. So I opened that file, scrolled to the end of it and found an error:
2020-11-16 11:55:32.100: [Jobs] Job (LoginManager.AssetVersionCheckCompleted(ID:240)) FAILED: Exception during (LoginManager.AssetVersionCheckCompleted(ID:240)) Job : System.Net.Sockets.SocketException (0x80004005): Сделана попытка доступа к сокету методом, запрещенным правами доступа.
at System.Net.Sockets.Socket.Bind (System.Net.EndPoint localEP) [0x00043] in <d2957de1c3fd4781a43d89572183136c>:0
at BnetNearbyPlayerMgr.BeginListening () [0x0003e] in <71ea947daeb44143aaf351bb0c67fd35>:0
at BnetNearbyPlayerMgr.UpdateEnabled () [0x00014] in <71ea947daeb44143aaf351bb0c67fd35>:0
at BnetNearbyPlayerMgr.Initialize () [0x00016] in <71ea947daeb44143aaf351bb0c67fd35>:0
at LoginManager.OnAssetsVersionCheckCompleted_OncePerClientSession () [0x0003c] in <71ea947daeb44143aaf351bb0c67fd35>:0
at LoginManager+<Job_AssetsVersionCheckCompleted>d__59.MoveNext () [0x00069] in <71ea947daeb44143aaf351bb0c67fd35>:0
at Hearthstone.Core.Jobs.JobQueue+Job.ProgressJob () [0x00007] in <71ea947daeb44143aaf351bb0c67fd35>:0
I have some programming background, so I could understand a little bit of what’s going on. My first thought was that my firewall or antivirus is blocking Hearthstone from doing what he wants, but disabling them didn’t help, so I started to search for the way to disable the ‘Players nearby’ functionality (which, judging from the error trace was connected to the issue). Googling gave me very nearly zero information. All I found out was that there is an ‘options.txt’ file containing the game settings which is located in %LocalAppData%/Blizzard/Hearthstone directory (Windows). I tried to find some information about the supported settings, but couldn’t find anything except the ones used to increase the FPS. Then I went to github and searched for ‘innkeepersSpecialLastStoredResponse’ which I believed was the most Hearthstone-specific name of the setting. In the code search results there was one interesting file: https://github.com/ChuckHearthstone/SilverFish/blob/fa33f5594b756a97bc730a3401654059418d1273/MonoTest/EnumTest/Option.cs
It looked like it contains the list of supported settings. I searched through that file by keyword ‘nearby’ and found a few occurencies. I started putting these settings to my ‘options.txt’ file, setting their values to ‘0’ and surprisingly one of them worked!
So, the SOLUTION for me was to:
- Open the ‘%LocalAppData%/Blizzard/Hearthstone/options.txt’ file.
- Add a new line ‘nearbyplayers2=False’ to the very end of the file.