diff --git a/aws-s3-transfer-manager/src/operation/download/service.rs b/aws-s3-transfer-manager/src/operation/download/service.rs index d6eee8f..8873cf6 100644 --- a/aws-s3-transfer-manager/src/operation/download/service.rs +++ b/aws-s3-transfer-manager/src/operation/download/service.rs @@ -154,7 +154,11 @@ pub(super) fn distribute_work( let resp = svc.oneshot(req).await; // If any chunk fails, send cancel notification, to kill any other in-flight chunks if let Err(err) = &resp { - if *err.kind() != ErrorKind::OperationCancelled && cancel_tx.send(true).is_err() { + if *err.kind() == ErrorKind::OperationCancelled { + // Ignore any OperationCancelled errors. + return; + } + if cancel_tx.send(true).is_err() { tracing::debug!( "all receiver ends have dropped, unable to send a cancellation signal" );