OpenZiti SpringBoot Version Upgrade Exception

Hi everyone,I deployed an OpenZiti SDN environment following the official guide, and completed configuration for Identities, Services and other relevant components.

Afterwards, I built a simple project referencing the module from the ziti-sdk-jvm project. The dependency versions are as below:

spring-boot 3.3.3

ziti-springboot 0.27.2

The application can successfully join the Ziti network, and the service shows online status on Ziti Admin Console after launch. However, after upgrading ziti-springboot to version 0.33.1, a warning is printed during application startup:


[DefaultDispatcher-worker-5] WARN  Controller -failed to connect to controller https://ziti-edge-controller:1280: No enum constant org.openziti.edge.model.Capabilities.OIDC_AUTH_WITH_CSR

The application subsequently crashes with the following exception stack trace:

2026-06-04 15:04:43.105 [main] ERROR org.springframework.boot.SpringApplication - Application run failed
org.springframework.context.ApplicationContextException: Failed to start bean 'webServerStartStop'
	at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:423)
	at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:409)
	at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:613)
	at java.base/java.lang.Iterable.forEach(Iterable.java:75)
	at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:379)
	at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:306)
	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:1013)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624)
	at org.springframework.boot.web.server.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:756)
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:445)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:321)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1365)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354)
	at com.demo.Application.main(ZeroTrustGatewayApplication.java:11)
Caused by: org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat server
	at org.springframework.boot.tomcat.TomcatWebServer.start(TomcatWebServer.java:248)
	at org.springframework.boot.web.server.servlet.context.WebServerStartStopLifecycle.start(WebServerStartStopLifecycle.java:44)
	at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:420)
	... 14 more
Caused by: java.lang.IllegalArgumentException: standardService.connector.startFailed
	at org.apache.catalina.core.StandardService.addConnector(StandardService.java:220)
	at org.springframework.boot.tomcat.TomcatWebServer.addPreviouslyRemovedConnectors(TomcatWebServer.java:307)
	at org.springframework.boot.tomcat.TomcatWebServer.start(TomcatWebServer.java:233)
	... 16 more
Caused by: org.apache.catalina.LifecycleException: Protocol handler start failed
	at org.apache.catalina.connector.Connector.startInternal(Connector.java:1119)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
	at org.apache.catalina.core.StandardService.addConnector(StandardService.java:217)
	... 18 more
Caused by: java.util.concurrent.TimeoutException: failed to get service[zero-trust-backend-gateway] in 10000ms
	at org.openziti.impl.ZitiContextImpl.getService(ZitiContextImpl.kt:558)
	at org.openziti.springboot4.ZitiProtocol.start(ZitiProtocol.kt:46)
	at org.apache.catalina.connector.Connector.startInternal(Connector.java:1116)
	... 20 more

I suspect the failure stems from improper handling of the OIDC_AUTH_WITH_CSR enum constant in version 0.33.1. What modifications were implemented between release 0.27.2 and 0.33.1, and what steps can I take to resolve this issue?

Hi @Juggernaut welcome to the community and to OpenZiti! OIDC_AUTH_WITH_CSR is new with the OpenZiti controller 2.0 I think. Are you using 2.0.x or are you running 1.6.x? We'll have to have a look, seems like a bug.

It seems that generated openapi client cannot handle new enum values.
Let me get a new release out.

Thanks for your report!

the new version is now available on Maven Central

Hi, I’ve got some bad news to share: Version 0.34.0 no longer throws the "No enum constant" prompt, yet the application still fails to start. Below are supplementary details about the project and ZAC configurations:

  • JDK 21
  • Spring Boot 3.3.3
  • ziti-springboot 0.34.0
  • Controller 2.0.0
  • ZAC 4.2.0

Startup logs are attached here:

