After upgrading to macOS 26 Tahoe, my MacBook Pro M1 Max experienced severe performance issues. While initial signs pointed to the new OS, investigation revealed a perfect storm of three distinct problems:

  1. Pre-existing ghost FileProvider extensions (affects ALL macOS versions)
  2. WindowServer bug affecting Electron apps (Tahoe-specific)
  3. Input lag from NSAutoHeuristic feature (Tahoe-specific)

What appeared to be a simple OS upgrade issue was actually more complex. The upgrade seemingly triggered dormant problems that had existed for months while adding new OS-specific issues. This combination created a nearly unusable system.

The Problem: Sudden Performance Degradation

After upgrading to macOS 26 Tahoe (including the 26.0.1 patch), my MacBook Pro M1 Max (32GB RAM) experienced severe performance degradation that persisted for over a week. This ruled out typical post-upgrade processes like Spotlight reindexing.

Observed Symptoms

System-Wide Issues:

  • Severe typing lag and delayed input across all applications, appearing at random times but very frequently
  • Significant system sluggishness
  • High battery drain

Specific Application Problems:

  • Raycast: CPU spikes up to 40% even when idle
  • Monologue (voice transcription): Heavy CPU usage during transcription, processing transcription taking significantly longer than usual (like 10×)
  • VoiceNotes: Significantly slower transcription processing
  • VS Code and other Electron apps: Severe performance degradation
  • General text input: Consistent typing lag across all applications, again not always, but frequent enough to drive me insane

The intermittent nature of these issues made diagnosis particularly challenging - the system would alternate between normal operation and complete unresponsiveness.


Root Cause #1: Ghost FileProvider Extensions

⚠️ Important: This issue affects any macOS version, not just macOS 26 Tahoe. Ghost FileProvider extensions occur when cloud storage applications are improperly uninstalled. However, major OS upgrades often trigger these dormant extensions to rescan or re-index, exposing the underlying problem.

Discovery Process

Running this terminal command revealed the issue:

brctl log -w --shorten

The logs revealed that Google Drive's FileProvider extension was still active - continuously rescanning for files every single second for over 16 hours - despite Google Drive being completely uninstalled from the system.

Understanding the Problem (Any macOS Version)

When cloud storage applications (Google Drive, Dropbox, etc.) are uninstalled, macOS doesn't always remove their FileProvider extensions. These orphaned extensions continue running in the background, attempting to sync files that no longer exist.

This is a general macOS issue across all versions. However, major OS upgrades often trigger these extensions to perform full rescans, which exposes the problem dramatically. In this case, upgrading to macOS 26 Tahoe activated these ghost extensions.

In my system, four ghost extensions were running simultaneously:

  1. Google Drive (com.google.drivefs.fpext) - The primary culprit
  2. Dropbox (com.getdropbox.dropbox.fileprovider)
  3. CloudMounter (com.eltima.cloudmounter-setapp.mountprovider)
  4. KeepIt (com.reinvented.KeepIt.MacFileProvider)

All had been uninstalled months prior, but their FileProvider extensions remained active.

Performance Impact

The cascading effects are severe:

  1. Ghost extensions continuously rescan → Heavy disk I/O and CPU usage
  2. File system operations slow down → All file system-dependent processes experience latency
  3. File-dependent applications spike → Applications like Raycast (file indexing) and voice transcription apps (temporary audio file writes) compete for resources
  4. Real-time tasks suffer → Keyboard input processing is starved of CPU cycles, causing typing lag
  5. Battery drains rapidly → Constant disk activity consumes significant power

The intermittent behavior occurred because rescans happened in cycles - during active scans, the system became unusable; between scans, performance would temporarily normalize.

Solution: Removing Ghost Extensions

Step 1: Grant Terminal Full-Disk Access

  • Navigate to System Settings > Privacy & Security > Full-Disk Access
  • Add Terminal.app
  • Restart Terminal

Step 2: Identify Ghost Extensions

find ~/Library/Application\ Support/FileProvider -name "*google*" -o -name "*drive*" -o -name "*dropbox*"

Step 3: Remove Ghost Extensions

cd ~/Library/Application\ Support/FileProvider/

# Remove Google Drive
rm -rf com.google.drivefs.fpext

# Remove Dropbox
rm -rf com.getdropbox.dropbox.fileprovider

# Remove CloudMounter
rm -rf com.eltima.cloudmounter-setapp.mountprovider

# Remove KeepIt
rm -rf com.reinvented.KeepIt.MacFileProvider

# Remove any other unused third-party providers

Step 4: Restart FileProvider Daemon

sudo pkill -9 fileproviderd

The system will automatically clean up orphaned UUID folders associated with removed extensions.

Step 5: System Restart

After restarting, verify the cleanup:

brctl log -w --shorten

You should now see only legitimate cloud services (such as iCloud Drive if in use), with no ghost extension activity.

Prevention (Any macOS Version)

When uninstalling cloud storage applications:

  1. Disable the service in the application's preferences first
  2. Uninstall the application
  3. Verify removal: ls ~/Library/Application\ Support/FileProvider/
  4. Manually remove any remaining folders for that service

This applies to all macOS versions. Users on older versions should also check for ghost extensions.

Root Cause #2: WindowServer Bug with Electron Apps (macOS 26-Specific)

This issue is specific to macOS 26 Tahoe. A WindowServer bug affects all Electron-based applications (VS Code, Discord, Slack, etc.).

The Problem

Windows with shadows consume 80%+ GPU resources, causing:

  • Excessive battery drain
  • Performance degradation
  • Laggy UI in Electron applications

Solutions

Option 1: System-Wide Workaround

Create a LaunchAgent that persists across reboots:

