Splitting this from bug 36587 comment 64, bug 36587 comment 72
Steps to reproduce:
*Probably want to try this on test2.wikipedia.org. The upload pipeline on a local install (without swift, with different job queue set up) is rather different.
*Get a big file. Say about 400 MB. For example the latest version of [[commons:File:Konkani_Viswakosh_Vol2.pdf]].
*Upload it using chunked uploading. Using something like [[commons:User:Rillke/bigChunkedUpload.js]] can be more convenient than upload wizard.
*Upload using chunked api, making sure async option is specified
*Eventually progress will halt at the queuing stage
*File is listed at Special:UploadStash assembled, despite returning the wrong status to the upload script. You can use API to verify it is assembled properly by fetching either the file size, or the sha1 sum. I made a hacky script to do this - [[commons:User:Bawolff/stash.js]]
*Sending the publish api command works to publish file despite the API claiming not to be ready for that step.
I expect this has to do with storing info in _SESSION, and especially editing _SESSION from a cli script, is unreliable.