2026-06-05 15:42:11.781 [main] DEBUG com.demo.ZeroTrustGatewayApplication - Running with Spring Boot v3.3.3, Spring v6.1.12
2026-06-05 15:42:11.782 [main] INFO  com.demo.ZeroTrustGatewayApplication - The following 1 profile is active: "dev"
2026-06-05 15:42:12.915 [main] INFO  org.openziti.impl.ZitiImpl - ZitiSDK version 0.34.0 @d77dd74()
2026-06-05 15:42:13.460 [DefaultDispatcher-worker-1] DEBUG org.openziti.impl.ZitiContextImpl - [null]@https://ziti-edge-controller:1280 transitioned to Loading
2026-06-05 15:42:13.483 [DefaultDispatcher-worker-2] DEBUG Controller - attempting to connect to controller https://ziti-edge-controller:1280
2026-06-05 15:42:13.511 [main] INFO  org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port 18801 (http)
2026-06-05 15:42:13.538 [main] INFO  org.openziti.springboot.ZitiProtocol - Initializing ProtocolHandler ["http-ziti-zero-trust-backend-gateway"]
2026-06-05 15:42:13.545 [main] INFO  org.apache.catalina.core.StandardService - Starting service [Tomcat]
2026-06-05 15:42:13.546 [main] INFO  org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.28]
2026-06-05 15:42:13.623 [main] INFO  org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
2026-06-05 15:42:13.624 [main] INFO  org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1784 ms
2026-06-05 15:42:13.841 [main] DEBUG _org.springframework.web.servlet.HandlerMapping.Mappings - 
	o.s.b.a.w.s.e.BasicErrorController:
	{ [/error]}: error(HttpServletRequest)
	{ [/error], produces [text/html]}: errorHtml(HttpServletRequest,HttpServletResponse)
