MUST READ: fixes for infamous deserialization PID errors
After tirelessly scouring the internet for solutions, I have finally managed to cure myself of them. Before I get into how I did it, I want to thank my roommate who works in IT for the coast guard who helped make this solution possible.
Let's go over what we know. The PID errors as we all know are internet related to packet loss. This results in a run-time error due pieces missing or not being able to read. These errors often occur when loading into a character or moving to other areas. This problem occurs most often with people who play wirelessly. "Solutions", I quote the word because they didn't work for me. That doesn't mean they won't work for someone else. Here are the possible solutions I've found from other people: - Packcheck your game - Update your wifi driver - Update your router firmware - Call your ISP and see if they're blocking anything (Almost a waste of time, they rarely block anything) - Port Forward - Reinstall/Redownload game - Run game through VPN - Ditch wireless and go wired This one stuck out the most to me and my friend, and it paved the way for possible solution that worked for me. It started out as me and my roommate dicking around with the router to figure out why we disconnect sometimes. We ended up getting an app on his android that scans the areas around our wifi to see what channels other people with wifi are on. We learned we were on was too cluttered, so we switched to a channel that was pretty much vacant. We loaded up my PoE(He had no PID errors, I'll explain in a moment), and the PID error was a little less prevalent but still encumbering. So that in itself is one possible solution. Now, going back to wired vs wireless. Obviously a wired connection is MUCH faster than a wireless one, so we knew that speed might be playing a bigger factor in this then before and it's a guaranteed solution that works. On our internet we are supposed to get 60mbps. That's a pretty fast speed right? We ran speedtests on his desktop and my laptop from which I play from(we both run wireless); he was getting 54-60mbps down vs my weak 5mbps. We thought "Well that can't be right", and that's when it hit us. His wireless internet speed prevented PID errors. The problem was my DL speed was on the low side, and I think this is where a lot other peoples problems come from as well if they're on a router. Also if you have an oldish network adapter The solution was this: we made my laptop have high priority connection on the router. This didn't slow the other people on the network down, it just gave preference to my laptop for speed. I went from 5mbps to 40mbps. I ran PoE.... and so far so good! Not a single PID error, for now ^^. So, in short Change the priority of your wireless device to high. It worked for me, and I think it might work for others. Updates * Just wanted to say be careful when switching channels. Some channels on your router are better then others For example, Channel 4 and 11 are great but are often cluttered with other signals which can cause dropouts. Channels 1 and 3 are empty from signal interference most of the time, but for some reason cause bouts of high ping until switched to 4 or 11. This is sometimes cause by other wireless devices creating interference. Last edited by Treemoss on Oct 26, 2013, 3:57:49 PM
| |
awesome work.. and completely makes sense when put together with all we know about the problem and the "solutions".
thank you for the work and research. hopefully it can help others. | |
Thanks. Bumping this up.
| |
Already bookmarked it so i can readily link to other pid error threads that pop up.
Ancestral Bond. It's a thing that does stuff. -Vipermagi
He who controls the pants controls the galaxy. - Rick & Morty S3E1 |
|
" Awesome thanks! | |
Just a quick update.
I still get PID errors, but not so much that the game is unplayable. So this isn't a 100% fix. GGG is going to have to do something on their end the way the send information to clients, because this is the only game I've ever seen that has these errors. | |
Bumping this until someone from GGG sees it.
| |
" Good work however I have a different hypothesis. I'll give two explanations for the different audiences: Simple The game expects particular behavior from the OS which is occasionally wrong and manifests as the problem at hand ("failed to deserialize"). PoE communicates with the server using messages which are of arbitrary size. When receiving a message from the server the game assumes a whole message will be available, however this is not guaranteed and thus when only a partial message is received the error in question results ("deserialization" is synonymous with "decoding" -- the error message could be read as "the message received could not be decoded [because there was not enough data available]") The probability of a partial message being received is proportional to the size of the message and the quantity of messages over a short period of time -- this is why the error is most likely to occur when entering a new area or coming into range of a large group of mobile objects. A few other factors are: - High bandwidth usage: The greater the bandwidth usage, the less likely whole messages will "get through" and and the higher the jitter (due to queueing delays) which results in "gaps" in messages. - Packet loss: Although not a direct effect (PoE is not aware of packet loss occuring) it will have the indirect effect of increasing the likelihood of a partial message due to the time required to transmit the message parts. - Most NIC performance options: I wont explain this one as it'll complicate things. - Running PoE under a VM or any other non-native environment: Since much of the problem is about timing, VMs introduce a whole new layer of complexity (especially when it comes to time-sensitive operations) Technical The problem is that the game does not handle the exceptional case where-in a message isn't buffered in it's entirety. Thus, it's the [sadly] common scenario of programmers assuming their arbitrary application layer message boundaries are going to be respected and/or erroneous assumptions regarding the behavior of stream-based socket interfaces (where ofcourse there are no guarantees regarding the amount of data rx/tx'd) -- In conclusion this is an oversight made by the developers and is not an issue with your network or anything else. However, it's also a mistake made by many developers (e.g, Diablo II had the same fault in 1.07, as did Age of Empires II and probably many others I'm not aware of) therefor it would be in poor taste to single GGG out. "The problem is there ARE secure netcodes" -- Pewzor Last edited by Emjayen on Oct 28, 2013, 3:32:56 AM
| |
I had the same PID Errors. I was using Windows Firewall, and I had to go in, and change Path of Exile to Allowed for both Public and Private Networks. By default it is only allowed for public networks, and my home network is private. I haven't had any problems since I changed It. If you want to try you can follow these steps(this is on Windows 7):
1. Go to Control Panel, then System and Security, then go to Windows Firewall. 2. On the left hand side there will be an option labeled "Allow a program or feature through Windows Firewall" 3. After clicking on it a list of programs will come up. There should be two check boxes by each program, one labeled Public, and the other labeled Home/Work(Private). 4. Scroll down the list until you find Path of Exile, and check to make sure that both boxes are checked. 5. If the private box is not checked click the Change Settings button, and then check the box. So if the solution in the original post here didn't work(didn't work in my case) and your using windows firewall, then give this a try. Hope it helps. | |
I have been playing this game on wired connection since open beta started and never before had any issues, now after todays patch it started occuring. I have reinstalled the game and updated all my drivers, still no fix
|