Skip to content

rpc daemon inherits benign Apple Contacts.framework 'Could not fetch group … :ABGroup' stderr noise when CardDAV accounts are present (docs suggestion) #207

Description

@prashantkamani

Summary (docs suggestion — no code change requested)

On macOS hosts with third-party CardDAV contact accounts (Google, Yahoo, etc.), the long-lived imsg rpc --json daemon's stderr periodically carries Apple Contacts-framework noise like:

2026-08-04 00:32:38.518 imsg[88305:38969629] Could not fetch group for change type 1 with identifier <UUID>:ABGroup, making it a delete change type.

Roughly one line per contacts account per Contacts sync (~hourly), indefinitely. On our host (imsg 0.13.0, 4 CardDAV accounts): ~130 lines/day, steady for a month.

What it is (verified at v0.13.0, fa2f82d)

  • imsg links Contacts.framework for ContactResolver name resolution. Apple's change-history reconciliation runs in-process in any client of that framework, and logs this line (unified-log level Default) when it can't materialize an account's container/default group. The records are active; "delete change type" is the framework's designed fallback wording, not an actual deletion.
  • No imsg code is involved — the repo has no CNChangeHistory/group usage anywhere; the string isn't in the shipped binary. Messaging is completely unaffected.
  • Not TCC: verified granted with zero denials on our host. (So fix(rpc): do not block startup on undetermined Contacts auth #187's TTY-conditional contacts skip doesn't apply — an authorized headless daemon still loads contacts and still inherits this noise.)

Suggestion

A short note in docs/permissions.md (Contacts section) along the lines of: "With CardDAV accounts (Google/Yahoo/etc.), Apple's Contacts framework periodically writes benign Could not fetch group … :ABGroup reconciliation notes to the daemon's stderr. This is expected, harmless, and not produced by imsg. Host processes that capture imsg's stderr should not surface these lines at error level."

Context: OpenClaw currently blanket-logs imsg stderr at ERROR (openclaw/openclaw#79610, fix never merged — follow-up filed as openclaw/openclaw#119282), so every OpenClaw+imsg user with such accounts eventually walks this same diagnostic path. A docs note here would short-circuit it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low-risk cleanup, docs, polish, ergonomics, or speculative feature.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.clawsweeper:queueable-fixClawSweeper marked this issue as an existing queue_fix_pr work candidate.impact:ux-frictionUser-facing flow adds avoidable confusion or support burden without fully blocking progress.issue-rating: 🦪 silver shellfishThin issue quality; more reproduction proof or environment detail is needed.no-staleExempts this issue from stale automation.

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions