tinyhumansai/openhuman · error

missing value for --message

Error message

missing value for --message

What it means

The `openhuman sentry-test` probe requires the text to follow `--message` as the next token; the flag was the last argument, so `args.get(i + 1)` returned None. This parser does not inspect the value's shape, so unlike the launch-option parser it only fires at end-of-args — a following flag would be consumed as the message text.

Source

Thrown at src/core/cli.rs:243

/// DSN, the command exits non-zero with a diagnostic instead of silently
/// producing no telemetry.
///
/// Only compiled with the `crash-reporting` feature; the `#[cfg(not(...))]`
/// companion below returns a disabled-build error (mirrors the `mcp` CLI
/// precedent, where the subcommand arm + top-level help stay compiled and the
/// handler reports the build fact rather than a bogus "unknown command").
#[cfg(feature = "crash-reporting")]
fn run_sentry_test_command(args: &[String]) -> Result<()> {
    let mut message: Option<String> = None;
    let mut do_panic = false;
    let mut i = 0usize;

    while i < args.len() {
        match args[i].as_str() {
            "--message" => {
                message = Some(
                    args.get(i + 1)
                        .ok_or_else(|| anyhow::anyhow!("missing value for --message"))?
                        .clone(),
                );
                i += 2;
            }
            "--panic" => {
                do_panic = true;
                i += 1;
            }
            "-h" | "--help" => {
                println!("Usage: openhuman sentry-test [--message <text>] [--panic]");
                println!();
                println!("  --message <text>  Body of the Error-level event sent to Sentry");
                println!("                    (default: \"openhuman sentry-test ping\")");
                println!("  --panic           After capturing the event, trigger a panic so the");
                println!("                    panic integration reports it as a separate event.");
                println!();
                println!(
                    "Requires OPENHUMAN_CORE_SENTRY_DSN (or the legacy OPENHUMAN_SENTRY_DSN alias)"

View on GitHub (pinned to a221052e0d)

Solutions

  1. Pass the text as the next token: `openhuman sentry-test --message "my event text"`
  2. Omit `--message` entirely to use the built-in default "openhuman sentry-test ping"
  3. Check usage with `openhuman sentry-test --help`

Example fix

# before
openhuman sentry-test --message
# after
openhuman sentry-test --message "deploy verification"
Defensive patterns

Strategy: validation

Validate before calling

# bash: only append --message when a payload exists
args=(sentry-test)
[ -n "${MSG:-}" ] && args+=(--message "$MSG")
[ "${PANIC:-0}" = 1 ] && args+=(--panic)
openhuman "${args[@]}"

Prevention

When it happens

Trigger: `openhuman sentry-test --message` with nothing after it; a script truncating its argument list before the value.

Common situations: Testing the Sentry pipeline quickly and forgetting the payload; assuming a `--message=text` equals form works (it does not — that form is rejected as an unknown arg); shell arrays built with an odd length.

Related errors


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