Skip to content

About

Fix for WhatsApp Desktop freezing / "WhatsApp.Root is not responding" on Windows 10/11: the app runs itself in Efficiency mode (Idle priority + EcoQoS). Script restores normal priority.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

WhatsApp Desktop Freeze Fix (Windows)

English | Türkçe

Fix for WhatsApp Desktop freezing, lagging or showing "WhatsApp.Root is not responding" on Windows 10 and Windows 11.

WhatsApp Desktop puts its own process into Windows Efficiency mode (the lowest CPU priority plus EcoQoS power throttling) every time it starts, and leaves it there while you are using the window. When anything else on the PC uses the CPU, the WhatsApp window has the lowest priority on the system and stops responding. A small PowerShell script that sets it back to normal priority makes the freezes go away.

This project is not affiliated with, endorsed by or connected to WhatsApp or Meta. "WhatsApp" is a trademark of its owner and is used here only to describe the problem.

Symptoms

  • The window freezes for seconds or minutes and Windows shows "WhatsApp.Root is not responding", often over the file picker while attaching a photo or video.
  • Typing, scrolling and opening chats lag while a video export, game, build, antivirus scan or Windows/Store update is running.
  • A hang soon after signing in, while other startup apps are loading.
  • Clearing the cache, reinstalling or adding RAM does not help. Plenty of free memory does not matter: the problem is CPU priority, not memory.

Are you affected?

  1. Open Task Manager. On the Processes tab, look at WhatsApp: a green leaf icon or the status "Efficiency mode" means you are affected.

  2. Or run this in PowerShell:

    Get-Process WhatsApp.Root | Select-Object Id, PriorityClass

    Idle means you are affected. Normal means the fix is active (or WhatsApp has fixed it).

  3. Past freezes are in Event Viewer > Windows Logs > Application, source Application Hang, event ID 1002, program WhatsApp.Root.exe.

Tested with WhatsApp Desktop 2.2640.100.0 (Microsoft Store version) on Windows 11. Every launch came up at Idle priority with EcoQoS on.

Measurements

The WhatsApp window was pinged every 0.5 s (WM_NULL via SendMessageTimeout, 15 s timeout) while the same CPU load ran: a single x264 video encode at normal priority, the kind of job a video editor runs.

WhatsApp process state Window response under load
As started by WhatsApp (Idle + EcoQoS) Not responding for more than 60 s
Priority set to Normal (this fix) 88 of 88 checks answered, average 1 ms, worst 13 ms
Set back to Idle Worst 11.4 s, average 177 ms

The only thing that changed between rows is the priority of WhatsApp's own process.

One PC logged 10 WhatsApp hangs (event 1002) in three months across 9 app versions. Five of them happened while the Microsoft Store was updating the app.

Quick fix (no download)

This lasts until WhatsApp is restarted.

  1. Open Task Manager (Ctrl+Shift+Esc) > Processes.
  2. Expand the WhatsApp group with the arrow on its left.
  3. Right-click the WhatsApp process inside the group and untick Efficiency mode.

Or go to Details, right-click WhatsApp.Root.exe and choose Set priority > Normal.

Permanent fix

  1. Download this repository (Code > Download ZIP) and extract it.
  2. Double-click install.cmd. No administrator rights are needed.

What it does:

  • Copies whatsapp-efficiency-fix.ps1 to %LOCALAPPDATA%\WhatsAppFreezeFix.
  • Adds WhatsAppFreezeFix.cmd to your Startup folder, so a hidden watcher starts at every sign-in.
  • Starts the watcher now. Every 15 seconds it checks WhatsApp.Root.exe. If it finds it at Idle priority or with EcoQoS on, it sets Normal priority and turns EcoQoS off.

A console window may flash for a moment at sign-in. That is the hidden watcher starting.

To remove it, double-click uninstall.cmd. It deletes the Startup entry, stops the watcher and removes the copied script. Restart WhatsApp to return to its default behaviour.

Run the script by hand

# One-time fix for the running WhatsApp
powershell -ExecutionPolicy Bypass -File .\whatsapp-efficiency-fix.ps1

# Keep watching (what install.cmd starts)
powershell -ExecutionPolicy Bypass -WindowStyle Hidden -File .\whatsapp-efficiency-fix.ps1 -Watch

Example output:

14:02:31  WhatsApp.Root.exe (PID 12345): priority Idle -> Normal, EcoQoS on -> off

Safety

  • The script only changes the priority class and the EcoQoS flag of WhatsApp.Root.exe. It does not read, modify or send any WhatsApp data, and it does not touch any file of the app.
  • It uses documented Windows APIs: Process.PriorityClass and SetProcessInformation(ProcessPowerThrottling).
  • Everything it changes is reset when WhatsApp restarts.
  • It works on Windows PowerShell 5.1 (built into Windows) and PowerShell 7.

