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

  1. Append a file path or `-` (stdin) to the command
  2. If piping, use `cat data.txt | openhuman memory ingest - -n docs`
  3. 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

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


AI-assisted analysis of tinyhumansai/openhuman@a221052e0d (2026-08-16). Data as JSON: /api/errors/386b2b26edafffce. Report an issue: GitHub.