Skip to content

[Bug]: Node.js auto-installer fails silently with ioctl errors then falsely reports success before crashing #73837

Description

@ItsMeForLua

Bug type

Crash (process/app exits or hangs)

Beta release blocker

No

Summary

When running ./install.sh manually on WSL2 Ubuntu 24.04 (because of this previously stated Issue#73814 the Node.js auto-installation step fails silently with ioctl errors, falsely reports ✓ Node.js v22 installed, then immediately crashes with ERROR Node.js v22+ is required. The installer never actually installed Node.js, but did not detect or report the failure before continuing.

Steps to reproduce

On WSL2 Ubuntu 24.04.1 LTS (or adjacent), download the installer manually:

curl -fsSL https://openclaw.ai/install.sh -o install.sh
chmod +x install.sh
./install.sh

Then just allow the installer to reach the Node.js step and proceed WITHOUT already pre-installing Node.js(you're wanting to see if it succeeds in auto installation).

Expected behavior

Either, Node.js installs successfully and the installer continues, or the installer detects the installation failure and exits with an accurate error

Actual behavior

The installer runs apt to install Node.js, which fails with ioctl errors (likely due to apt attempting interactive terminal behavior in a context that doesn't support it). Despite this, the installer prints:
✓ Node.js v22 installed
It then continues and hits its own Node.js version check, which correctly detects Node is absent and crashes:
ERROR Node.js v22+ is required

OpenClaw version

OpenClaw 2026.4.26

Operating system

Ubuntu 24.04 LTS

Install method

curl?

Model

NA

Provider / routing chain

NA

Additional provider/model setup details

The apt invocation in the installer is likely missing DEBIAN_FRONTEND=noninteractive, so it presumably attempts interactive prompts that fail in WSL2's terminal context and with ioctl errors.
The installer's verification step done post-hoc does not really confirm that the Node.js binary is present and functional before reporting success; ergo, it presumably checks the apt exit code, which may not correctly reflect the failure. (i think)

Logs, screenshots, and evidence

bash

[andreu@Johnny: ~] curl -fsSL https://openclaw.ai/install.sh -o install.sh

[andreu@Johnny: ~] chmod +x install.sh

[andreu@Johnny: ~] ./install.sh

╭─────────────────────────────────────────────────────────────────────────────╮

│                                                                             │

│  🦞 OpenClaw Installer                                                      │

│  I keep secrets like a vault... unless you print them in debug logs again.  │

│  modern installer mode                                                      │

│                                                                             │

╰─────────────────────────────────────────────────────────────────────────────╯



✓ gum bootstrapped (temp, verified, v0.17.0)

✓ Detected: linux



Install plan



OS                  linux

Install method      npm

Requested version   latest

INFO Existing OpenClaw installation detected, upgrading



[1/3] Preparing environment



INFO Node.js not found, installing it now

INFO Installing Node.js via NodeSource

INFO Administrator privileges required; enter your password

-------------Removed the Password Prompt Here Just Cause it made me uncomftorable---

INFO Installing Linux build tools (make/g++/cmake/python3)

inappropriate ioctl for device

inappropriate ioctl for device

✓ Build tools installed

inappropriate ioctl for device

inappropriate ioctl for device

✓ Node.js v22 installed

ERROR Node.js v22+ is required but could not be activated on PATH

Detected node: (not found)

Current version: unknown

Install Node.js 22+ manually: https://nodejs.org

[andreu@Johnny: ~]

Impact and severity

Affected: Users during installation of install.sh
Severity: annoying, but could block workflow for less linux profficient users
Frequency: Not sure
consequence: Failed installation via install.sh

Additional information

Pre-install Node.js v22 manually via NodeSource before running the installer:
bashcurl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs
node -v
./install.sh

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingbug:crashProcess/app exits unexpectedly or hangsstaleMarked as stale due to inactivity

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions