XHR uploads are "completing" without actually uploading

When using XHR uploading from Uppy my uploads will finish as “complete”, showing in the uppy.on(“complete”) event listener but when examining the actual upload it shows that 0% of the video file has actually uploaded. There are also no errors or failures showing up in the “upload-error” event listener. The upload finishes very quickly (within a couple seconds) and seems like it’s completely skipping the transcoding process.

This issue only started showing after upgrading to the latest Uppy version and was working exactly as expected before that. The reason I’m confused is because I went through each upgrade version and made sure to update any outdated code for XHR uploading (and there weren’t even too many changes). I should note that I also use AWS S3 uploading and it’s working just as expected.

importing XHR:

            import XHR from '@uppy/xhr-upload'

initializing XHR:

            export const uppy = new Uppy({ debug: false });

XHR config:

            uppy.use(XHR, {
                endpoint: `${global_config.urls.api}api/v1/uploads/xhr`,
                allowedMetaFields: ['key', 'id'],
                fieldName: 'files[]',
                formData: true,
                timeout: 5 * 60 * 1000 // 5 minute timeout
            });

starting the upload:

            await uppy.upload()

Hi, I can’t reproduce this. Perhaps your server is responding with something unexpected?

That’s possible, what is the expected response for XHR uploads? right now I simply return a 204 status code after initializing the XHR upload and storing the relevant information in my database.

new update: triggering the finish upload process in the uppy.on(“complete”) event is working, but uppy.on(“upload-success”) is still never called as would be expected from the docs.

JSON with a url pointing to the uploaded resource.

If you can create a minimal reproducible example of this a GitHub issue would be great.