Thanks for sharing the logs. It looks like what’s happening here is that this new Zero came up and, as expected, is replaying the write-ahead log and applying the updates as seen by its peers. This includes the conf changes (aka Setting conf state to ... logs) for the previous membership states up to the latest one. This triggers the new instance to attempt to connect to past members during the WAL replay.
The /state output you shared looks right (3 members with 2 removed). So, all in all, things look as they should be.
counter has nothing to do with the number of members in the cluster. It’s an book-keeping value. It tracking the Raft index of the latest updates.
I see what you mean. amDead is a field used in the proposal when removing a node. I don’t see it reflected in the /state info currently.
Ah, I see what you mean. Looks like you’re right about this. You’ll need to point the --peer config to the leader node.