I've successfully built ziti-edge-tunnel binary to run inside Teltonika router RUT956. My original source of info was this Netfoundry blog: https://support.netfoundry.io/hc/en-us/articles/4413015431949-NetFoundry-for-Zero-Trust-IOT-Edge-embedded-Networking
After that, I've tried to connect to my openziti controller. In the meantime every tunneler has successfully connected: macOS, Linux, Windows. But ziti-edge-tunnel is unable to enroll the JWT identity from the controller.
This is the error message:
root@RUT956:~# /usr/bin/ziti-edge-tunnel enroll --jwt /tmp/rut956-kimi.jwt --identity /etc/ziti/rut956-kimi.json
(14670)[ 0.000] INFO ziti-sdk:utils.c:199 ziti_log_set_level() set log level: root=3/INFO
(14670)[ 0.000] INFO ziti-sdk:utils.c:170 ziti_log_init() Ziti C SDK version 1.15.0 @gf66be3f(HEAD) starting at (2026-05-02T05:51:09.323)
(14670)[ 0.000] INFO ziti-sdk:ziti_enroll.c:124 ziti_enroll() Ziti C SDK version 1.15.0 @gf66be3f(HEAD) starting enrollment at (2026-05-02T05:51:09.325)
(14670)[ 0.000] INFO ziti-sdk:ziti_ctrl.c:617 ziti_ctrl_init() ctrl[``https://zerotrust.example:1280``] controller initialized
(14670)[ 0.000] INFO ziti-sdk:ziti_ctrl.c:617 ziti_ctrl_init() ctrl[``https://zerotrust.example:1280``] controller initialized
(14670)[ 0.000] WARN ziti-sdk:ziti_ctrl.c:179 ctrl_resp_cb() ctrl[``https://zerotrust.example:1280``] request[/version] failed: -130(software caused connection abort)
(14670)[ 0.000] WARN ziti-sdk:ziti_ctrl.c:338 internal_version_cb() ctrl[``https://zerotrust.example:1280``] CONTROLLER_UNAVAILABLE(software caused connection abort)
(14670)[ 0.000] WARN ziti-sdk:ziti_ctrl.c:179 ctrl_resp_cb() ctrl[``https://zerotrust.example:1280``] request[/enroll] failed: -130(software caused connection abort)
(14670)[ 0.000] INFO ziti-sdk:ziti_ctrl.c:182 ctrl_resp_cb() ctrl[``https://zerotrust.example:1280``] attempting to switch endpoint
(14670)[ 0.000] WARN ziti-sdk:ziti_ctrl.c:582 ctrl_next_ep() ctrl[``https://zerotrust.example:1280``] no controllers are online
(14670)[ 0.000] ERROR ziti-sdk:ziti_enroll.c:446 enroll_cb() failed to enroll with controller: ``https://zerotrust.example:1280`` CONTROLLER_UNAVAILABLE[software caused connection abort] reason
(14670)[ 0.000] ERROR ziti-edge-tunnel:ziti-edge-tunnel.c:1767 enroll_cb() enrollment failed: ziti controller is not available(-16)
I know troubleshooting like this could be hard, so I need help for how to document this case and which part of the compilation, maybe like:
-
SDK version
-
Target
-
Toolchain version
-
TLS: mbedTLS version
-
ziti-tunnel-sdk-c version
I'm not looking for easy/magical way to troubleshoot this case, but I'm willing to help someone in this forum who would like to give me the systematic way to solve this problem. But if any of you who already has tested Teltonika RUT956 ziti-edge-tunnel binary which successfully enrolled and run the openziti tunnel, and can give me the file & dependencies to tried it out, I'm more than welcome.