So this isn't a solution to the problem, but it's a work around that's working for me:
$failed = false;
do {
try {
$poll_response = $this->ServiceClient->GetService()->PollGenerateReport($request);
$failed = false;
}
catch(\Exception $e) {
$failed = true;
}
} while ($failed);