Return 413 HTTP status for S3 uploads if max upload limit is reached
When an upload (e.g. a CI artifact) reaches the maximum file size limit, uploads via S3 would return a 500 error to the user. This made it difficult to understand why the upload failed. This was happening because the `hardLimitReader` was aborting the transfer with `ErrEntityTooLarge`, but this error was wrapped in layers of AWS errors. Since none of these AWS errors were understood by the file handler, a 500 error was returned. To fix this, AWS has a way to retrieve the original error. We now recursively go down the error stack to find the root cause. Note that there is an open issue in the AWS SDK to make this easier with Golang (https://github.com/aws/aws-sdk-go/issues/2820).
Showing
Please register or sign in to comment