claude-code - 💡(How to fix) Fix CoreFoundation plist parse warning on startup when computer-use MCP is enabled (macOS) [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#49700Fetched 2026-04-17 08:33:52
View on GitHub
Comments
0
Participants
1
Timeline
3
Reactions
0
Author
Participants
Timeline (top)
labeled ×3

When the built-in computer-use MCP server is enabled for a project, Claude Code prints two identical CFPropertyListCreateFromXMLData() warnings to stderr on every interactive startup in that project's directory:

2026-04-16 23:19:55.130 claude[38732:6432735] CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary on line 3. Parsing will be abandoned. Break on _CFPropertyListMissingSemicolon to debug.
2026-04-16 23:19:55.130 claude[38732:6432735] CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary on line 3. Parsing will be abandoned. Break on _CFPropertyListMissingSemicolon to debug.

CF abandons the parse and Claude continues normally — the tool still works — so this is cosmetic, but the warning is noisy and looks alarming.

Root Cause

When the built-in computer-use MCP server is enabled for a project, Claude Code prints two identical CFPropertyListCreateFromXMLData() warnings to stderr on every interactive startup in that project's directory:

2026-04-16 23:19:55.130 claude[38732:6432735] CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary on line 3. Parsing will be abandoned. Break on _CFPropertyListMissingSemicolon to debug.
2026-04-16 23:19:55.130 claude[38732:6432735] CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary on line 3. Parsing will be abandoned. Break on _CFPropertyListMissingSemicolon to debug.

CF abandons the parse and Claude continues normally — the tool still works — so this is cosmetic, but the warning is noisy and looks alarming.

Fix Action

Workaround

Remove "computer-use" from enabledMcpServers for the project, or launch with claude 2>/dev/null (hides all stderr).

Code Example

2026-04-16 23:19:55.130 claude[38732:6432735] CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary on line 3. Parsing will be abandoned. Break on _CFPropertyListMissingSemicolon to debug.
2026-04-16 23:19:55.130 claude[38732:6432735] CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary on line 3. Parsing will be abandoned. Break on _CFPropertyListMissingSemicolon to debug.

---

"projects": {
     "/path/to/project": { "enabledMcpServers": ["computer-use"], ... }
   }
RAW_BUFFERClick to expand / collapse

Summary

When the built-in computer-use MCP server is enabled for a project, Claude Code prints two identical CFPropertyListCreateFromXMLData() warnings to stderr on every interactive startup in that project's directory:

2026-04-16 23:19:55.130 claude[38732:6432735] CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary on line 3. Parsing will be abandoned. Break on _CFPropertyListMissingSemicolon to debug.
2026-04-16 23:19:55.130 claude[38732:6432735] CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary on line 3. Parsing will be abandoned. Break on _CFPropertyListMissingSemicolon to debug.

CF abandons the parse and Claude continues normally — the tool still works — so this is cosmetic, but the warning is noisy and looks alarming.

Reproduction

  1. macOS 14.5 (arm64), Claude Code 2.1.112 installed to ~/.local/bin/claude (native)
  2. Enable computer-use for a project in ~/.claude.json:
    "projects": {
      "/path/to/project": { "enabledMcpServers": ["computer-use"], ... }
    }
  3. cd /path/to/project && claude → warnings appear on stderr at startup
  4. Same claude in any directory where computer-use is not in enabledMcpServers → no warnings

Investigation

  • otool -L on the claude binary only links libSystem, libicucore, libresolv, libc++. No static link to CoreFoundation or Security.
  • Strings in the binary show runtime dlopen of /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation and /System/Library/Frameworks/Security.framework/Security, plus references to AXIsProcessTrustedWithOptions and CG event APIs — i.e. the FFI bindings used by computer-use.
  • The warning is emitted only when computer-use is in enabledMcpServers for the cwd's project — confirmed by toggling that single field and re-running.
  • CFPropertyListCreateFromXMLData with an old-style-plist "missing semicolon on line 3" is what CF logs when it's handed JSON-ish or non-plist text. Something in the FFI init path (or a framework it loads transitively) is passing non-plist bytes into the plist parser.

Expected

No stderr noise on startup when computer-use is enabled.

Workaround

Remove "computer-use" from enabledMcpServers for the project, or launch with claude 2>/dev/null (hides all stderr).

Environment

  • macOS 14.5 (23F79), arm64
  • Claude Code 2.1.112 (native install)

extent analysis

TL;DR

The most likely fix is to identify and correct the non-plist data being passed to CFPropertyListCreateFromXMLData() when computer-use is enabled.

Guidance

  • Investigate the FFI init path and frameworks loaded transitively to find the source of non-plist data being passed to CFPropertyListCreateFromXMLData().
  • Verify that the issue is resolved by removing "computer-use" from enabledMcpServers for the project or launching with claude 2>/dev/null.
  • Check the computer-use implementation to ensure it is not passing invalid data to the plist parser.
  • Review the CoreFoundation and Security frameworks' documentation to understand how to properly handle plist data.

Example

No code snippet is provided as the issue is related to the interaction between the computer-use implementation and the CoreFoundation framework.

Notes

The issue is cosmetic and does not affect the functionality of the tool, but it is still important to address to prevent unnecessary noise in the stderr output. The workaround of removing "computer-use" from enabledMcpServers or launching with claude 2>/dev/null can be used temporarily until a proper fix is found.

Recommendation

Apply workaround: Remove "computer-use" from enabledMcpServers for the project or launch with claude 2>/dev/null, as this will hide the stderr noise until a proper fix is found.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix CoreFoundation plist parse warning on startup when computer-use MCP is enabled (macOS) [1 participants]