diff --git a/pkg/hold/pds/scan_broadcaster.go b/pkg/hold/pds/scan_broadcaster.go index 3013722..f49159e 100644 --- a/pkg/hold/pds/scan_broadcaster.go +++ b/pkg/hold/pds/scan_broadcaster.go @@ -1446,13 +1446,19 @@ func (sb *ScanBroadcaster) checkPredecessor(ctx context.Context, holdDID string) return false } - if captain.Successor != "" { - slog.Info("Proactive scan: discovered migrated hold (has successor label)", - "holdDID", holdDID, "successor", captain.Successor) - return true + if captain.Successor == "" { + return false } - return false + if captain.Successor != sb.holdDID { + slog.Debug("Proactive scan: hold has successor, but it is not us", + "holdDID", holdDID, "successor", captain.Successor, "ourHoldDID", sb.holdDID) + return false + } + + slog.Info("Proactive scan: discovered migrated hold pointing at us as successor", + "holdDID", holdDID, "successor", captain.Successor) + return true } // hasConnectedScanners returns true if at least one scanner is connected.