Full Diagnostic Tree & Step-by-Step Overview
Which process thread or subsystem exhibits the highest CPU spike in Task Manager when Teams is idle?
- One or more 'Microsoft Edge WebView2' (`msedgewebview2.exe`) sub-processes consume 20%-50%+ CPU continuously.
- The primary `ms-teams.exe` or `Teams.exe` executable spikes CPU whenever the window is minimized or inactive.
- Desktop Window Manager (`dwm.exe`) or GPU System Process spikes CPU/GPU usage whenever Teams remains running.
- High CPU usage occurs alongside constant disk read/write activity in the local Teams user profile directory.
What specific WebView2 container runtime component is triggering the background processing loop?
- Corrupted Chromium IndexedDB storage or local web cache in the WebView2 user data folder.
- Outdated or corrupted Microsoft Edge WebView2 Runtime installation.
- Active third-party application add-ins or custom tab extensions executing continuous JS polling loops.
- WebView2 render process memory leak caused by high-DPI canvas scaling mismatches.
Purging Microsoft Teams and Edge WebView2 Local Cache Directories
Solution:
Root Cause: Corrupted Chromium IndexedDB and Web Cache Storage
New Microsoft Teams (Teams 2.0/2.1) operates on Microsoft Edge WebView2 instead of legacy Electron. The WebView2 runtime utilizes Chromium-based caching mechanisms (IndexedDB, LocalStorage, and Blob Storage) to persist message history, user avatars, and telemetry. When cache files become fragmented or corrupted, the Chromium rendering engine (msedgewebview2.exe) enters an infinite indexing and garbage-collection loop, consuming significant CPU cycles even when no active chat or call is taking place.
# Diagnostic Verification:
Open Task Manager (Ctrl + Shift + Esc) and expand Microsoft Teams.Observe Microsoft Edge WebView2 processes maintaining 20%+ CPU utilization while Teams is minimized.Navigate to %localappdata%\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\EBWebView in File Explorer and verify if cache directories exceed several gigabytes.# Step-by-Step Fix:
Fully Terminate Microsoft Teams:Right-click the Teams icon in the system tray and select Quit.Open PowerShell as Administrator and run: Get-Process -Name "*teams*", "*webview2*" -ErrorAction SilentlyContinue | Stop-Process -Force
Clear New Teams (WebView2) Cache via PowerShell:Execute the following command sequence to purge cache stores without removing account credentials: Remove-Item -Path "$env:LOCALAPPDATA\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\EBWebView\WV2Profile_host\Local Storage" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "$env:LOCALAPPDATA\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\EBWebView\WV2Profile_host\IndexedDB" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "$env:LOCALAPPDATA\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\EBWebView\WV2Profile_host\Blob_storage" -Recurse -Force -ErrorAction SilentlyContinue
Clear Classic Teams Cache (If using legacy Teams):Execute: Remove-Item -Path "$env:APPDATA\Microsoft\Teams\*" -Recurse -Force -ErrorAction SilentlyContinue
Relaunch Microsoft Teams and monitor idle CPU usage.# Prevention & Long-Term Monitoring:
Automate periodic cache maintenance or deploy enterprise cleanup scripts to prevent IndexedDB accumulation.
Performing Clean Reinstallation of Microsoft Edge WebView2 Runtime
Solution:
Root Cause: WebView2 System Component Version Desynchronization
Microsoft Teams relies on the system-wide Microsoft Edge WebView2 Evergreen Runtime. If the installed WebView2 runtime version becomes corrupted or desynchronized from the Windows OS servicing layer, its internal IPC (Inter-Process Communication) channel with
ms-teams.exe fails to register idle power states. This causes the main thread to constantly poll the rendering host.
# Diagnostic Verification:
Open Settings (Win + I) > Apps > Installed apps.Search for Microsoft Edge WebView2 Runtime and check the installed version against official release notes.Inspect Event Viewer (eventvwr.msc) under Application for Event ID 1000 referencing EmbeddedBrowserWebView.dll.# Step-by-Step Fix:
Download Evergreen Standalone Installer:Refer to the official Microsoft Official Support Guide to locate the standalone WebView2 Enterprise offline installer.Repair or Reinstall WebView2 Runtime:Open Command Prompt as Administrator.Execute the standalone installer with repair flags: MicrosoftEdgeWebView2RuntimeInstallerX64.exe /silent /install
Reset Teams App Registration:Open PowerShell as Administrator and re-register the Teams package: Get-AppxPackage -Name "MSTeams" | Reset-AppxPackage
# Prevention & Long-Term Monitoring:
Ensure Windows Update or WSUS policies do not block Microsoft Edge component updates.
Disabling Unused Add-ins, Custom Apps, and Webhook Notifications
Solution:
Root Cause: Third-Party Tab Extension and Webhook Polling Loops
When third-party applications (such as Jira, Trello, Salesforce, or custom organizational web apps) are pinned as channels or personal tabs inside Teams, their underlying webframes remain active in background WebView2 instances. If an extension contains an unoptimized JavaScript setInterval() or WebSocket polling loop, it executes continuously even when Teams is minimized to the notification area.
# Diagnostic Verification:
In Task Manager, expand the Teams process tree to view individual WebView2 sub-renderers.Pop out custom channel tabs or third-party app tabs and observe if CPU usage drops immediately when those tabs are closed.# Step-by-Step Fix:
Remove Unused Custom App Extensions:In Teams, click Apps on the left sidebar > Manage your apps.Uninstall non-essential custom bots, tab integrations, and channel connectors.Disable Background Application Reloading:In Teams, click the three dots (...) next to your profile picture > Settings.Under General, uncheck Register Teams as the chat app for Office (if not strictly required for Outlook integration).Disable Unnecessary Channel Notifications:Navigate to Settings > Notifications and activity.Reduce notification frequency for channel posts and background activity summaries.# Prevention & Long-Term Monitoring:
Audit tenant-wide app policies in the Microsoft Teams Admin Center to restrict unverified third-party app deployments.
Adjusting High-DPI Display Canvas Scaling and Off-Screen Rendering
Solution:
Root Cause: Chromium Compositor Canvas DPI Scaling Loop
When operating on high-DPI displays (e.g., 4K monitors with 150% or 175% Windows scaling) or multi-monitor setups with fractional DPI differences, the Chromium compositor in WebView2 can enter an infinite redrawing loop when attempting to scale inactive UI elements. This causes high CPU usage in the GpuCompositorThread or main rendering thread.
# Diagnostic Verification:
CPU usage increases significantly when moving the Teams window between displays with different DPI scaling factors.Reducing display scaling to 100% instantly drops idle CPU usage.# Step-by-Step Fix:
Override High DPI Scaling Behavior:Right-click the Teams shortcut (or locate ms-teams.exe in C:\Program Files\WindowsApps\MSTeams_*) > select Properties.Go to the Compatibility tab > click Change high DPI settings.Check Override high DPI scaling behavior and set Scaling performed by: to System (Enhanced).Click OK and Apply.Configure Graphics Performance Preference in Windows:Open Settings > System > Display > Graphics.Add Microsoft Teams (ms-teams.exe) and set GPU preference to Power saving.# Prevention & Long-Term Monitoring:
Align display scaling percentages across all connected physical monitors whenever possible.
What background feature or media subsystem is keeping the main executable active?
- Background video/camera frame processing or virtual background services remain initialized.
- Outlook/M365 presence synchronization and real-time status polling services are stuck.
- Hardware audio endpoint keep-alive queries or spatial audio drivers prevent idle state.
- Read receipts and typing indicator WebSocket heartbeat threads fail to enter sleep mode.
Terminating Orphaned Camera Capture Threads and Background Effects
Solution:
Root Cause: Unreleased DirectShow / Media Foundation Camera Handles
After exiting a video call or meeting, Teams should release camera capture handles and unload background processing filters (such as background blur or custom virtual backgrounds). If a webcam driver fails to process the stop command, the media pipeline remains active in memory. Teams continues rendering camera frames silently at 30 FPS in the background, keeping CPU usage elevated.
# Diagnostic Verification:
Open PowerShell as Administrator and inspect active camera access sessions: Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\webcam\*" | Select-Object LastUsedTimeStop, LastUsedTimeStart
If Teams shows LastUsedTimeStop as zero or older than current time while idle, camera handles are locked.# Step-by-Step Fix:
Disable Video Auto-Preview in Teams Settings:Open Teams > Settings > Devices.Scroll down to Video settings and select a standard physical camera (avoid virtual camera software like OBS or EpocCam).Turn off Automatically adjust camera controls.Reset Camera Privacy Permissions:Go to Windows Settings > Privacy & security > Camera.Toggle Let apps access your camera Off and On again to force handle releases.Update Webcam Drivers:Open Device Manager > expand Cameras > right-click webcam > Update driver.# Prevention & Long-Term Monitoring:
Explicitly turn off video before leaving calls to trigger clean media pipeline teardown.
Repairing M365 Presence Synchronization and Cleansing Credential Tokens
Solution:
Root Cause: Active Directory / M365 Presence Polling Lockup
Teams synchronizes your user presence state (Available, Away, Busy, In a Meeting) with Exchange Online and Outlook. When an OAuth authentication token expires or when custom presence rules conflict with calendar items, Teams re-sends authentication requests to Azure AD / Entra ID every few seconds. This continuous background token negotiation keeps CPU usage high.
# Diagnostic Verification:
User presence status toggles rapidly or displays a red warning icon.Inspect Credential Manager (control /name Microsoft.CredentialManager) for corrupted MicrosoftAccount or AdalData entries.# Step-by-Step Fix:
Clear Cached Identity Tokens:Close Teams completely.Press Win + R, type control /name Microsoft.CredentialManager, and press Enter.Select Windows Credentials.Remove entries starting with MicrosoftAccount:user=, SSO_POP_Device, and msteams_authtoken.Disconnect and Reconnect Work/School Account:Go to Windows Settings > Accounts > Access work or school.Select your account > click Disconnect (if domain policy allows) and re-add it.Relaunch Teams and sign back in.# Prevention & Long-Term Monitoring:
Ensure Primary Refresh Tokens (PRT) are healthy on Entra ID joined endpoints using dsregcmd /status.
Reconfiguring Audio Endpoint Settings and Disabling Spatial Audio
Solution:
Root Cause: Windows Audio Session API (WASAPI) Buffer Polling
To allow instant call joining and secondary ringer playback, Teams maintains an active polling connection to system audio endpoints via WASAPI. If spatial audio features (such as Windows Sonic or Dolby Atmos) or virtual audio cables are enabled on the active playback device, the audio engine forces constant buffer synchronization, preventing the Teams process thread from entering a low-power state.
# Diagnostic Verification:
Open Command Prompt as Administrator and run: powercfg /requests
Check if AUDIO lists an active request from ms-teams.exe or Teams.exe while no call is in progress.# Step-by-Step Fix:
Change Audio Device Settings in Teams:Open Teams > Settings > Devices.Set Audio devices to a standard physical headset or speaker rather than 'Custom Setup'.Turn off Noise suppression or change setting from *Auto* to *Low*.Disable Spatial Audio in Windows:Right-click the Speaker icon in the taskbar > select Sound settings.Click your active output device > set Spatial sound to Off.Uncheck Exclusive Mode:Scroll down in sound properties > click More sound settings.Double-click device > Advanced tab > uncheck Allow applications to take exclusive control of this device.# Prevention & Long-Term Monitoring:
Avoid utilizing virtual audio routing software on dedicated communication workstations.
Disabling Real-Time Animation and Read Receipt State Syncing
Solution:
Root Cause: CSS Animation Rendering and WebSocket Activity Syncing
Teams continuously renders animated GIFs, custom emoji reactions, and read receipt indicators across active channels. When a busy channel receives continuous message updates or animated emojis, the underlying DOM trees update repeatedly in the background, forcing high CSS compositing and CPU utilization even if the window is minimized.
# Diagnostic Verification:
High idle CPU usage occurs specifically when Teams is left open to a high-volume team channel containing animated reactions.# Step-by-Step Fix:
Disable Animations in Teams Settings:Open Teams > Settings > Appearance and accessibility.Scroll down to Accessibility and turn off Turn on animations (or enable *Reduce motion*).Disable Read Receipts:Go to Settings > Privacy.Toggle off Read receipts.Disable Spell Check GPU Acceleration:Go to Settings > General > uncheck Enable spell check if running on low-spec hardware.# Prevention & Long-Term Monitoring:
Navigate to a quiet channel or static chat tab before minimizing Teams to reduce background DOM updates.
What display hardware or driver pipeline conflict is causing the GPU/DWM CPU spike?
- Hardware Graphics Acceleration in Teams causes DirectX/DWM canvas rendering deadlocks.
- Outdated or corrupted integrated GPU drivers (Intel UHD/Iris Xe or AMD Radeon) cause CPU-bound software rasterization.
- Hardware-Accelerated GPU Scheduling (HAGS) in Windows conflicts with WebView2 compositing.
- G-Sync / FreeSync variable refresh rate features attempt to synchronize with idle Teams UI frames.
Disabling GPU Hardware Acceleration in Teams and Registry Settings
Solution:
Root Cause: GPU Acceleration Canvas Rendering Loop
By default, Teams delegates UI canvas rendering to the system GPU using Direct3D. When display drivers encounter memory allocation conflicts or when running alongside graphics-intensive applications, the GPU hardware acceleration engine fails to process idle frame buffers. This forces Desktop Window Manager (dwm.exe) and Teams to fall back to CPU-bound software rasterization, spiking CPU usage to 30%-60%.
# Diagnostic Verification:
In Task Manager, both ms-teams.exe (or msedgewebview2.exe) and Desktop Window Manager (dwm.exe) display high CPU usage simultaneously.# Step-by-Step Fix:
Disable GPU Hardware Acceleration in Teams Settings (Classic Teams):Open Teams > Settings > General.Check Disable GPU hardware acceleration (requires restarting Teams).Fully restart Teams.Force Disable GPU Acceleration via Registry (New Teams / System-Wide):Press Win + R, type regedit, and press Enter.Navigate to: HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\16.0\Common\Graphics
*If the key does not exist, right-click Common > New > Key and name it Graphics.*Right-click Graphics > New > DWORD (32-bit) Value.Name it DisableHardwareAcceleration and set Value data to 1.Relaunch Teams and verify lower idle resource utilization.# Prevention & Long-Term Monitoring:
Disable hardware acceleration on virtual desktop infrastructure (VDI) or laptops equipped with basic integrated graphics.
Performing Clean Reinstallation of Integrated Graphics Driver Stack
Solution:
Root Cause: Integrated GPU Driver D3D Surface Allocation Failure
Teams relies heavily on integrated GPU (Intel UHD/Iris Xe or AMD Radeon) video acceleration pipelines for rendering UI surfaces. Corrupted display driver installation files fail to properly execute Chromium DirectComposition calls, causing the CPU to process frame compositing via software fallback (software_reporter_tool.exe or swiftshader).
# Diagnostic Verification:
Open Task Manager > Performance tab > click GPU.Observe 3D or Video Encode/Decode graphs spiking periodically while Teams is idle in the background.# Step-by-Step Fix:
Download Latest OEM / Silicon Driver Package:Download the latest graphics driver package from Intel, AMD, or your laptop OEM support page.Perform Clean Driver Installation:Open Device Manager > expand Display adapters.Right-click integrated GPU > select Uninstall device.Check Attempt to remove the driver for this device > click Uninstall.Install Fresh Driver Package:Execute the downloaded driver installer, select Clean Installation (if available), and reboot the PC.# Prevention & Long-Term Monitoring:
Avoid using generic Windows Update display drivers for primary display adapters on workstations.
Reconfiguring Hardware-Accelerated GPU Scheduling (HAGS)
Solution:
Root Cause: Hardware-Accelerated GPU Scheduling (HAGS) Memory Management Conflict
Windows Hardware-Accelerated GPU Scheduling (HAGS) allows the GPU to manage its own video memory allocation directly, bypassing the OS kernel scheduler. On certain GPU microarchitectures, HAGS creates a scheduling deadlock with Chromium-based WebView2 applications when they enter background state, preventing memory pages from swapping out and keeping CPU core threads active.
# Diagnostic Verification:
Idle CPU usage drops significantly when Teams is minimized if HAGS is turned off.# Step-by-Step Fix:
Access Windows Graphics Settings:Open Settings > System > Display > Graphics.Click Change default graphics settings.Toggle HAGS Off:Turn off Hardware-accelerated GPU scheduling.Restart Computer:Reboot Windows to unload HAGS kernel modules and test Teams idle stability.# Prevention & Long-Term Monitoring:
Evaluate HAGS impact when experiencing background application performance issues on mixed-vendor GPU setups.
Excluding Microsoft Teams from Variable Refresh Rate (G-Sync/FreeSync)
Solution:
Root Cause: G-Sync / FreeSync Windowed Mode Refresh Rate Synchronization
When NVIDIA G-Sync or AMD FreeSync is enabled for 'Windowed and Full Screen' modes, the graphics driver attempts to match monitor refresh rates to the frame rate of active desktop windows. Because Teams updates subtle UI elements (like blinking cursors or status dots) at irregular intervals (e.g., 2-5 FPS), the GPU dynamically adjusts monitor refresh rates continuously, causing display driver CPU spikes.
# Diagnostic Verification:
Monitor refresh rate display (OSD) fluctuates rapidly when hovering over the Teams window.# Step-by-Step Fix:
Exclude Teams in NVIDIA Control Panel:Right-click desktop > open NVIDIA Control Panel.Go to Manage 3D Settings > click Program Settings tab.Add Microsoft Teams (ms-teams.exe or teams.exe).Set Monitor Technology to Fixed Refresh Rate.Set Power management mode to Prefer maximum performance or Optimal power.Click Apply.Configure AMD Software (For Radeon GPUs):Open AMD Software > Gaming > Global Graphics.Ensure Radeon FreeSync is set to *AMD Optimized* or create a profile for Teams disabling FreeSync.# Prevention & Long-Term Monitoring:
Limit variable refresh rate features strictly to full-screen 3D gaming applications.
What local file system I/O or logging activity is saturating disk and CPU usage?
- Verbose media and diagnostic logging is enabled, writing continuous log files to disk.
- Windows Defender or third-party Antivirus real-time scan is hooking Teams cache folders.
- OneDrive / SharePoint file sync engine locks local Teams file cache directories.
- Windows Search Indexer (`SearchIndexer.exe`) continuously scans IndexedDB database files.
Disabling Media Diagnostic Logging and Clearing Diagnostic Log Files
Solution:
Root Cause: Verbose Diagnostic and Media Logging File I/O Overhead
When Turn on media logs or developer diagnostic logging is enabled in Teams, the application writes real-time debug statements, network trace frames, and WebRTC metrics to local log files (MSTeams_Diagnostics_*.log and desktop-config.json). Writing hundreds of log entries per minute creates continuous disk I/O and CPU overhead while the application is sitting idle.
# Diagnostic Verification:
Inspect the Teams log directory in File Explorer: %localappdata%\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\Logs
Observe multiple log files growing continuously in size while Teams is idle.# Step-by-Step Fix:
Disable Media Logging in Teams Settings:Open Teams > Settings > General.Uncheck Turn on media logs for telemetry (requires restarting Teams).Purge Existing Log Directories via PowerShell:Close Teams completely and execute: Remove-Item -Path "$env:LOCALAPPDATA\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\Logs\*" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "$env:APPDATA\Microsoft\Teams\*.log" -Force -ErrorAction SilentlyContinue
Restart Teams and confirm logging file creation stops.# Prevention & Long-Term Monitoring:
Only enable media logging temporarily when diagnosing active call quality or network issues under IT supervision.
Excluding Teams Data Directories from Real-Time Antivirus Scanning
Solution:
Root Cause: Antivirus Real-Time Stream Scanning Conflict on Caches
Antivirus engines (such as Windows Defender, CrowdStrike, or Defender for Endpoint) monitor file creation and modification events. Because Teams writes small temporary cache files and IndexedDB records constantly, real-time antivirus scanners hook every file I/O request (MsMpEng.exe). This race condition doubles CPU usage across both Teams and the security software.
# Diagnostic Verification:
Open Task Manager and check if Antimalware Service Executable (MsMpEng.exe) spikes CPU simultaneously with Teams.# Step-by-Step Fix:
Open Windows Security Settings:Go to Start > Settings > Privacy & security > Windows Security > Virus & threat protection.Under Virus & threat protection settings, click Manage settings.Add Folder Exclusions:Scroll down to Exclusions > click Add or remove exclusions.Click Add an exclusion > select Folder.Add the following paths: %localappdata%\Packages\MSTeams_8wekyb3d8bbwe\
%appdata%\Microsoft\Teams\
Add Process Exclusion:Click Add an exclusion > select Process.Type ms-teams.exe and msedgewebview2.exe.# Prevention & Long-Term Monitoring:
Deploy central endpoint security exclusion rules for Microsoft 365 app paths across managed enterprise devices.
Resolving OneDrive / SharePoint File Cache Synchronization Collisions
Solution:
Root Cause: OneDrive Sync Engine Cache File Locking
If local user profile folders (such as AppData or LocalAppData) are inadvertently included in OneDrive Known Folder Move (KFM) or third-party backup synchronization rules, OneDrive attempts to upload Teams cache files as they are written. The resulting file lock collisions force Teams to retry file writes continuously.
# Diagnostic Verification:
OneDrive notification area icon displays constant 'Processing changes' or 'Syncing' status pointing to files within the Teams data directory.# Step-by-Step Fix:
Verify OneDrive Sync Exclusions:Right-click OneDrive cloud icon in taskbar > Settings > Sync and backup > Advanced settings.Exclude Local AppData Paths:Ensure AppData\Local and AppData\Roaming are not included in OneDrive folder backup selections.Reset OneDrive Sync Engine (If locked):Press Win + R, type %localappdata%\Microsoft\OneDrive\onedrive.exe /reset, and press Enter.Restart OneDrive.# Prevention & Long-Term Monitoring:
Restrict backup software from monitoring system app data repositories.
Excluding Teams IndexedDB Files from Windows Search Indexer
Solution:
Root Cause: Windows Search Indexer I/O Lockup on Databases
The Windows Search Indexer service (SearchIndexer.exe) crawls local file systems to build search catalogs. When it attempts to index rapidly changing binary files (such as Teams IndexedDB leveldb files), the file system driver experiences heavy I/O locking, causing high CPU usage across SearchIndexer.exe and Teams.
# Diagnostic Verification:
SearchIndexer.exe displays high CPU usage alongside Teams in Task Manager.# Step-by-Step Fix:
Access Indexing Options:Press Win + R, type control.exe /name Microsoft.IndexingOptions, and press Enter.Click Modify.Exclude Teams Package Data Folder:In the top pane, expand your user drive (C:\Users\<Username>\AppData).Uncheck the LocalCache and EBWebView folders under the Teams app package.Click OK.Rebuild Index (Optional):In Indexing Options, click Advanced > click Rebuild to clear invalid index entries.# Prevention & Long-Term Monitoring:
Maintain folder exclusions in Windows Search for dynamic application database stores.