Skip to content
Latchkey

HTTPie --ignore-stdin: Stop Hangs in Pipelines

http --ignore-stdin tells HTTPie to ignore piped or redirected stdin instead of treating it as the request body.

When HTTPie detects that stdin is not a terminal, it reads stdin as the request body. In a CI shell that can silently turn a GET into a hanging read; --ignore-stdin disables that behavior.

What it does

By default HTTPie reads redirected stdin and uses it as the request body. In non-interactive environments (CI runners, cron, subshells) stdin is often a pipe that never closes, so HTTPie blocks forever. --ignore-stdin makes HTTPie ignore stdin entirely and send the request immediately.

Common usage

Terminal
http --ignore-stdin GET example.com/health
# in a loop or subshell where stdin is a pipe
for i in 1 2 3; do http --ignore-stdin GET :8080/ping; done

Options

FlagWhat it does
--ignore-stdinDo not read stdin, even when it is redirected
--quiet, -qSuppress output; combine for a pure exit-code check
--timeout <sec>Bound the request so a stuck call still ends

In CI

Make --ignore-stdin a habit for every HTTPie call in a pipeline unless you are deliberately sending a body from stdin. It is the single most common cause of HTTPie jobs that appear to hang until the runner timeout kills them.

Common errors in CI

A job that stalls on an http GET with no error and is eventually killed by the runner is HTTPie blocking on stdin; add --ignore-stdin. If you actually need to send a body, keep stdin but add --timeout so a never-closing pipe cannot hang indefinitely.

Related guides

Run this faster and cheaper on Latchkey managed runners. Start free →