openclaw - ✅(Solved) Fix [Bug]: Installer hangs and truncates function "warn_shell_path_missing_di" in install.sh presumably due to stdin consumption from "curl | bash" [1 pull requests, 5 comments, 3 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#73814Fetched 2026-04-29 06:14:47
View on GitHub
Comments
5
Participants
3
Timeline
9
Reactions
0
Timeline (top)
commented ×5cross-referenced ×2labeled ×2

Running the install command "curl -fsSL https://openclaw.ai/install.sh | bash" from the documentation causes the script to hang indefinitely (for more than 20 minutes, and multiple times) and throw a "command not found" error for a truncated function name: bash: line 2104: warn_shell_path_missing_di: command not found

The error was thrown only after waiting 20 minutes, pressing enter a couple times, then finally ctrl+c to end it.

Error Message

Running the install command "curl -fsSL https://openclaw.ai/install.sh | bash" from the documentation causes the script to hang indefinitely (for more than 20 minutes, and multiple times) and throw a "command not found" error for a truncated function name: The error was thrown only after waiting 20 minutes, pressing enter a couple times, then finally ctrl+c to end it. However, I do have a copy of the error here: What I think is the case here, is that, when an interactive prompt fires it ends up consuming a chunk of the incoming script stream. When bash resumes executing the pipe, it reads the mangled leftover string which in this case was "warn_shell_path_missing_di", and thus, throws a command not found error, and hangs because the prompt is disconnected from the actual TTY.

Root Cause

The third time i ran curl, you can see that there is not any proceeding lines. That is because it was hanging. The previous two times I just did ctrl+c

Fix Action

Fix / Workaround

The workaround here that I used was this sequence of commands:

PR fix notes

PR #73830: docs: add -s -- flags to curl|bash install to prevent stdin consumption

Description (problem / solution / changelog)

Summary

Fixes #73814

The install.sh script uses interactive prompts (via gum) that consume stdin. When the script is piped via curl | bash, stdin is occupied by the script stream, causing the prompts to consume portions of the script itself, resulting in truncated function names and indefinite hangs.

Solution

Added -s -- flags to the install command in the getting started documentation:

curl -fsSL https://openclaw.ai/install.sh | bash -s --

The -s -- flags prevent the bash subshell from allowing stdin to reach the script interactive prompts. This is a standard pattern for piped installation scripts.

Testing

  • Markdown linting passed (0 errors)
  • Documentation renders correctly

Disclosure

This contribution was developed with AI assistance.

Changed files

  • docs/start/getting-started.md (modified, +2/-1)

Code Example

The third time i ran curl, you can see that there is not any proceeding lines. That is because it was hanging. The previous two times I just did ctrl+c

### 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

NA

### Logs, screenshots, and evidence

---

### Impact and severity

Affected: Initial installation (with install.sh)
Severity: Annoying
Frequency: 3/3
Consequence: Failed installation via recommended piped curl command

### Additional information

I cloned the repository and verified via grep that the function warn_shell_path_missing_dir() is spelled correctly in the source code(install.sh). 

The truncation is presumably occurring at runtime due to stdin stealing.

Because the installer is interactive (i think through gum?), the UI prompts are attempting to read from stdin to capture user input, but, because the script is being piped via "curl ... | bash" , stdin is currently occupied by the script's  stream.

What I think is the case here, is that, when an interactive prompt fires it ends up consuming a chunk of the incoming script stream. When bash resumes executing the pipe, it reads the mangled leftover string which in this case was "warn_shell_path_missing_di", and thus, throws a command not found error, and hangs because the prompt is disconnected from the actual TTY.

The workaround here that I used was this sequence of commands:
RAW_BUFFERClick to expand / collapse

Bug type

Crash (process/app exits or hangs)

Beta release blocker

No

Summary

Running the install command "curl -fsSL https://openclaw.ai/install.sh | bash" from the documentation causes the script to hang indefinitely (for more than 20 minutes, and multiple times) and throw a "command not found" error for a truncated function name: bash: line 2104: warn_shell_path_missing_di: command not found

The error was thrown only after waiting 20 minutes, pressing enter a couple times, then finally ctrl+c to end it.

Steps to reproduce

Simply run "curl -fsSL https://openclaw.ai/install.sh | bash" per documentation. I ran this in wsl2 Ubuntu 24.04.1 LTS.

One host windows I did not get this problem(from what I remember atleast)

Expected behavior

According to the getting started documentation at https://docs.openclaw.ai/start/getting-started, this is the expected behavior:

<img width="1210" height="866" alt="Image" src="https://github.com/user-attachments/assets/a1bd4c97-215d-457c-a8d5-9a7d523cf779" />

Actual behavior

I didn't end up taking a photo when it happened, but I had to just remove the pipe and run ./install.sh manually (which is fine, but isn't expected per documentation).

