After deploying a hotfix released after September 18, 2025 where Zookeeper upgrades from 3.9.3 to 3.9.4 (found in <APPIAN_HOME>/services/) on a High Availability (HA) site, Zookeeper fails to start on one or two nodes.
<APPIAN_HOME>/services/
<APPIAN HOME>/logs/service-manager/zookeeper
YYYY-MM-DD HH:MM:SS.mmm [myid:0] - ERROR [main:o.a.z.s.q.QuorumPeerMain@114] - Unexpected exception, exiting abnormallyjava.lang.IllegalStateException: Committed proposal cached out of order: 0x5000000xxx is not the next proposal of 0x5000000xxx at org.apache.zookeeper.server.ZKDatabase.addCommittedProposal(ZKDatabase.java:341) at org.apache.zookeeper.server.ZKDatabase.addCommittedProposal(ZKDatabase.java:313) at org.apache.zookeeper.server.ZKDatabase.access$000(ZKDatabase.java:73) at org.apache.zookeeper.server.ZKDatabase$1.onTxnLoaded(ZKDatabase.java:278) at org.apache.zookeeper.server.persistence.FileTxnSnapLog.fastForwardFromEdits(FileTxnSnapLog.java:360) at org.apache.zookeeper.server.persistence.FileTxnSnapLog.lambda$restore$0(FileTxnSnapLog.java:267) at org.apache.zookeeper.server.persistence.FileTxnSnapLog.restore(FileTxnSnapLog.java:312) at org.apache.zookeeper.server.ZKDatabase.loadDataBase(ZKDatabase.java:290) at org.apache.zookeeper.server.quorum.QuorumPeer.loadDataBase(QuorumPeer.java:1149) at org.apache.zookeeper.server.quorum.QuorumPeer.start(QuorumPeer.java:1135) at org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:229) at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:137) at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:91)YYYY-MM-DD HH:MM:SS.mmm [myid:0] - ERROR [main:o.a.z.u.ServiceUtils@48] - Exiting JVM with code 1
Waiting for Zookeeper to be available
These errors are caused by the upgrade from Zookeeper 3.9.3 to Zookeeper 3.9.4, which detects a product bug that had gone unnoticed in an earlier version.
kubectl -n <namespace> patch statefulset <ZOOKEEPER STS> --type='json' -p='[{"op": "add", "path": "/spec/template/spec/containers/0/command", "value": ["sleep", "infinity"]}]'
kubectl -n <namespace> delete pod <ZOOKEEPER POD>
kubectl -n <namespace> exec -it <ZOOKEEPER POD> -- bash
rm -rf zookeeper/data/*
kubectl -n <namespace> patch statefulset <ZOOKEEPER STS> --type='json' -p='[{"op": "remove", "path": "/spec/template/spec/containers/0/command"}
rm -rf <APPIAN HOME>/services/data/zookeeper/*
Restore the site to the previous version.
This article applies to all High Availability (HA) versions of Appian applying a hotfix released on September 18, 2025 and later.
Last Reviewed: November 2025