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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions