Unable to add new nodes to cluster

We are unable to add new nodes to a distributed cluster using Community version 3.0.31
All servers are masters and we are using TCP mode on AWS EC2 instances.
We get the following exception for every node we try to add.

Members {size:3, ver:3} [
Member [10.1.1.54]:2434 - 738dc288-c9ba-4b02-b79e-12ae834d8d9a
Member [10.1.1.20]:2434 - 216477f7-0106-45ac-9285-baa98e736cf2
Member [10.1.1.223]:2434 - 3932c778-fcf4-4d6a-87ac-b96cf0ebb13a this
]
[ClusterService]
2020-05-14 20:35:44:140 INFO [10.1.1.223]:2434 [orientdb] [3.10.6] [10.1.1.223]:2434 is STARTED [LifecycleService]
2020-05-14 20:35:44:140 INFO Starting distributed server ‘orient-3’ (hzID=3932c778-fcf4-4d6a-87ac-b96cf0ebb13a)… [OHazelcastPlugin]
2020-05-14 20:35:44:151 INFO Distributed cluster time=Thu May 14 20:35:44 UTC 2020 (delta from local node=-6)… [OHazelcastPlugin]
2020-05-14 20:35:44:193 WARNI Error deserializing record with id #-1:-1 send this data for debugging: AAAaaG90QWxpZ25lbWVudAAAAKsAHHJlYWRZb3VyV3JpdGVzAAAArAAebmV3Tm9kZVN0cmF0ZWd5AAAArQcOc2VydmVycwAAALQJFGF1dG9EZXBsb3kAAADiABRyZWFkUXVvcnVtAAAA4wEaZXhlY3V0aW9uTW9kZQAAAOQHDnZlcnNpb24AAADuARZ3cml0ZVF1b3J1bQAAAO8HEGNsdXN0ZXJzAAAA+AkAAQEMc3RhdGljABIxMC4xLjEuNTQAAADUBxIxMC4xLjEuMjAAAADbBwAMbWFzdGVyDG1hc3RlcgECEnVuZGVmaW5lZAIQbWFqb3JpdHkAEGludGVybmFsAAABDwkCKgAAAREJAAAAAA5zZXJ2ZXJzAAABIAoAAhcHFDxORVdfTk9ERT4= [ORecordSerializerNetwork][orient-3] Error on starting distributed plugin
com.hazelcast.nio.serialization.HazelcastSerializationException: Problem while reading Externalizable class: com.orientechnologies.orient.core.record.impl.ODocument, exception: java.lang.IllegalArgumentException: Property ‘10.1.1’ is null, is possible to set a value with dotted notation only on not null property
at com.hazelcast.internal.serialization.impl.JavaDefaultSerializers$ExternalizableSerializer.read(JavaDefaultSerializers.java:157)
at com.hazelcast.internal.serialization.impl.JavaDefaultSerializers$ExternalizableSerializer.read(JavaDefaultSerializers.java:133)
at com.hazelcast.internal.serialization.impl.StreamSerializerAdapter.read(StreamSerializerAdapter.java:48)
at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toObject(AbstractSerializationService.java:187)
at com.hazelcast.map.impl.query.QueryResultIterator.next(QueryResultIterator.java:59)
at java.base/java.util.concurrent.ConcurrentHashMap.putAll(ConcurrentHashMap.java:1088)
at com.orientechnologies.orient.server.hazelcast.OHazelcastDistributedMap.(OHazelcastDistributedMap.java:51)
at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.startup(OHazelcastPlugin.java:210)
at com.orientechnologies.orient.server.OServer.registerPlugins(OServer.java:1194)
at com.orientechnologies.orient.server.OServer.activate(OServer.java:469)
at com.orientechnologies.orient.server.OServerMain$1.run(OServerMain.java:48)

2020-05-14 20:35:44:195 INFO - shutdown storage: OSystem… [OrientDBDistributed]Error during server execution
com.orientechnologies.orient.server.distributed.ODistributedStartupException: Error on starting distributed plugin
at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.startup(OHazelcastPlugin.java:336)
at com.orientechnologies.orient.server.OServer.registerPlugins(OServer.java:1194)
at com.orientechnologies.orient.server.OServer.activate(OServer.java:469)
at com.orientechnologies.orient.server.OServerMain$1.run(OServerMain.java:48)
Caused by: com.hazelcast.nio.serialization.HazelcastSerializationException: Problem while reading Externalizable class: com.orientechnologies.orient.core.record.impl.ODocument, exception: java.lang.IllegalArgumentException: Property ‘10.1.1’ is null, is possible to set a value with dotted notation only on not null property

I can work around the exception by shutting down all nodes in the cluster and bring them back online in reverse order, with the newest node being the first to start. That seems broken.

Has anyone seen this behavior?