2026-06-05 15:42:13.851 [main] DEBUG _org.springframework.web.servlet.HandlerMapping.Mappings - 'beanNameHandlerMapping' {}
2026-06-05 15:42:13.925 [main] DEBUG _org.springframework.web.servlet.HandlerMapping.Mappings - 'resourceHandlerMapping' {/webjars/**=ResourceHttpRequestHandler [classpath [META-INF/resources/webjars/]], /**=ResourceHttpRequestHandler [classpath [META-INF/resources/], classpath [resources/], classpath [static/], classpath [public/], ServletContext [/]]}
2026-06-05 15:42:14.142 [main] WARN  org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Failed to start bean 'webServerStartStop'
2026-06-05 15:42:14.156 [main] INFO  org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLogger - 

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2026-06-05 15:42:14.176 [DefaultDispatcher-worker-2] DEBUG oidc[https://ziti-edge-controller:1280] - starting auth
2026-06-05 15:42:14.178 [DefaultDispatcher-worker-2] INFO  oidc[https://ziti-edge-controller:1280] - body: response_type=code&client_id=openziti&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Fauth%2Fcallback&scope=openid+offline_access&state=qx7lNqb_Ai9NQsJAa1kFR-Wo4fOKIRtcQEeeU8-r&code_challenge=95FBwahZsOenKGPRhoWbCZB25Lk9pnTEfYEBtDDU2sE&code_challenge_method=S256
2026-06-05 15:42:14.179 [DefaultDispatcher-worker-2] DEBUG oidc[https://ziti-edge-controller:1280] - sending auth request https://ziti-edge-controller:1280/oidc/authorize POST
2026-06-05 15:42:14.188 [main] ERROR org.springframework.boot.SpringApplication - Application run failed
org.springframework.context.ApplicationContextException: Failed to start bean 'webServerStartStop'
	at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:288) ~[spring-context-6.1.12.jar:6.1.12]
	at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:469) ~[spring-context-6.1.12.jar:6.1.12]
	at java.base/java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]
	at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:257) ~[spring-context-6.1.12.jar:6.1.12]
	at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:202) ~[spring-context-6.1.12.jar:6.1.12]
	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:990) ~[spring-context-6.1.12.jar:6.1.12]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:628) ~[spring-context-6.1.12.jar:6.1.12]
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.3.3.jar:3.3.3]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) [spring-boot-3.3.3.jar:3.3.3]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) [spring-boot-3.3.3.jar:3.3.3]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:335) [spring-boot-3.3.3.jar:3.3.3]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363) [spring-boot-3.3.3.jar:3.3.3]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352) [spring-boot-3.3.3.jar:3.3.3]
	at com.demo.ZeroTrustGatewayApplication.main(ZeroTrustGatewayApplication.java:11) [classes/:?]
Caused by: org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat server
	at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:251) ~[spring-boot-3.3.3.jar:3.3.3]
	at org.springframework.boot.web.servlet.context.WebServerStartStopLifecycle.start(WebServerStartStopLifecycle.java:44) ~[spring-boot-3.3.3.jar:3.3.3]
	at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:285) ~[spring-context-6.1.12.jar:6.1.12]
	... 13 more
Caused by: java.lang.IllegalArgumentException: standardService.connector.startFailed
	at org.apache.catalina.core.StandardService.addConnector(StandardService.java:222) ~[tomcat-embed-core-10.1.28.jar:10.1.28]
	at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.addPreviouslyRemovedConnectors(TomcatWebServer.java:310) ~[spring-boot-3.3.3.jar:3.3.3]
	at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:236) ~[spring-boot-3.3.3.jar:3.3.3]
	at org.springframework.boot.web.servlet.context.WebServerStartStopLifecycle.start(WebServerStartStopLifecycle.java:44) ~[spring-boot-3.3.3.jar:3.3.3]
	at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:285) ~[spring-context-6.1.12.jar:6.1.12]
	... 13 more
Caused by: org.apache.catalina.LifecycleException: Protocol handler start failed
	at org.apache.catalina.connector.Connector.startInternal(Connector.java:1061) ~[tomcat-embed-core-10.1.28.jar:10.1.28]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) ~[tomcat-embed-core-10.1.28.jar:10.1.28]
	at org.apache.catalina.core.StandardService.addConnector(StandardService.java:219) ~[tomcat-embed-core-10.1.28.jar:10.1.28]
	at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.addPreviouslyRemovedConnectors(TomcatWebServer.java:310) ~[spring-boot-3.3.3.jar:3.3.3]
	at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:236) ~[spring-boot-3.3.3.jar:3.3.3]
	at org.springframework.boot.web.servlet.context.WebServerStartStopLifecycle.start(WebServerStartStopLifecycle.java:44) ~[spring-boot-3.3.3.jar:3.3.3]
	at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:285) ~[spring-context-6.1.12.jar:6.1.12]
	... 13 more
Caused by: java.util.concurrent.TimeoutException: failed to get service[zero-trust-backend-gateway] in 10000ms
	at org.openziti.impl.ZitiContextImpl.getService(ZitiContextImpl.kt:558) ~[ziti-0.34.0.jar:0.34.0]
	at org.openziti.springboot.ZitiProtocol.start(ZitiProtocol.kt:46) ~[ziti-springboot-0.34.0.jar:0.34.0]
	at org.apache.catalina.connector.Connector.startInternal(Connector.java:1058) ~[tomcat-embed-core-10.1.28.jar:10.1.28]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) ~[tomcat-embed-core-10.1.28.jar:10.1.28]
	at org.apache.catalina.core.StandardService.addConnector(StandardService.java:219) ~[tomcat-embed-core-10.1.28.jar:10.1.28]
	at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.addPreviouslyRemovedConnectors(TomcatWebServer.java:310) ~[spring-boot-3.3.3.jar:3.3.3]
	at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:236) ~[spring-boot-3.3.3.jar:3.3.3]
	at org.springframework.boot.web.servlet.context.WebServerStartStopLifecycle.start(WebServerStartStopLifecycle.java:44) ~[spring-boot-3.3.3.jar:3.3.3]
	at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:285) ~[spring-context-6.1.12.jar:6.1.12]
	... 13 more

I suspect there could be other root causes triggering a service connection timeout during the Protocol Handler initialization. Shall I provide any further supporting information?

Alright! Let me fill in some extra SDN info:

When I run ziti -v in the Docker container named ziti-controller-1, it outputs v2.0.0. Meanwhile, the ZAC web page lists its version as 4.2.0.I reckon the problem is down to mismatched specs between ziti-sdk-jvm and SDN.