FYI, I experienced this same issue with LINEAR16 PCM data and setting the sampleRate to 16k. I then realized that my actual data was at 44.1k. After resampling, I get a reasonable response, although an error message or even an empty list of responses would be nice in the case that the recognizer didn't properly understand the audio.
The response for my admittedly malformed request was this:
I'm not sure if it's in the docs, but I take this to mean that the absence of results field in the response indicates that the speech api did not recognize the audio.