diff --git a/transfer/adapterbase.go b/transfer/adapterbase.go
index <HASH>..<HASH> 100644
--- a/transfer/adapterbase.go
+++ b/transfer/adapterbase.go
@@ -99,6 +99,7 @@ func (a *adapterBase) worker(workerNum int) {
 		if signalAuthOnResponse {
 			authCallback = func() {
 				a.authWait.Done()
+				signalAuthOnResponse = false
 			}
 		}
 		tracerx.Printf("xfer: adapter %q worker %d processing job for %q", a.Name(), workerNum, t.Object.Oid)
@@ -110,9 +111,6 @@ func (a *adapterBase) worker(workerNum int) {
 			a.outChan <- res
 		}
 
-		// Only need to signal for auth once
-		signalAuthOnResponse = false
-
 		tracerx.Printf("xfer: adapter %q worker %d finished job for %q", a.Name(), workerNum, t.Object.Oid)
 	}
 	// This will only happen if no jobs were submitted; just wake up all workers to finish
Fix retry; only confirm that auth signal done when auth func called