tinyhumansai/openhuman · error
OpenHuman could not reach its local runtime. Quit and reopen
Error message
OpenHuman could not reach its local runtime. Quit and reopen the app, then try signing in again.
What it means
Required-argument error from `openhuman memory ingest`. After the parsing loop, `file_path` is still None — only flags were supplied. Ingest has no default input and no default file: it must receive either a real path or the literal `-` for stdin.
Source
Thrown at app/src/components/oauth/oauthAuthReadiness.ts:165
'OpenHuman could not reach its local runtime. Quit and reopen the app, ' +
'then try signing in again.'
);
}
default:
return 'Sign-in is still starting up. Wait a few seconds and try again.';
}
}
/**
* Lightweight preflight before opening the system browser for OAuth.
* Blocks browser launch when the local auth runtime is not ready yet.
* `waitForOAuthAuthReadiness()` starts the local core when needed.
*/
export async function prepareOAuthLoginLaunch(): Promise<void> {
const quick = await waitForOAuthAuthReadiness(8_000);
if (!quick.ready) {
warnLog(`${logPrefix} pre-launch readiness`, quick);
throw new Error(oauthAuthReadinessUserMessage(quick.reason));
}
}
View on GitHub (pinned to a221052e0d)
Solutions
- Append a file path or `-` (stdin) to the command
- If piping, use `cat data.txt | openhuman memory ingest - -n docs`
- In scripts, default the variable: `FILE=${FILE:--}` so empty input degrades to stdin explicitly
Example fix
# before openhuman memory ingest -n docs -t "Notes" # after openhuman memory ingest -n docs -t "Notes" ./notes.md # or: ... -t "Notes" - < notes.md
Defensive patterns
Strategy: validation
Validate before calling
# bash: guarantee an input token exists before invoking
set -- ${1:+"$@"}
has_input=0
for a in "$@"; do case "$a" in -) has_input=1;; -*) ;; *) has_input=1;; esac; done
[ "$has_input" -eq 1 ] || set -- "$@" "${FILE:--}" # degrade to stdin explicitly
openhuman memory ingest "$@" Try / catch
if ! out=$(openhuman memory ingest "$@" 2>&1); then case "$out" in *"missing file argument"*) printf 'usage: ingest <file|-> [flags]\n' >&2; exit 2;; esac printf '%s\n' "$out" >&2; exit 1 fi
Prevention
- Default script inputs to '-' so empty variables still stream stdin
- Treat a missing input as a script bug: fail before invoking the CLI
When it happens
Trigger: `openhuman memory ingest -n docs` (flags only, no file); `openhuman memory ingest -v`; a wrapper that drops the file argument when a variable is empty (`openhuman memory ingest "$FILE"` with FILE unset yields an empty positional, not this error, but a conditional that skips it entirely does).
Common situations: Scripts where the input path comes from a variable that was not populated; interactive use where the user assumed stdin was implied; CI jobs piping data but forgetting the `-` token.
Related errors
- audio blob is empty
- audio blob is empty
- voice_not_compiled
- Recovery phrase is required.
- Failed to secure recovery phrase. Please try again.
AI-assisted analysis of tinyhumansai/openhuman@a221052e0d (2026-08-16).
Data as JSON: /api/errors/386b2b26edafffce.
Report an issue: GitHub.