In the meantime, I have become convinced this is a browser no-data timeout caused by the fact that the browser receives no data from the back-end for longer than 5/10 minutes. So the options are chunked uploads in the front-end, or some heartbeat sent from the back-end periodically.