@@ -, +, @@ Koha::Item::Transfer->cancel --- Koha/Item.pm | 2 +- Koha/Item/Transfer.pm | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) --- a/Koha/Item.pm +++ a/Koha/Item.pm @@ -467,7 +467,7 @@ sub request_transfer { } )->store(); - $request->cancel( { reason => $params->{reason}, force => 1 } ) + $request->cancel( { reason => $params->{reason}, force => 1, replace => 1 } ) if ( defined($request) && $params->{replace} ); return $transfer; --- a/Koha/Item/Transfer.pm +++ a/Koha/Item/Transfer.pm @@ -173,9 +173,10 @@ sub cancel { ->store; # Set up return transfer if transfer was force cancelled whilst in transit + # and we were not notified that the transfer is being replaced. # NOTE: We don't catch here, as we're happy to fail if there are already # other transfers in the queue. - if ($in_transit) { + if ($in_transit && !$params->{replace}) { try { $self->item->request_transfer( { to => $self->from_library, reason => 'TransferCancellation' } ); --