# Adding yb-master fails

**URL:** https://forum.yugabyte.com/t/adding-yb-master-fails/4876
**Category:** General
**Created:** [January 15, 2026, 5:00pm UTC](https://forum.yugabyte.com/t/adding-yb-master-fails/4876 "2026-01-15T17:00:44Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![MichiganL](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.yugabyte.com/michiganl/32/619_2.png) [@MichiganL](https://forum.yugabyte.com/u/MichiganL)
#### Post date: [January 15, 2026, 5:00pm UTC](https://forum.yugabyte.com/t/adding-yb-master-fails/4876/1 "2026-01-15T17:00:44Z")

</div>

Hi,

We are currently trying to migrate an existing Yugabyte cluster to a new one. Our instance is deployed on a Kubernetes cluster using the Yugabyte Helm chart (version 2024.2.5.1-b1).  
It is a multi-zone setup, as described here: [Deploy multi zone on EKS using Helm Chart | YugabyteDB Docs](https://docs.yugabyte.com/stable/deploy/kubernetes/multi-zone/eks/helm-chart/)  
To replace the current set of yb-masters, we deployed a new set of masters in the respective zones.  
We are following the instructions as described here: [Replace a failed YB-Master | YugabyteDB Docs](https://docs.yugabyte.com/stable/troubleshoot/cluster/replace_master/)  
The new set of masters are started with an empty list of master\_addresses.  
When we try to add the new master of zone-1, the yb-admin command fails:

```bash
export MASTER_PORT=7100
export OLD_MASTER_1=zone-1-yugabyte-yb-master-0.zone-1-yugabyte-yb-masters.zone-1.svc.cluster.local
export OLD_MASTER_2=zone-2-yugabyte-yb-master-0.zone-2-yugabyte-yb-masters.zone-2.svc.cluster.local
export OLD_MASTER_3=zone-3-yugabyte-yb-master-0.zone-3-yugabyte-yb-masters.zone-3.svc.cluster.local
export OLD_MASTERS=$OLD_MASTER_1:$MASTER_PORT,$OLD_MASTER_2:$MASTER_PORT,$OLD_MASTER_3:$MASTER_PORT

export NEW_MASTER_1=new-zone-1-yugabyte-yb-master-0.new-zone-1-yugabyte-yb-masters.zone-1.svc.cluster.local
export NEW_MASTER_2=new-zone-2-yugabyte-yb-master-0.new-zone-2-yugabyte-yb-masters.zone-2.svc.cluster.local
export NEW_MASTER_3=new-zone-3-yugabyte-yb-master-0.new-zone-3-yugabyte-yb-masters.zone-3.svc.cluster.local
export NEW_MASTERS=$NEW_MASTER_1:$MASTER_PORT,$NEW_MASTER_2:$MASTER_PORT,$NEW_MASTER_3:$MASTER_PORT

export ALL_MASTERS=$OLD_MASTERS,$NEW_MASTERS

yb-admin -master_addresses $OLD_MASTERS change_master_config ADD_SERVER $NEW_MASTER_1 $MASTER_PORT
Error running change_master_config: Service unavailable (yb/master/scoped_leader_shared_lock.cc:91): Unable to change master config: Catalog manager is not initialized. State: 1

```

It seems the cause is that the new master is not yet ready to be added to the existing cluster.  
Removing and re-adding an existing master works without any problems.

We also tested other versions of Yugabyte.  
• Version 2.20.12.0-b30 works without any issues.

• Version 2024.1.1.0-b137 partially works. It is possible to add the new master to the existing cluster. It also shows up in the master web UI and when listing all masters with the yb-admin CLI. However, the new master logs the following error:

```bash
I0115 13:41:05.609918 2067 client-internal.cc:2792] New master addresses: []
E0115 13:41:05.610303 50 async_client_initializer.cc:94] Failed to initialize client: Illegal state (yb/client/client-internal.cc:2795): Could not locate the leader master: Unable to determine master addresses

```

I have prepared Kubernetes manifests for the versions 2024.2, 2024.1 and 2.20.12. You can find them here: [GitHub - MichiganL/yugabyte-add-master-issue](https://github.com/MichiganL/yugabyte-add-master-issue/tree/main)  
The logs of the masters can be also found there.

Could you please help us find a way to add the new master to the existing cluster?

---

<div class="post-metadata">

### Author: ![sanketh](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.yugabyte.com/sanketh/32/275_2.png) [@sanketh](https://forum.yugabyte.com/u/sanketh)
#### Post date: [January 15, 2026, 5:44pm UTC](https://forum.yugabyte.com/t/adding-yb-master-fails/4876/2 "2026-01-15T17:44:04Z")

</div>

@MichiganL : On the new masters, can you check if the log `Starting master in shell mode` appears? This should happen if the data dir (pointed to by `--fs_data_dirs` is empty or if `master_join_existing_universe` is set to true). This confirms that the new master is ready to be added. If you don’t see, try cleaning the data dir.

If the new master is in shell mode correctly, can you then share the logs from the leader master after running the change\_master\_config ADD\_SERVER? It should report some RAFT status changes, we can try to identify where it could be stuck.

---

<div class="post-metadata">

### Author: ![sanketh](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.yugabyte.com/sanketh/32/275_2.png) [@sanketh](https://forum.yugabyte.com/u/sanketh)
#### Post date: [January 15, 2026, 5:45pm UTC](https://forum.yugabyte.com/t/adding-yb-master-fails/4876/3 "2026-01-15T17:45:54Z")

</div>

The logs at [yugabyte-add-master-issue/yugabyte-2024-2/logs/master-zone-3.logs at main · MichiganL/yugabyte-add-master-issue · GitHub](https://github.com/MichiganL/yugabyte-add-master-issue/blob/main/yugabyte-2024-2/logs/master-zone-3.logs) only contain stdout from the pods. Can you include the `yb-master*INFO*` files that appear in the data directory logs folder?

---

<div class="post-metadata">

### Author: ![MichiganL](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.yugabyte.com/michiganl/32/619_2.png) [@MichiganL](https://forum.yugabyte.com/u/MichiganL)
#### Post date: [January 16, 2026, 9:19am UTC](https://forum.yugabyte.com/t/adding-yb-master-fails/4876/4 "2026-01-16T09:19:14Z")

</div>

Thank you, @sanketh!  
Setting the flag `master_join_existing_universe` to true made it work. I then found out that I hadn’t configured the `master_addresses` correctly.  
In the values.yaml, I had set `masterAddresses: "\"\""`. This worked for older Yugabyte versions (2.20.X), but not for newer ones (2024.X). The old Helm chart would pass the master addresses as CLI flags within a bash script. In the newer versions (LTS 2024.x), the flags are read from a file.  
Changing the config in values.yaml to `masterAddresses: ""` solved my problem.

---

<div class="post-metadata">

### Author: ![sanketh](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.yugabyte.com/sanketh/32/275_2.png) [@sanketh](https://forum.yugabyte.com/u/sanketh)
#### Post date: [January 16, 2026, 4:40pm UTC](https://forum.yugabyte.com/t/adding-yb-master-fails/4876/5 "2026-01-16T16:40:44Z")

</div>

@MichiganL : Glad to know it worked.

I wanted to correct one of my previous statements for the benefit of any future readers of this post.

A master that starts up switches to “shell mode” ready to be added to a quorum if

1. The data dir pointed to by fs\_data\_dirs is empty, AND
2. master\_addresses is empty OR master\_join\_existing\_universe is true
