Consider an unstable WiFi connection. Let's say the connection vanishes for 30s after one chunk has been uploaded but before the server did respond asking for the next chunk. The client won't know whether the server could process the previous chunk correctly. So the client might send the same chunk again. However, if the server processed sent chunk, it generates a invalid-chunk-offset error
{"servedby":"mw1133","error":{"code":"stashfailed","info":"Invalid chunk offset","*":"See https://commons.wikimedia.org/w/api.php for API usage"}}
That's nice. But it doesn't contain what the server expected. This information would be utterly helpful to clients.