The apiAddresses of the Controller do not appear

Hello,
I installed OpenZiti 2.0. When adding a new Controller to a cluster, I commented out - binding: edge-management and its corresponding options: { } because I didn't want edge-management to be exposed to the public network. However, after doing this, the apiAddresses of this Controller disappear when calling the /edge/management/v1/controllers endpoint. If I add edge-management back, the apiAddresses for this Controller reappear.

What's even stranger is that I have other Controllers where I also commented out edge-management, but they work fine.

Hi @maika,

I'm confused as to the question you're trying to ask. You sated that you removed the edge-management binding from the web config, but then you're trying to access the edge management api? (/edge/management/*)

This sounds like the behavior I would expect, so I feel like I must be missing the actual question?

Thank you for your reply. After testing, I found that the issue is not related to edge-management.,
I think this is likely where the issue lies. when the server starts up, because the Raft connections come in too quickly,in controller.go c.config.Configure(c.xweb) has not yet been executed before GetApiAddresses is called. At that point, the web configurations are all empty, so what is returned is empty

It's hard to know for sure. Can you capture all controllers logs at startup for like 30s and send them over to us to look at?

Your race condition hypothesis is correct.

Issue to track for next release: Controller can cache empty apiAddresses forever due to startup race between raft mesh and xweb config load · Issue #4069 · openziti/ziti · GitHub

Issue to track for backport to 2.0: [Backport-2.0] Controller can cache empty apiAddresses forever due to startup race between raft mesh and xweb config load · Issue #4070 · openziti/ziti · GitHub

Thank you for reporting the issue and digging in!
Paul