CFPropertyList warning at interactive startup on macOS

Resolved 💬 1 comment Opened May 8, 2026 by hjp7461 Closed Jun 5, 2026

Bug Report: CFPropertyList warning at interactive startup on macOS

Summary

Claude Code v2.1.133 emits two CFPropertyListCreateFromXMLData() warnings to stderr at interactive TUI startup on macOS. The warnings are benign (CF abandons the parse and the binary continues), but they leak into the terminal and confuse users.

2026-05-08 13:59:18.112 claude[50833:2422996] CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary on line 3. Parsing will be abandoned. Break on _CFPropertyListMissingSemicolon to debug.
2026-05-08 13:59:18.113 claude[50833:2422996] CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary on line 3. Parsing will be abandoned. Break on _CFPropertyListMissingSemicolon to debug.

Both warnings come from the main claude PID (not a child process), within ~1 ms of each other.

Reproduction

  1. macOS 15.7.5 (Build 24G624), x86_64
  2. claude --version → 2.1.133 (Claude Code)
  3. Launch interactive mode: claude → warnings appear during startup
  4. Warnings do not appear with claude --version, claude --help, or claude --print "hi"

What I ruled out

I confirmed the warning is not caused by a corrupt plist on disk:

| Check | Result |
| --- | --- |
| plutil -lint ~/Library/LaunchAgents/com.claude.fix-hooks.plist | OK |
| plutil -lint ~/Library/Preferences/.GlobalPreferences.plist | OK |
| plutil -lint on every plist in ~/Library modified within the last week | All OK |
| plutil -lint ~/Library/Preferences/com.anthropic.* | OK |

The "line 3" in the warning refers to the line in the data CF tried to parse with the old-style parser (after XML parsing already failed) — not line 3 of any file on disk. So linting plist files won't surface the bad data.

Likely cause

Claude Code 2.1.133 is a native Mach-O binary that links against CoreFoundation. Some macOS API called only during interactive TUI startup (not in --print or --version mode) is feeding non-XML data to CFPropertyListCreateFromXMLData() internally. Candidates:

  • Pasteboard/clipboard read (NSPasteboard)
  • Notification Center registration
  • URL handler registration (com.anthropic.claude-code-url-handler shows up in the binary's strings)
  • Some stat/preference read that returns empty or non-plist data

The fact that the warning fires twice in quick succession suggests two independent CF read sites at startup.

Impact

Cosmetic only — CF abandons the parse and returns NULL, the binary continues normally. But the noise scrolls into the terminal at startup and looks alarming, especially because the message references "Break on _CFPropertyListMissingSemicolon to debug." which sounds like a real failure.

System

  • macOS 15.7.5 (24G624)
  • Architecture: x86_64
  • Claude Code: 2.1.133, installed via native installer at ~/.local/share/claude/versions/2.1.133

Suggested fix

Audit the macOS-specific startup paths in interactive mode for CF property list reads on data that might be empty or non-XML. Either validate the data before calling CFPropertyListCreateFromXMLData(), or use CFPropertyListCreateWithData() with explicit format handling so the old-style fallback doesn't trigger.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