Skip to main content
Question

Figma desktop leaks ScreenCaptureKit sessions — WindowServer memory grows to ~20 GB over multi-day uptime, freezing the system

  • June 30, 2026
  • 1 reply
  • 9 views

Joao Rios

Environment

  • Device: MacBook Air (M3, 2024), 16 GB RAM
  • macOS: [ex: Sequoia 15.1]
  • Figma desktop app: [126.6.12]

Summary
The Figma desktop app appears to create ScreenCaptureKit (SCStream) capture sessions and never tears them down, leaking them over time. After ~10 days of uptime, dozens of screen-capture sessions accumulate, many still actively capturing at ~30 fps, driving WindowServer memory to ~20 GB, exhausting RAM, forcing 14 GB of swap, and freezing the whole machine. The sessions persist even after Figma is quit (they become orphaned in replayd) and are only cleared by a reboot.

Suspected trigger
The on-screen color picker / eyedropper (which samples pixels from the screen and requires Screen Recording). It froze on every use; each invocation appears to leave an open capture stream behind instead of closing it.

Impact

  • WindowServer resident/footprint memory grew to 20 GB (normal baseline ~100–500 MB).
  • RAM (16 GB) exhausted → 13.5 GB swap used → sustained swap thrashing → system-wide freezing, independent of how many windows are open.
  • Worsens with uptime; quitting Figma does not release the leaked sessions (orphaned), only a reboot does.

Evidence
macOS Control Center → Privacy showed Figma → Screen Recording active even with no Figma window open.

Live capture session counts via replayd health logs:

sudo log show --last 5s --predicate 'process=="replayd"' | grep "setupHealthMonitor" \
| grep -oE "screenframeCount=[0-9]+" | sort | uniq -c
29 screenframeCount=0 # orphaned/dead sessions
2 screenframeCount=73
40 screenframeCount=74 # ~50 sessions ACTIVELY capturing at ~30fps
8 screenframeCount=75

Total ~316 setupHealthMonitor log lines per 20 s window. One session reported _screenTimeSeconds=825444 (~9.5 days continuous), matching system uptime — i.e. a capture stream opened near boot and was never closed.

replayd logged repeated session creation (-[SCCaptureSession initWithStreamID:...clientBundleID:...]) and requireApprovalForScreenCaptureUsage, with new sessions still being created days into the session.

Actual behavior
Capture sessions accumulate (50+ active, 29+ orphaned), keep capturing at ~30 fps continuously, and survive app quit, leaking into WindowServer until reboot.

Workaround
Revoke Figma's Screen Recording permission (System Settings → Privacy & Security → Screen Recording), or quit/relaunch Figma frequently instead of leaving it open for days.

1 reply

ksn
Figmate
  • Community Support
  • July 1, 2026

Hey ​@Joao Rios - thank you for taking the time to report this to us. I’m going to get you connected with our technical quality team to investigate -- we definitely don’t want you to continuously experience performance degredation.

I’m following up with you via email -- your ticket number is #1993250. Please let me know if you did not receive it.