diff --git a/src/services/network_refresh_service.cpp b/src/services/network_refresh_service.cpp index 72ada1a..2795a17 100644 --- a/src/services/network_refresh_service.cpp +++ b/src/services/network_refresh_service.cpp @@ -1310,6 +1310,13 @@ void NetworkRefreshService::resetJobs() priceInProgress_.store(false, std::memory_order_release); encryptionInProgress_.store(false, std::memory_order_release); connectionInitInProgress_.store(false, std::memory_order_release); + + // Bump every job's generation so any ticket minted before this reset (a refresh still + // in flight on the worker when a disconnect cleared state_) is treated as stale by + // completeDispatch — preventing last-connection data from landing on the new session. + for (auto& generation : generations_) { + generation.fetch_add(1, std::memory_order_acq_rel); + } } NetworkRefreshService::DispatchTicket NetworkRefreshService::beginDispatch(