How can I get external upload error reason?

I’m currently working on implementing S3 external upload functionality for my project, following this guide. I want that any client-side error messages are properly handled and sent back to the server for further processing.

Reading the source code, I discovered that the UploadEntity error function takes in input the error reason. However, I’m unable to retrieve these error messages on the server side.

Upon inspecting the Upload module code, it appears that the reason for the error is simply discarded. Can anyone confirm if this is indeed the case? I’m looking for help on how to get these error messages on the server side.

Any insights or suggestions would be greatly appreciated!

Just answering since you’ve gotten no bites yet.

Due to the fact that there is a default error message of “failed” on the client side, my guess is that that reason is always pretty generic. We’re chunking up to an S3 bucket so the only possibility for every day failure is a network error. We won’t be running out of space! Other possibilities like “account past due,” “missing API keys,” “bucket doesn’t exist,” etc are all things that you likely have ways of knowing immediately without having to wait for an upload to fail. Otherwise validations for things like file type and size are up to your own code before initiating the upload, so of course you have those errors.

This is just a hypothesis, though, as I’ve never looked into this myself—and maybe I’m missing something obvious? If you’re curious and are able to simulate an error, I would just hop into your deps directory and throw a dbg on that line and see if it says anything useful.

Hi @sodapopcan , thank you for the answer.

In my scenario, users are responsible for configuring the bucket and providing credentials. Therefore, providing them with hints about why an upload is failing could be incredibly useful.

Moreover, since external uploads can be of any types, not limited to S3, I believe it’s importante to be able to capture the error message server-side and render them to the client via a live view for an optimal user experience.

I’ve opened this PR to address this issue

Ah, that is helpful context! I figured you were just uploading some images to a bucket :slight_smile: