-
Notifications
You must be signed in to change notification settings - Fork 11
Description
Description
Improve error logging for Upload failures (missing S3 error details)
When an upload error occurs, the application’s logs (both server and client) do not include enough information to understand the cause of the failure.
Currently, the log messages do not display the error message or details returned by S3, making it difficult to identify the root cause and troubleshoot issues effectively.
Enhancing the log messages to include the full error response from S3 will improve troubleshooting on upload related failures.
Current behaviour:
- When an upload fails (e.g., due to insufficient storage space), the logs only show a generic failure message without any detailed S3 error context.
2025-10-30 13:44:10,635 [pool-1-thread-6] INFO b.o.s.c.t.MemoryMappedParallelPartObjectTransport - Sending remaining part Part(partNumber=19, partSiz
e=1073741824, offset=19327352832, url=<REDACTED>, md5=null, sourceMd5=null)
.
.
.
2025-10-30 13:44:10,713 [pool-1-thread-6] WARN b.o.s.c.s.ScoreStorageService - Failed to send part for part #19 : {}
org.springframework.web.client.ResourceAccessException: I/O error on PUT request for "https://******/submission-file-transfer-dev
/data/5fd711e8-2136-5aa2-aadd-4b9de585bed0": Error writing request body to server; nested exception is java.io.IOException: Error writing request body
to server
.
.
.
2025-10-30 13:44:31,209 [pool-1-thread-6] WARN b.o.s.c.e.AmazonS3RetryableResponseErrorHandler - FORBIDDEN response code received
2025-10-30 13:44:31,210 [pool-1-thread-6] ERROR b.o.s.c.s.ScoreStorageService - Could not proceed. Failed to send part for part number: 19
bio.overture.score.client.exception.NotRetryableException: java.io.IOException: Access refused by object store. Confirm client is part of repository c
loud and that the download was initiated less than 1 day earlier (7 days for uploads)
Expected:
To include a more detailed information such as the S3 error message or error code (e.g., EntityTooLarge, AccessGrantsQuotaExceededError , etc.) based on code error list:
https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList