diegosouzapw/OmniRoute · error · Error
Existing tunnel-client failed integrity validation
Error message
Existing tunnel-client failed integrity validation
What it means
Error "Existing tunnel-client failed integrity validation" thrown in diegosouzapw/OmniRoute.
Source
Thrown at open-sse/executors/chatgpt-web-codex/tunnelClient.ts:213
if (!ownsSupervisorLease) return;
const status = tunnelSupervisorLeaseStatus();
if (status.ownedByCurrentProcess) rmSync(tunnelClientPaths().supervisorLease, { force: true });
ownsSupervisorLease = false;
}
export async function ensureTunnelClientInstalled(): Promise<string> {
const paths = tunnelClientPaths();
if (existsSync(paths.binary) && existsSync(paths.manifest)) {
const manifest = JSON.parse(readFileSync(paths.manifest, "utf8")) as Partial<InstallManifest>;
const actual = sha256(readFileSync(paths.binary));
if (
manifest.version === 1 &&
manifest.tunnelClientVersion === CHATGPT_WEB_CODEX_TUNNEL_VERSION &&
manifest.binarySha256 === actual
) {
return paths.binary;
}
throw new Error("Existing tunnel-client failed integrity validation");
}
const asset = tunnelPlatformAsset();
const [archive, checksumFile] = await Promise.all([
download(`${RELEASE_BASE}/${asset}`),
download(`${RELEASE_BASE}/SHA256SUMS.txt`),
]);
const expected = parseTunnelChecksum(new TextDecoder().decode(checksumFile), asset);
const archiveSha256 = sha256(archive);
if (archiveSha256 !== expected) throw new Error(`Checksum mismatch for ${asset}`);
const files = unzipSync(archive);
const executableName = process.platform === "win32" ? "tunnel-client.exe" : "tunnel-client";
const entry = Object.entries(files).find(([name]) => basename(name) === executableName);
if (!entry) throw new Error(`${asset} does not contain ${executableName}`);
atomicWriteFile(paths.binary, entry[1]);
if (process.platform !== "win32") chmodSync(paths.binary, 0o700);
const manifest: InstallManifest = {View on GitHub (pinned to a179ffed5b)
When it happens
Trigger: Thrown at open-sse/executors/chatgpt-web-codex/tunnelClient.ts:213 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of diegosouzapw/OmniRoute@a179ffed5b (2026-08-25).
Data as JSON: /api/errors/aeca573f640b86a6.
Report an issue: GitHub.