There's some hints in the InputStream docs that skip may skip <n bytes. Codepaths only seem to do this if read() returns -1, meaning end of stream is reached.
If that happens when doing a forward seek via skip, then we have got our numbers wrong and are in trouble. Look for a negative response, log @ ERROR and revert to a close/reopen seek to an absolute position.
I have no evidence of this acutally occurring