diff --git a/lxd/daemon.go b/lxd/daemon.go
index <HASH>..<HASH> 100644
--- a/lxd/daemon.go
+++ b/lxd/daemon.go
@@ -1943,11 +1943,15 @@ func (d *Daemon) hasNodeListChanged(heartbeatData *cluster.APIHeartbeat) bool {
 		return true
 	}
 
-	// Check for node address changes.
+	// Check for member address or state changes.
 	for lastMemberID, lastMember := range d.lastNodeList.Members {
 		if heartbeatData.Members[lastMemberID].Address != lastMember.Address {
 			return true
 		}
+
+		if heartbeatData.Members[lastMemberID].Online != lastMember.Online {
+			return true
+		}
 	}
 
 	return false
lxd/daemon: Update hasNodeListChanged to detect member state changes