However, I do have a copy of the error here:

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



^Cbash: line 2104: warn_shell_path_missing_di: command not found

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

^Cbash: line 2104: warn_shell_path_missing_di: command not found

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

The third time i ran curl, you can see that there is not any proceeding lines. That is because it was hanging. The previous two times I just did ctrl+c

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

NA

Logs, screenshots, and evidence

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



^Cbash: line 2104: warn_shell_path_missing_di: command not found

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

^Cbash: line 2104: warn_shell_path_missing_di: command not found

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

Impact and severity

Affected: Initial installation (with install.sh) Severity: Annoying Frequency: 3/3 Consequence: Failed installation via recommended piped curl command

Additional information

I cloned the repository and verified via grep that the function warn_shell_path_missing_dir() is spelled correctly in the source code(install.sh).

The truncation is presumably occurring at runtime due to stdin stealing.

Because the installer is interactive (i think through gum?), the UI prompts are attempting to read from stdin to capture user input, but, because the script is being piped via "curl ... | bash" , stdin is currently occupied by the script's stream.

What I think is the case here, is that, when an interactive prompt fires it ends up consuming a chunk of the incoming script stream. When bash resumes executing the pipe, it reads the mangled leftover string which in this case was "warn_shell_path_missing_di", and thus, throws a command not found error, and hangs because the prompt is disconnected from the actual TTY.

The workaround here that I used was this sequence of commands:

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

It's possible this is just some weird issue that only happens on my my end, but, my thought process for why it happened I think makes sense, and would theoretically be applicable to other users given it's the same code from the same repo.

extent analysis

TL;DR

The issue can be resolved by downloading the install script and running it directly instead of piping it to bash, to avoid stdin conflicts with interactive prompts.

Guidance

  • The problem is likely caused by the interactive nature of the install script, which attempts to read from stdin, conflicting with the script being piped from curl.
  • To verify this, try running the script with the workaround provided: curl -fsSL https://openclaw.ai/install.sh -o install.sh; chmod +x install.sh; ./install.sh.
  • If the issue persists, investigate the use of stdin in the install script, particularly with the gum library, to ensure it is properly handling input and output streams.
  • Consider modifying the install script to handle piping from curl more robustly, or documenting the workaround as a recommended installation method.

Example

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

Notes

This issue may be specific to the combination of the interactive install script and the piping from curl, and may not affect all users. However, documenting the workaround and investigating the script's handling of stdin can help prevent similar issues in the future.

Recommendation

Apply the workaround by downloading the install script and running it directly, as it avoids the stdin conflicts and allows for a successful installation.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

According to the getting started documentation at https://docs.openclaw.ai/start/getting-started, this is the expected behavior:

<img width="1210" height="866" alt="Image" src="https://github.com/user-attachments/assets/a1bd4c97-215d-457c-a8d5-9a7d523cf779" />

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - ✅(Solved) Fix [Bug]: Installer hangs and truncates function "warn_shell_path_missing_di" in install.sh presumably due to stdin consumption from "curl | bash" [1 pull requests, 5 comments, 3 participants]