raycast / raycast/extensions

Reclaim extension leaks zombie processes via Raycast Helper (Extensions), eventually exhausting macOS process limit

Open
#30,780 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug extension extension: reclaim-ai platform: macOS
Dominant language
TypeScript
Stars
7.8k
Forks
6.9k
Avg merge
2d 6h
Merged PRs (30d)
442

Description

Extension

https://www.raycast.com/reclaim-ai/reclaim-ai

Raycast Version

1.104.27

OS Version

macOS 26.6.2 (25G83)

Description

Issue > > The Reclaim extension appears to continuously create child processes that are not reaped by Raycast Helper (Extensions), resulting in an increasing number of zombie (<defunct>) processes. > > After approximately one day of normal use, I found 431 zombie processes, all with the same parent: > > text > 431 83439 > > > Resolving the parent PID: > > text > $ ps -p 83439 -o pid,ppid,command > PID PPID COMMAND > 83439 82673 Raycast Helper (Extensions) > > > The parent of that helper was Raycast itself: > > text > $ ps -p 82673 -o pid,ppid,command > PID PPID COMMAND > 82673 1 /Applications/Raycast.app/Contents/MacOS/Raycast > > > Inspecting the children showed hundreds of zombie processes: > > text > $ ps -axo pid,ppid,state,command | awk '$2 == 83439 && $3 ~ /^Z/' | head > 120 83439 Z <defunct> > 503 83439 Z <defunct> > 630 83439 Z <defunct> > 912 83439 Z <defunct> > 963 83439 Z <defunct> > ... > > > System impact > > This eventually exhausts the macOS per-user process limit. In my case: > > text > $ launchctl limit maxproc > maxproc 4000 6000 > > > Once the limit is approached/exhausted, applications can no longer spawn subprocesses and start failing with: > > text > Resource temporarily unavailable > > > The impact became system-wide: Terminal could no longer execute commands, Codex sessions stopped working, and even Activity Monitor crashed when attempting to launch lsof. > > Logging out of macOS cleared the accumulated zombie processes and restored normal operation. ```text > $ ps -axo state= | grep -c Z > 0 >

Steps To Reproduce

Reproduction / isolation > > I isolated the issue specifically to the Reclaim Raycast extension: > > 1. With Reclaim enabled, zombie processes continuously accumulate under Raycast Helper (Extensions). > 2. Disable the Reclaim extension. > 3. Zombie process creation immediately stops. > 4. With Reclaim disabled, the issue does not reproduce. > > Quitting Raycast also caused the existing zombies to disappear: ``` > > I tested other Raycast usage without Reclaim enabled and have not observed the zombie count increasing. > >

Current Behaviour

Actual behavior > > Zombie processes continuously accumulate under Raycast Helper (Extensions), eventually exhausting the macOS process limit and affecting unrelated applications system-wide. > > This seems potentially high severity because the leak is gradual and may take hours/days to become visible, at which point seemingly unrelated macOS applications begin crashing or failing to spawn processes.

Expected Behaviour

Expected behavior > > Child processes spawned by the Reclaim extension should be properly reaped after termination and should not remain as zombie processes. > >

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Open the Reclaim AI extension linked in the issue and reproduce the leak with Reclaim enabled, monitoring child processes under Raycast Helper (Extensions). Compare behavior after disabling the extension and quitting Raycast. Done means terminated child processes are reaped and no zombie count accumulates during extended use.

Written by the indexing model from the issue text.

Assessment

Tech stack
macos, typescript
Domain
operating-systems, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.