Bit of a necro post but still relevant. The signature of that response has since changed in terms of additional parameters, data as well as playerLimit (quoting from memory might have variable names incorrect).
What was strange is when I receive the packet back and read, "Sometimes" I get a end of stream exception (reading too far), yet, if I debug the same method and pause just after the first read (id if I recall), it goes through without troubles.
Are there times that less data can be sent, according to the response packet server side, no.
Strange behavior and I'll look into it more later, I'm sure it's specific to my code / something I've done. If someone else has seen similar please post back.