Right now when a node starts up or has a config change, if it is not an arbiter it reads its last optime from the top of the oplog. If it is an arbiter it does not, but it does not clear the last optime either. So if a node goes from being not an arbiter (i.e. REMOVED, which can happen due to network errors) to being an arbiter, and it happens to have an oplog (which an arbiter might if it was ever started as a primary or secondary), it will end up with an old and possibly invalid (e.g. missing term or wall time) value for lastDurableOpTime, which will remain until the next restart.