Create ~/Library/LaunchAgents/local.setenv.chromeheadless.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>local.setenv.chromeheadless</string>
    <key>ProgramArguments</key>
    <array>
        <string>sh</string>
        <string>-c</string>
        <string>launchctl setenv CHROME_HEADLESS 1</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

Load the LaunchAgent:

launchctl load ~/Library/LaunchAgents/local.setenv.chromeheadless.plist

Verify:

launchctl getenv CHROME_HEADLESS
# Should return: 1

Restart Electron applications to apply the fix.

How it works: This activates an alternative rendering path that bypasses the WindowServer bug by disabling window shadows. It makes the windows be rendered without borders, which looks rather ugly. I hope this will not be necessary anymore soon.

Option 2: VS Code Specific

Microsoft has integrated a fix in recent VS Code versions that automatically disables shadows on affected macOS versions. Ensure you're running the latest version.

Option 3: Manual Fix for Other Electron Apps

For applications like VS Code Insiders:

sed -i '' 's/experimentalDarkMode:!0}/experimentalDarkMode:!0,hasShadow:false}/g' /Applications/Visual\ Studio\ Code\ -\ Insiders.app/Contents/Resources/app/out/main.js

(Adjust path for different applications)

Removal (When Apple Fixes the Bug):

# Stop and remove LaunchAgent
launchctl unload ~/Library/LaunchAgents/local.setenv.chromeheadless.plist
rm ~/Library/LaunchAgents/local.setenv.chromeheadless.plist

# Remove environment variable
launchctl unsetenv CHROME_HEADLESS

Status: Temporary workaround until Apple addresses the issue at the OS level.

References:


Root Cause #3: NSAutoHeuristic Input Lag (macOS 26-Specific)

This issue is specific to macOS 26 Tahoe. An autofill/auto-suggestion system can cause input lag across applications.

The Problem

The system attempts to predict and suggest completions during typing, but the heuristic algorithm is poorly optimized, resulting in:

  • Delayed keystrokes lead to laggy text input
  • UI might stutter while typing

Solution

Disable the auto-heuristic feature:

defaults write -g NSAutoHeuristicEnabled -bool false

Important: All applications must be restarted for this change to take effect. Log out and back in, or restart the system.

To Re-enable:

defaults delete -g NSAutoHeuristicEnabled

Reference:

Combined Effects

In this case, all three issues occurred simultaneously:

  1. Four ghost FileProvider extensions continuously rescanning (pre-existing issue, triggered by OS upgrade)
  2. Electron app WindowServer bug draining GPU and battery (macOS 26-specific)
  3. NSAutoHeuristic input lag affecting text input (macOS 26-specific)

These compounding issues created severe system-wide performance degradation. Each problem individually would have been manageable, but together they rendered the system nearly unusable.

Ghost FileProvider extensions are particularly problematic because they:

  • Don't appear as distinct processes in Activity Monitor
  • Affect system-wide file operations
  • Create resource contention that impacts unrelated applications
  • Cause intermittent performance issues that are difficult to diagnose
  • Can exist on any macOS version, not just Tahoe

The timing initially suggested macOS 26 Tahoe itself was at fault, when in reality:

  • Ghost extensions were a pre-existing issue that the OS upgrade triggered
  • WindowServer and NSAutoHeuristic issues are actual macOS 26 bugs
  • Together, they created a compounding, system-wide problem

Verification and Monitoring

After applying fixes, monitor the system:

Activity Monitor Checklist

  • fileproviderd remains under 10-20% CPU normally
  • ✅ No constant disk I/O activity
  • ✅ Raycast and other applications don't spike CPU unexpectedly
  • ✅ Typing remains responsive across all applications
  • ✅ Voice transcription applications process at normal speed

FileProvider Status

brctl log -w --shorten

Should show only legitimate cloud services (iCloud if in use), no ghost extensions.

Environment Variables

launchctl getenv CHROME_HEADLESS

Should return 1 if Electron fix was applied.

Auto-Heuristic Status

defaults read -g NSAutoHeuristicEnabled

Should return 0 or error (key not found).

Results

After applying all fixes and restarting:

Improvements:

  • Typing lag eliminated
  • Raycast responsive without CPU spikes
  • Voice transcription applications (Monolog, Voice Notes) processing at normal speed
  • Electron applications (VS Code, etc.) running smoothly
  • UI freezes eliminated
  • Battery life normalized
  • System performance restored to expected levels for M1 Max hardware

Analysis:
Ghost FileProvider extensions were the primary issue (16+ hours of continuous rescanning every second), with Electron and input lag bugs compounding the problem. Removing all bottlenecks restored full system performance.

Quick Reference: Fix Checklist

# 1. Remove Ghost FileProvider Extensions (ANY macOS VERSION)
find ~/Library/Application\ Support/FileProvider -name "*google*" -o -name "*drive*" -o -name "*dropbox*"
cd ~/Library/Application\ Support/FileProvider/
rm -rf com.google.drivefs.fpext
rm -rf com.getdropbox.dropbox.fileprovider
rm -rf com.eltima.cloudmounter-setapp.mountprovider
# Add any other third-party providers found
sudo pkill -9 fileproviderd

# 2. Fix Electron WindowServer Bug (macOS 26 ONLY)
# Create LaunchAgent (see XML above), then:
launchctl load ~/Library/LaunchAgents/local.setenv.chromeheadless.plist

# 3. Disable Auto-Heuristic Input Lag (macOS 26 ONLY)
defaults write -g NSAutoHeuristicEnabled -bool false

# 4. Restart System
sudo reboot

# 5. Verify
brctl log -w --shorten  # Should show only legitimate services
launchctl getenv CHROME_HEADLESS  # Should return 1 (macOS 26 only)
defaults read -g NSAutoHeuristicEnabled  # Should return 0 (macOS 26 only)