MacBook Pro 13” 2020 (A2251) WindowServer WATCHDOG crash on wake unless external monitor is connected.

Ictc

Member
I’m looking for help diagnosing an issue on a MacBook Pro 13" 2020 (MacBookPro16,2, Intel with Iris Plus iGPU).

Main symptom
Repeated system crashes involving WindowServer (WATCHDOG timeout), typically during the transition from idle/sleep to wake.

Behavior details

- The issue occurs primarily after the system goes idle and is then woken up.
- Crash logs consistently show:
- WindowServer unresponsive
- WATCHDOG timeout
- “Display not ready”

History / onset

- The issue likely began after updating to macOS Tahoe, though this remains unverified
- The problem has persisted across subsequent updates, including the latest version tested.

Troubleshooting already performed

- Updated macOS → no change
- Tested in Safe Mode → issue still occurs
- Disabled screensavers and dynamic wallpapers → no change

Display-related behavior

- Internal display only → crashes are reproducible
- External monitor only → system is stable
- Internal + external display connected → system is stable (even if internal is set as primary)
- The issue appears only when the internal display is the sole active display

Additional observations

- The system is stable under load; the issue is specifically triggered during idle/wake transitions

Interpretation
Based on testing, this appears to be a hardware-related issue affecting the internal display path (likely eDP link, display cable, or panel/TCON), causing the display not to respond correctly during wake, leading to WindowServer timeout.

Any insight or similar cases would be appreciated.
 

Ictc

Member
That’s an interesting point.
The issue also occurs without physically moving or closing the lid, but I agree it could still be related to lid state / display power state transitions rather than the panel itself. I’ll do some further software-side investigation using the following command: log stream --predicate 'eventMessage contains[c] "Clamshell" OR eventMessage contains[c] "lid"' --info.
The machine is currently back with the customer, so further testing will have to wait until it comes back in.
 
Top