Why this happens

Windows Efficiency mode is meant for background apps: it sets the process to IDLE_PRIORITY_CLASS and enables EcoQoS (PROCESS_POWER_THROTTLING_EXECUTION_SPEED), so it runs on efficient cores at low clock speeds. With that priority, a process runs only when nothing else wants the CPU. That is fine for a background tray app, but WhatsApp keeps it on while its window is open and you are using it.

The app ships the open-source tray icon library H.NotifyIcon. In that library, TaskbarIcon.ForceCreate(bool enablesEfficiencyMode = true) turns Efficiency mode on for the whole process unless the caller passes false. On Windows 10 1809+ and Windows 11 it applies both Idle priority and EcoQoS. This is the most likely source, and the usual fix would be to call ForceCreate(false), or to turn Efficiency mode off whenever the window is shown.

Other workarounds

  • Use WhatsApp Web in a browser while doing CPU-heavy work.
  • Pause the heavy job (export, game, update) for a moment if the window is already frozen.

Tell WhatsApp

The real fix has to come from WhatsApp. If you are affected, please report it in the app: Settings > Help > Contact us. You can link to this page.

License

MIT


Türkçe

Windows'ta WhatsApp masaüstü donuyor, kasıyor ya da "WhatsApp.Root yanıt vermiyor" uyarısı çıkıyorsa bu düzeltme sizin için.

WhatsApp Desktop her açılışta kendi sürecini Windows'un Verimlilik moduna alıyor: en düşük CPU önceliği ve EcoQoS güç kısıtlaması. Pencereyi kullanırken de bu modu kapatmıyor. Bilgisayarda CPU kullanan başka bir iş olduğunda WhatsApp penceresi sistemdeki en düşük önceliğe sahip oluyor ve yanıt vermiyor. Önceliği normale çeken küçük bir PowerShell betiği donmaları ortadan kaldırıyor.

Bu proje WhatsApp ya da Meta ile bağlantılı değildir ve onlar tarafından onaylanmamıştır. "WhatsApp" sahibinin markasıdır; burada yalnız sorunu tanımlamak için geçer.

Belirtiler

  • Pencere saniyelerce ya da dakikalarca donuyor ve Windows "WhatsApp.Root yanıt vermiyor" diyor. Bu çoğu zaman fotoğraf/video eklerken dosya seçme penceresinin üstünde çıkıyor.
  • Video dışa aktarma, oyun, derleme, virüs taraması ya da Windows/Store güncellemesi sürerken yazmak, kaydırmak ve sohbet açmak takılıyor.
  • Oturum açtıktan kısa süre sonra, başlangıç uygulamaları yüklenirken donma oluyor.
  • Önbellek temizlemek, yeniden kurmak ya da RAM eklemek işe yaramıyor. Boş bellek ne kadar olursa olsun fark etmez; sorun bellek değil, CPU önceliği.

Sizde de var mı?

  1. Görev Yöneticisi'ni açın. İşlemler sekmesinde WhatsApp'ın yanında yeşil yaprak simgesi ya da "Verimlilik modu" durumu görüyorsanız sizde de var.

  2. Ya da PowerShell'de çalıştırın:

    Get-Process WhatsApp.Root | Select-Object Id, PriorityClass

    Idle çıkıyorsa sizde de var. Normal çıkıyorsa düzeltme etkindir (ya da WhatsApp sorunu gidermiştir).

  3. Geçmiş donmalar Olay Görüntüleyicisi > Windows Günlükleri > Uygulama altında: kaynak Application Hang, olay kimliği 1002, program WhatsApp.Root.exe.

WhatsApp Desktop 2.2640.100.0 (Microsoft Store sürümü) ile Windows 11'de denendi. Her açılışta süreç Idle öncelikte ve EcoQoS açık geldi.

Ölçümler

Aynı CPU yükü çalışırken WhatsApp penceresine 0,5 saniyede bir yoklama gönderildi (SendMessageTimeout ile WM_NULL, 15 sn zaman aşımı). Yük, normal öncelikte tek bir x264 video kodlamasıydı; bir video düzenleyicinin yaptığı türden bir iş.

WhatsApp sürecinin durumu Yük altında pencerenin yanıtı
WhatsApp'ın başlattığı hâliyle (Idle + EcoQoS) 60 saniyeden uzun yanıtsız
Öncelik Normal (bu düzeltme) 88 yoklamanın 88'i yanıtlandı, ortalama 1 ms, en kötü 13 ms
Yeniden Idle'a alındı En kötü 11,4 sn, ortalama 177 ms

Satırlar arasında değişen tek şey WhatsApp sürecinin önceliği.

Bir bilgisayar üç ayda 9 farklı sürümde 10 WhatsApp donması kaydetti (olay 1002). Bunların 5'i Microsoft Store uygulamayı güncellerken oldu.

