Sorry Eugene, what do you mean by DM? Direct message? How can I send you this token? ![]()
yes...

Thank you but when I click on ikoby, I don't have the Message button.
that's frustrating. I'll see if that's some sort of discourse permission and follow-up
i've DM'ed you here to see if that unlocks whatever is going on . thx
Eric, I DM'd you the result of my test. everything looked OK
Eric, I believe I found the cause of the issue you're reporting.
It manifests only on Linux and is caused by a third party library incompatibility between our addon and nodejs runtime.
I'll publish a new version tomorrow
Eugene,
This is very good new! I'll be wainting for the update.
Thanks!
SDK version 0.26.0 is now available
Trying to install:
eric@testSdk:~/testSdk$ npm install @openziti/ziti-sdk-nodejs@0.26.0
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE package: '@openziti/ziti-sdk-nodejs@0.26.0',
npm warn EBADENGINE required: { node: '>=20.0.0' },
npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }
npm warn EBADENGINE }
npm error code 127
npm error path /home/eric/testSdk/node_modules/@openziti/ziti-sdk-nodejs
npm error command failed
npm error command sh -c node-pre-gyp install || npm run build
npm error response status 404 Not Found on https://github.com/openziti/ziti-sdk-nodejs/releases/download/0.26.0/ziti_sdk_nodejs-v0.26.0-node-v108-linux-x64.tar.gz
npm error
npm error > @openziti/ziti-sdk-nodejs@0.26.0 build
npm error > npm run build:configure && npm run build:make
npm error
npm error
npm error > @openziti/ziti-sdk-nodejs@0.26.0 build:configure
npm error > run-script-os
npm error [info] it worked if it ends with ok
npm error [info] using node-pre-gyp@2.0.3
npm error [info] using node@18.20.8 | linux | x64
npm error [info] check checked for "/home/eric/testSdk/node_modules/@openziti/ziti-sdk-nodejs/build/Release/ziti_sdk_nodejs.node" (not found)
npm error [log] GET https://github.com/openziti/ziti-sdk-nodejs/releases/download/0.26.0/ziti_sdk_nodejs-v0.26.0-node-v108-linux-x64.tar.gz
npm error [error] install response status 404 Not Found on https://github.com/openziti/ziti-sdk-nodejs/releases/download/0.26.0/ziti_sdk_nodejs-v0.26.0-node-v108-linux-x64.tar.gz
npm error [error] install error
npm error [error] stack Error: response status 404 Not Found on https://github.com/openziti/ziti-sdk-nodejs/releases/download/0.26.0/ziti_sdk_nodejs-v0.26.0-node-v108-linux-x64.tar.gz
npm error at /home/eric/testSdk/node_modules/@mapbox/node-pre-gyp/lib/install.js:135:15
npm error at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
npm error [error] System Linux 6.1.0-43-amd64
npm error [error] command "/home/eric/.nvm/versions/node/v18.20.8/bin/node" "/home/eric/testSdk/node_modules/.bin/node-pre-gyp" "install"
npm error [error] cwd /home/eric/testSdk/node_modules/@openziti/ziti-sdk-nodejs
npm error [error] node -v v18.20.8
npm error [error] node-pre-gyp -v v2.0.3
npm error [error] not ok
npm error sh: 1: run-script-os: not found
npm error A complete log of this run can be found in: /home/eric/.npm/_logs/2026-02-13T04_34_30_160Z-debug-0.log
eric@testSdk:~/testSdk$
I guess the file is here:
//https:github.com/openziti/ziti-sdk-nodejs/releases/
Then I have done a few things:
- as I use nodejs 25.6.1, I have downloaded this file
https://github.com/openziti/ziti-sdk-nodejs/releases/download/0.26.0/ziti_sdk_nodejs-v0.26.0-node-v141-linux-x64.tar.gz
- I have unzipped it in ~/testSdk/node_modules/@openziti/ziti-sdk-nodejs
- I have created a package.json file:
{
"name": "ziti-sdk-nodejs",
"version": "0.26.0",
"main": "Release/ziti_sdk_nodejs.node"
}
- Now trying to enroll passing the token file name to ziti.ziti_enroll;
eric@testSdk:~/testSdk$ ZITI_LOG=5 node test.js testSdk.jwt
(30352)[ 0.000] INFO ziti-sdk:utils.c:200 ziti_log_set_level() set log level: root=5/VERBOSE
(30352)[ 0.000] INFO ziti-sdk:utils.c:169 ziti_log_init() Ziti C SDK version 1.10.9 @g325edb5(HEAD) starting at (2026-02-13T05:38:50.205)
(30352)[ 0.000] INFO ziti-njs:ziti-add-on.c:47 Init() Ziti NodeJS SDK version 0.26.0@g325edb5(HEAD) starting at (2026-02-13T05:38:50.206)
(30352)[ 0.000] DEBUG ziti-njs:ziti-add-on.c:51 Init()
Version: 0.26.0
Build Date: 2026-02-12T16:53:36Z
Git Branch: HEAD
Git SHA: 2710356
OS: Linux
Arch: x86_64
using ziti version: 1.10.9
JS ziti_Enroll() entered
(30352)[ 0.000] INFO ziti-sdk:utils.c:200 ziti_log_set_level() set log level: root=5/VERBOSE
(30352)[ 0.000] INFO ziti-sdk:utils.c:169 ziti_log_init() Ziti C SDK version 1.10.9 @g325edb5(HEAD) starting at (2026-02-13T05:38:50.210)
(30352)[ 0.000] DEBUG ziti-njs:ziti_enroll.c:160 _ziti_enroll() entered
(30352)[ 0.000] DEBUG ziti-njs:ziti_enroll.c:186 _ziti_enroll() args[1] IS a napi_function
(30352)[ 0.000] INFO ziti-sdk:ziti_enroll.c:112 ziti_enroll() Ziti C SDK version 1.10.9 @g325edb5(HEAD) starting enrollment at (2026-02-13T05:38:50.210)
(30352)[ 0.000] DEBUG ziti-sdk:ziti_enroll.c:474 parse_enrollment_jwt() jwt signature is: wcu1K9AuauL7Jh7UgLobCalaoibwMP8KJhWF9GeJGeENnip6SNzWu_-IG1wY0ilp6oWv9RrInbv3DEG5iWBFvy9Lt_Pse4_cdZOYv8czVeX9Vp8_xEfEg70NHkUADQLtDwjYFkJYdpAvrYTjH7jxEgrDAKTkUVLsp3AbANDedN1OCrLzYa7fWvQjGUuXps_60YYnR1qHCfY3-XC1gvQGOM38w688QKUiuj7n1dV-UBXbS7D0cqjJq2XVnFzEIxhXcoBov9mJmpZc82In1BnAkIUY9_E_oLM5h_O0Tnt2rG6eOAkQtqpbKTzpfs-5bYq9-wBeFx4p_IlMyaRHKPJsAs4mPgeZYMfV1cGg2vNjAdi8ZcQLNg0xyMvrwXaH9A2LpIUgEJ8R3AZZE_7jkBOVrET_w7_HU4pYOUTZOPgFTxf7d77hhErno3CE7MueVOf11Pa5mjPPpMhungIDLePZSQxZIt6dpVtu0qlxRbjJIMY0Rk6cgjSb6ZxQXx9vYKHK1v-ku_nT_hWY8nTlqYZ0aIueAGov_ebzhLyq0Yrj0q-ixM9ZFCVn-Okt7QE5OHhrs-8AYl0yURGaXFnci1h5VoaHK_kZOlnkIioMj23oZQY1so4cGMTJLflTQmnU1i5jwiQF8grImcSGEGwsp6nRTLcXw54ogGBgwxVdFPrQy-0
(30352)[ 0.000] INFO ziti-sdk:ziti_ctrl.c:644 ziti_ctrl_init() ctrl[https://zpix.vigitronic.eu:8440] controller initialized
(30352)[ 0.000] DEBUG ziti-sdk:ziti_ctrl.c:655 ziti_ctrl_init() ctrl[https://zpix.vigitronic.eu:8440] ziti controller client initialized
(30352)[ 0.000] VERBOSE ziti-sdk:ziti_ctrl.c:147 start_request() ctrl[https://zpix.vigitronic.eu:8440] starting GET[/version]
(30352)[ 0.000] VERBOSE ziti-sdk:ziti_ctrl.c:147 start_request() ctrl[https://zpix.vigitronic.eu:8440] starting GET[/.well-known/est/cacerts]
JS ziti_enroll failed with error code (undefined/undefined)
eric@testSdk:~/testSdk$
- Then trying passing the token itself to ziti.ziti_enroll:
eric@testSdk:~/testSdk$ ZITI_LOG=5 node test.js testSdk.jwt
(30383)[ 0.000] INFO ziti-sdk:utils.c:200 ziti_log_set_level() set log level: root=5/VERBOSE
(30383)[ 0.000] INFO ziti-sdk:utils.c:169 ziti_log_init() Ziti C SDK version 1.10.9 @g325edb5(HEAD) starting at (2026-02-13T05:41:39.151)
(30383)[ 0.000] INFO ziti-njs:ziti-add-on.c:47 Init() Ziti NodeJS SDK version 0.26.0@g325edb5(HEAD) starting at (2026-02-13T05:41:39.152)
(30383)[ 0.000] DEBUG ziti-njs:ziti-add-on.c:51 Init()
Version: 0.26.0
Build Date: 2026-02-12T16:53:36Z
Git Branch: HEAD
Git SHA: 2710356
OS: Linux
Arch: x86_64
using ziti version: 1.10.9
JS ziti_Enroll() entered
(30383)[ 0.000] INFO ziti-sdk:utils.c:200 ziti_log_set_level() set log level: root=5/VERBOSE
(30383)[ 0.000] INFO ziti-sdk:utils.c:169 ziti_log_init() Ziti C SDK version 1.10.9 @g325edb5(HEAD) starting at (2026-02-13T05:41:39.155)
(30383)[ 0.000] DEBUG ziti-njs:ziti_enroll.c:160 _ziti_enroll() entered
(30383)[ 0.000] DEBUG ziti-njs:ziti_enroll.c:186 _ziti_enroll() args[1] IS a napi_function
(30383)[ 0.000] INFO ziti-sdk:ziti_enroll.c:112 ziti_enroll() Ziti C SDK version 1.10.9 @g325edb5(HEAD) starting enrollment at (2026-02-13T05:41:39.155)
(30383)[ 0.000] VERBOSE ziti-sdk:utils.c:642 load_file() path[eyJhbGciOiJSUzI1..] - -2/no such file or directory
(30383)[ 0.000] ERROR ziti-sdk:ziti_enroll.c:449 parse_enrollment_jwt() jwt input lacks a second dot
JS ziti_enroll failed with error code (undefined/undefined)
eric@testSdk:~/testSdk$
Can't do more on my side! ![]()
node 18 is no longer supported as it does not get security updates
you shouldn't need all of this manual stuff. You can use any of the current node LTS releases (20,22,24), or latest(25).
The install should succeed
I'll try again tomorrow from scratch and tell you.
Hi Eugene,
Here all all the steps I did:
- Remove all the node versions installed
- Install nodejs v24: got version 24.13.1
- npm @opensiti/ziti-sdk-nodejs
- launching my program to enroll
eric@testSdk:~/testSdk$ ZITI_LOG=5 node test.js testSdk.jwt
(45452)[ 0.000] INFO ziti-sdk:utils.c:200 ziti_log_set_level() set log level: root=5/VERBOSE
(45452)[ 0.000] INFO ziti-sdk:utils.c:169 ziti_log_init() Ziti C SDK version 1.10.9 @g325edb5(HEAD) starting at (2026-02-14T05:29:04.364)
(45452)[ 0.000] INFO ziti-njs:ziti-add-on.c:47 Init() Ziti NodeJS SDK version 0.26.0@g325edb5(HEAD) starting at (2026-02-14T05:29:04.364)
(45452)[ 0.000] DEBUG ziti-njs:ziti-add-on.c:51 Init()
Version: 0.26.0
Build Date: 2026-02-12T16:53:36Z
Git Branch: HEAD
Git SHA: 2710356
OS: Linux
Arch: x86_64
using ziti version: 1.10.9
JS ziti_Enroll() entered
(45452)[ 0.000] INFO ziti-sdk:utils.c:200 ziti_log_set_level() set log level: root=5/VERBOSE
(45452)[ 0.000] INFO ziti-sdk:utils.c:169 ziti_log_init() Ziti C SDK version 1.10.9 @g325edb5(HEAD) starting at (2026-02-14T05:29:04.371)
(45452)[ 0.000] DEBUG ziti-njs:ziti_enroll.c:160 _ziti_enroll() entered
(45452)[ 0.000] DEBUG ziti-njs:ziti_enroll.c:186 _ziti_enroll() args[1] IS a napi_function
(45452)[ 0.000] INFO ziti-sdk:ziti_enroll.c:112 ziti_enroll() Ziti C SDK version 1.10.9 @g325edb5(HEAD) starting enrollment at (2026-02-14T05:29:04.371)
(45452)[ 0.000] DEBUG ziti-sdk:ziti_enroll.c:474 parse_enrollment_jwt() jwt signature is: wcu1K9AuauL7Jh7UgLobCalaoibwMP8KJhWF9GeJGeENnip6SNzWu_-IG1wY0ilp6oWv9RrInbv3DEG5iWBFvy9Lt_Pse4_cdZOYv8czVeX9Vp8_xEfEg70NHkUADQLtDwjYFkJYdpAvrYTjH7jxEgrDAKTkUVLsp3AbANDedN1OCrLzYa7fWvQjGUuXps_60YYnR1qHCfY3-XC1gvQGOM38w688QKUiuj7n1dV-UBXbS7D0cqjJq2XVnFzEIxhXcoBov9mJmpZc82In1BnAkIUY9_E_oLM5h_O0Tnt2rG6eOAkQtqpbKTzpfs-5bYq9-wBeFx4p_IlMyaRHKPJsAs4mPgeZYMfV1cGg2vNjAdi8ZcQLNg0xyMvrwXaH9A2LpIUgEJ8R3AZZE_7jkBOVrET_w7_HU4pYOUTZOPgFTxf7d77hhErno3CE7MueVOf11Pa5mjPPpMhungIDLePZSQxZIt6dpVtu0qlxRbjJIMY0Rk6cgjSb6ZxQXx9vYKHK1v-ku_nT_hWY8nTlqYZ0aIueAGov_ebzhLyq0Yrj0q-ixM9ZFCVn-Okt7QE5OHhrs-8AYl0yURGaXFnci1h5VoaHK_kZOlnkIioMj23oZQY1so4cGMTJLflTQmnU1i5jwiQF8grImcSGEGwsp6nRTLcXw54ogGBgwxVdFPrQy-0
(45452)[ 0.000] INFO ziti-sdk:ziti_ctrl.c:644 ziti_ctrl_init() ctrl[https://zpix.vigitronic.eu:8440] controller initialized
(45452)[ 0.000] DEBUG ziti-sdk:ziti_ctrl.c:655 ziti_ctrl_init() ctrl[https://zpix.vigitronic.eu:8440] ziti controller client initialized
(45452)[ 0.000] VERBOSE ziti-sdk:ziti_ctrl.c:147 start_request() ctrl[https://zpix.vigitronic.eu:8440] starting GET[/version]
(45452)[ 0.000] VERBOSE ziti-sdk:ziti_ctrl.c:147 start_request() ctrl[https://zpix.vigitronic.eu:8440] starting GET[/.well-known/est/cacerts]
JS ziti_enroll failed with error code (undefined/undefined)
eric@testSdk:~/testSdk$
I did nothing manually there.
The signature shown above is identical to the third block in the token.
Let me just show my code again:
const fs = require('fs');
const binary = require('./node_modules/@mapbox/node-pre-gyp');
const ziti = require('@openziti/ziti-sdk-nodejs');
const result = ziti.ziti_sdk_version();
const path = require('path')
require('assert').notEqual(result,"");
console.log("using ziti version: " + ziti.ziti_sdk_version())
const ziti_Enroll = async (jwt_path) => {
console.log("JS ziti_Enroll() entered");
return new Promise((resolve, reject) => {
//const jwt = fs.readFileSync(jwt_path, 'utf8').trim();
let rc = ziti.ziti_enroll(
jwt_path,
(data) => {
if (data.identity) {
return resolve(data);
} else {
return reject(data);
}
}
);
});
};
(async () => {
let jwt_path = process.argv[2];
let data = await ziti_Enroll(jwt_path).catch((data) => {
console.log('JS ziti_enroll failed with error code (%o/%s)', data.status, data.err);
});
if (data && data.identity) {
console.log("data.identity is:\n\n%s\n", data.identity);
}
process.exit(0);
})();
my package.json file:
{
"dependencies": {
"@mapbox/node-pre-gyp": "^2.0.3",
"@openziti/ziti-sdk-nodejs": "^0.26.0"
}
}




