Make sure not to use a negative payload length.
Mark request handle and response completed even if an error ocurred.

Add extra logging and a few notes.