-
Notifications
You must be signed in to change notification settings - Fork 173
rpc: avoid blocking startup on an undetermined Contacts permission #186
Copy link
Copy link
Closed
Labels
P1Urgent regression or broken agent/channel workflow affecting real users now.Urgent regression or broken agent/channel workflow affecting real users now.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.ClawSweeper found an open linked pull request for this issue.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:crash-loopThis issue is about crashes, hangs, restart loops, or process-level availability.This issue is about crashes, hangs, restart loops, or process-level availability.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Description
Metadata
Metadata
Assignees
Labels
P1Urgent regression or broken agent/channel workflow affecting real users now.Urgent regression or broken agent/channel workflow affecting real users now.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.ClawSweeper found an open linked pull request for this issue.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:crash-loopThis issue is about crashes, hangs, restart loops, or process-level availability.This issue is about crashes, hangs, restart loops, or process-level availability.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Type
Fields
Priority
None yet
imsg rpcinitializes Contacts before starting the JSON-RPC server:RpcCommand.swiftcallsawait ContactResolver.create().requestIfNeeded.notDeterminedthen awaitsCNContactStore.requestAccessIn a headless Aqua-domain LaunchAgent, that authorization request can remain pending indefinitely. The process stays alive but accepts no JSON-RPC requests, so unrelated methods such as
chats.list,messages.history, andsend.richall hang before the server starts. We reproduced this on macOS with imsg 0.12.3 and verified the same call path on currentmain.ContactResolveralready supports the right fail-open-for-metadata behavior:.skipIfNotDeterminedreturnsNoOpContactResolver(contactsUnavailable: true). Could the RPC entrypoint use:Interactive CLI commands can keep the existing default. RPC callers can then start reliably without Contacts display-name resolution, while authorized installations continue loading contacts normally.
A downstream watchdog now bounds requests, but fixing the RPC startup policy avoids the native wedge itself.