The Week I Spent Fixing My MacBook’s Post-Tahoe Performance Issues
Severe performance issues after upgrading to macOS 26 Tahoe turned out to be three distinct problems. Here’s how to diagnose and fix them—including one issue affecting all macOS versions.

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:
- Pre-existing ghost FileProvider extensions (affects ALL macOS versions)
- WindowServer bug affecting Electron apps (Tahoe-specific)
- 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:
- Google Drive (
com.google.drivefs.fpext
) - The primary culprit - Dropbox (
com.getdropbox.dropbox.fileprovider
) - CloudMounter (
com.eltima.cloudmounter-setapp.mountprovider
) - KeepIt (
com.reinvented.KeepIt.MacFileProvider
)
All had been uninstalled months prior, but their FileProvider extensions remained active.
Performance Impact
The cascading effects are severe:
- Ghost extensions continuously rescan → Heavy disk I/O and CPU usage
- File system operations slow down → All file system-dependent processes experience latency
- File-dependent applications spike → Applications like Raycast (file indexing) and voice transcription apps (temporary audio file writes) compete for resources
- Real-time tasks suffer → Keyboard input processing is starved of CPU cycles, causing typing lag
- 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:
- Disable the service in the application's preferences first
- Uninstall the application
- Verify removal:
ls ~/Library/Application\ Support/FileProvider/
- 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:
- Four ghost FileProvider extensions continuously rescanning (pre-existing issue, triggered by OS upgrade)
- Electron app WindowServer bug draining GPU and battery (macOS 26-specific)
- 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)
Discussion