diff --git a/libraries/object-persistor/src/PersistorHelper.js b/libraries/object-persistor/src/PersistorHelper.js index 28b8c0c2aa..ad0a705d68 100644 --- a/libraries/object-persistor/src/PersistorHelper.js +++ b/libraries/object-persistor/src/PersistorHelper.js @@ -140,6 +140,10 @@ async function verifyMd5(persistor, bucket, key, sourceMd5, destMd5 = null) { } function wrapError(error, message, params, ErrorType) { + params = { + ...params, + cause: error, + } if ( error instanceof NotFoundError || ['NoSuchKey', 'NotFound', 404, 'AccessDenied', 'ENOENT'].includes( diff --git a/services/history-v1/storage/scripts/back_fill_file_hash.mjs b/services/history-v1/storage/scripts/back_fill_file_hash.mjs index 697690d646..d6f033109a 100644 --- a/services/history-v1/storage/scripts/back_fill_file_hash.mjs +++ b/services/history-v1/storage/scripts/back_fill_file_hash.mjs @@ -356,7 +356,8 @@ async function processFile(entry, filePath) { { err, projectId, fileId, hash, path, attempt }, 'failed to process file, trying again' ) - await setTimeout(RETRY_DELAY_MS) + const jitter = Math.random() * RETRY_DELAY_MS + await setTimeout(RETRY_DELAY_MS + jitter) } } return await processFileOnce(entry, filePath) @@ -1000,7 +1001,8 @@ class ProjectContext { { err, projectId: this.projectId, attempt }, 'failed to get DEK, trying again' ) - await setTimeout(RETRY_DELAY_MS) + const jitter = Math.random() * RETRY_DELAY_MS + await setTimeout(RETRY_DELAY_MS + jitter) } } }