Skip to content

[Bug]: update status --json is not machine-readable when doctor emits warnings #24344

@glitch418x

Description

@glitch418x

Summary

openclaw update status --json prints Doctor warning blocks before the JSON payload, so downstream JSON parsers (e.g. jq) fail.

Steps to reproduce

  1. Use a config/state where Doctor emits any warning (example in my case: repeated channels.whatsapp.enabled warning).
  2. Run:
openclaw update status --json | jq '.availability.available'

Expected behavior

--json output should be valid JSON only (stdout), so piping to jq always works.

Actual behavior

Doctor text/banner is emitted before JSON, causing parse errors like:

jq: parse error: Invalid numeric literal at line 2, column 0

OpenClaw version

2026.2.22-2

Operating system

macOS 26.3 (arm64)

Install method

pnpm/global

Impact

Breaks automation and health checks that rely on --json (e.g. healthd checks for update availability).

Notes

Related-ish feature request: #9777 (--quiet to suppress Doctor warnings), but this looks like a bug because --json should be machine-readable regardless of warning state.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions