Bug report: Cluster has no leader during express install

Hello,

I'd like to report a bug. Ever since Openziti was upgraded to 2.0, our team has been having trouble with running the function expressInstall from the bash script found in https://get.openziti.io/ziti-cli-functions.sh. The output shows that during the setting up of the edge router, there's a repeated error:

"code": "CLUSTER_NO_LEADER",
"message": "Cluster has no leader, unable to make model updates."

This error was first seen when we were running our own scripts that setup a debian WSL instance and setup a Ziti server inside it, but my colleague was also able to reproduce the error when running the following commands in a debian cloud computer:

> cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
NAME="Debian GNU/Linux"
VERSION_ID="13"
VERSION="13 (trixie)"
VERSION_CODENAME=trixie
DEBIAN_VERSION_FULL=13.5
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

> sudo apt update
> sudo apt -y upgrade
> sudo apt install -y wget curl jq lsof unzip gpg dnsutils
> source /dev/stdin <<< "$(wget -qO- https://get.openziti.io/ziti-cli-functions.sh)
> expressInstall

We have confirmed that the problem doesn't happen with version 1.6.17 of Openziti, because when we use the environment variable ZITI_VERSION_OVERRIDE to set the version to 1.6.17, expressInstall works again and there's no error.

I have attached a file with a piece of the expressInstall console output showing the "CLUSTER_NO_LEADER" bug.

openziti_expressinstall_bug.txt (3.7 KB)

Hi @Henna, welcome to the community and to OpenZiti!

I am actively working through updating the doc/quickstarts at the moment. Are you using the older, bash-based quickstart to start a test server up? If so, I would suggest you have a look at the new ziti run quickstart instead. You simply need to download/install the ziti binary and then you can run it. I believe it should support the same environment variables as the expressInstall script did but it's possibly simpler to just run with a few flags.

For example, I will routinely run an ephemeral quickstart with just ziti run quickstart but also you can pass relevant flags to setup your quickstart and make it permanent using the --home flag. See the usage:

PS> ziti run quickstart --help
runs a Controller and Router in quickstart mode with a temporary directory; suitable for testing and development

Usage:
  ziti run quickstart [flags]

Flags:
      --configure-and-exit      Configures everything and then exits gracefully
      --ctrl-address string     sets the advertised address for the control plane and API. current: sg4
      --ctrl-port uint16        sets the port to use for the control plane and API. current: 1280 (default 1280)
  -h, --help                    help for quickstart
      --home string             permanent directory
      --instance-id string      specifies a unique instance id for use in ha mode.
      --no-router               specifies the quickstart should not start a router
  -p, --password string         admin password, default: admin
      --router-address string   sets the advertised address for the integrated router. current: sg4
      --router-port uint16      sets the port to use for the integrated router. current: 3022 (default 3022)
      --trust-domain string     the specified trust domain to be used in SPIFFE ids.
  -u, --username string         admin username, default: admin
      --verbose                 Show additional output.

Hopefully that will address your problem?