Hızlı çözüm (indirmeden)

WhatsApp yeniden başlatılana kadar geçerlidir.

  1. Görev Yöneticisi'ni açın (Ctrl+Shift+Esc) > İşlemler.
  2. WhatsApp grubunu solundaki okla genişletin.
  3. Grubun içindeki WhatsApp işlemine sağ tıklayıp Verimlilik modu işaretini kaldırın.

Ya da Ayrıntılar sekmesinde WhatsApp.Root.exe'ye sağ tıklayıp Önceliği ayarla > Normal seçin.

Kalıcı çözüm

  1. Bu depoyu indirin (Code > Download ZIP) ve klasöre çıkarın.
  2. install.cmd dosyasına çift tıklayın. Yönetici izni gerekmez.

Yaptıkları:

  • whatsapp-efficiency-fix.ps1 dosyasını %LOCALAPPDATA%\WhatsAppFreezeFix klasörüne kopyalar.
  • Başlangıç klasörüne WhatsAppFreezeFix.cmd ekler. Böylece her oturum açılışında gizli bir izleyici başlar.
  • İzleyiciyi hemen başlatır. İzleyici 15 saniyede bir WhatsApp.Root.exe'ye bakar. Süreci Idle öncelikte ya da EcoQoS açık bulursa önceliği Normal yapar ve EcoQoS'u kapatır.

Oturum açılışında bir an konsol penceresi görünüp kaybolabilir; bu, gizli izleyicinin başlamasıdır.

Kaldırmak için uninstall.cmd dosyasına çift tıklayın. Başlangıç kaydını siler, izleyiciyi durdurur ve kopyalanan betiği kaldırır. Varsayılan davranışa dönmek için WhatsApp'ı yeniden başlatın.

Betiği elle çalıştırma

# Açık WhatsApp için tek seferlik düzeltme
powershell -ExecutionPolicy Bypass -File .\whatsapp-efficiency-fix.ps1

# Sürekli izleme (install.cmd'nin başlattığı)
powershell -ExecutionPolicy Bypass -WindowStyle Hidden -File .\whatsapp-efficiency-fix.ps1 -Watch

Güvenlik

  • Betik yalnız WhatsApp.Root.exe'nin öncelik sınıfını ve EcoQoS bayrağını değiştirir. WhatsApp verilerini okumaz, değiştirmez, hiçbir yere göndermez; uygulamanın hiçbir dosyasına dokunmaz.
  • Belgelenmiş Windows API'lerini kullanır: Process.PriorityClass ve SetProcessInformation(ProcessPowerThrottling).
  • Değiştirdiği her şey WhatsApp yeniden başlayınca sıfırlanır.
  • Windows PowerShell 5.1 (Windows'ta hazır gelir) ve PowerShell 7 ile çalışır.

Neden oluyor?

Windows Verimlilik modu arka plan uygulamaları içindir: süreci IDLE_PRIORITY_CLASS'a alır ve EcoQoS'u (PROCESS_POWER_THROTTLING_EXECUTION_SPEED) açar, böylece süreç verimli çekirdeklerde düşük saat hızında çalışır. Bu öncelikteki bir süreç yalnız CPU'yu başka hiçbir şey istemediğinde çalışır. Tepside duran bir arka plan uygulaması için bu sorun değil; ama WhatsApp, penceresi açıkken ve siz onu kullanırken de bu modu açık tutuyor.

Uygulama, açık kaynaklı tepsi simgesi kütüphanesi H.NotifyIcon ile geliyor. Bu kütüphanede TaskbarIcon.ForceCreate(bool enablesEfficiencyMode = true), çağıran taraf false vermedikçe Verimlilik modunu tüm süreç için açar. Windows 10 1809+ ve Windows 11'de hem Idle önceliği hem EcoQoS uygulanır. En olası kaynak budur. Olağan düzeltme ForceCreate(false) çağırmak ya da pencere her gösterildiğinde Verimlilik modunu kapatmaktır.

Diğer geçici çözümler

  • CPU'yu yoran işler sırasında tarayıcıda WhatsApp Web kullanın.
  • Pencere donduysa ağır işi (dışa aktarma, oyun, güncelleme) bir an duraklatın.

WhatsApp'a bildirin

Asıl düzeltme WhatsApp'tan gelmeli. Sizde de oluyorsa uygulamadan bildirin: Ayarlar > Yardım > Bize ulaşın. Bu sayfanın bağlantısını ekleyebilirsiniz.

Lisans

MIT

About

Fix for WhatsApp Desktop freezing / "WhatsApp.Root is not responding" on Windows 10/11: the app runs itself in Efficiency mode (Idle priority + EcoQoS). Script restores normal priority.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages