diff --git a/paskia/satellite.py b/paskia/satellite.py index 8acd71a..857d5b3 100644 --- a/paskia/satellite.py +++ b/paskia/satellite.py @@ -589,7 +589,8 @@ class SatelliteManager: replica = self.replicas.pop(uplink_id) await replica.stop() await _drop_client(replica.uplink.url) - for uplink_id, uplink in wanted.items(): + # Snapshot: a revocation task may mutate the uplinks mid-loop + for uplink_id, uplink in list(wanted.items()): uplink.uplink_id = uplink_id # fresh objects lack it until load replica = self.replicas.get(uplink_id) if replica is None or replica.uplink != uplink: