{"id":75892,"date":"2026-05-14T16:22:49","date_gmt":"2026-05-14T16:22:49","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=75892"},"modified":"2026-05-14T16:22:52","modified_gmt":"2026-05-14T16:22:52","slug":"macos-super-master-guide-troubleshooting-macbook-auto-reboot-after-shutdown","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/macos-super-master-guide-troubleshooting-macbook-auto-reboot-after-shutdown\/","title":{"rendered":"MacOS &#8211; Super Master Guide: Troubleshooting MacBook Auto-Reboot After Shutdown"},"content":{"rendered":"\n<p>This guide is for this exact problem:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">You run: sudo shutdown -h now\nMac shuts down\nThen Mac automatically powers on \/ reboots again\n<\/code><\/span><\/pre>\n\n\n<p>Your real case data shows:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">MacBook Pro Apple M4 Pro\nInternal display not visible\nExternal monitor used <span class=\"hljs-keyword\">as<\/span> primary display\nmacOS detects internal display <span class=\"hljs-keyword\">as<\/span> Online\nNo scheduled reboot\nNo <span class=\"hljs-keyword\">new<\/span> May <span class=\"hljs-number\">15<\/span> panic file\nOld Jan <span class=\"hljs-number\">27<\/span> panic was GPU\/display firmware related: AGXk \/ GFX FW\nShutdown still reboots even after removing HDMI\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>So your current strongest conclusion is:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Not VS Code\nNot normal pmset schedule\nNot normal app restart\nMost likely hardware \/ firmware \/ display-power path issue\n<\/code><\/span><\/pre>\n\n\n<p>Your old panic strongly points to Apple GPU\/display firmware: <code>AGXk ... Failed to stop GFX FW for GPU recovery<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">1. Understand the Problem Clearly<\/h1>\n\n\n\n<p>There are different issues people confuse:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Symptom<\/th><th>Meaning<\/th><\/tr><\/thead><tbody><tr><td>Mac wakes from sleep<\/td><td>Sleep\/wake setting, Bluetooth, network, Power Nap, monitor, USB<\/td><\/tr><tr><td>Mac restarts after crash<\/td><td>Kernel panic, watchdog, GPU, driver, hardware<\/td><\/tr><tr><td>Mac starts after shutdown<\/td><td>AutoBoot, power-on event, lid sensor, charger, power button, firmware, hardware<\/td><\/tr><tr><td>Mac shuts down but immediately boots<\/td><td>Firmware\/hardware power path, top case, lid sensor, board, display\/power issue<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Your problem is specifically:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">shutdown \u2192 power off \u2192 automatic power on again\n<\/code><\/span><\/pre>\n\n\n<p>That is different from normal sleep\/wake.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">2. First Command: Confirm Reboot History<\/h1>\n\n\n\n<p>Run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">last reboot | head -20\n<\/code><\/span><\/pre>\n\n\n<p>Example from your Mac:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">reboot<\/span> <span class=\"hljs-selector-tag\">time<\/span> <span class=\"hljs-selector-tag\">Fri<\/span> <span class=\"hljs-selector-tag\">May<\/span> 15 00<span class=\"hljs-selector-pseudo\">:39<\/span>\n<span class=\"hljs-selector-tag\">reboot<\/span> <span class=\"hljs-selector-tag\">time<\/span> <span class=\"hljs-selector-tag\">Fri<\/span> <span class=\"hljs-selector-tag\">May<\/span> 15 00<span class=\"hljs-selector-pseudo\">:17<\/span>\n<span class=\"hljs-selector-tag\">shutdown<\/span> <span class=\"hljs-selector-tag\">time<\/span> <span class=\"hljs-selector-tag\">Fri<\/span> <span class=\"hljs-selector-tag\">May<\/span> 15 00<span class=\"hljs-selector-pseudo\">:16<\/span>\n<span class=\"hljs-selector-tag\">reboot<\/span> <span class=\"hljs-selector-tag\">time<\/span> <span class=\"hljs-selector-tag\">Thu<\/span> <span class=\"hljs-selector-tag\">May<\/span> 14 23<span class=\"hljs-selector-pseudo\">:58<\/span>\n<span class=\"hljs-selector-tag\">shutdown<\/span> <span class=\"hljs-selector-tag\">time<\/span> <span class=\"hljs-selector-tag\">Thu<\/span> <span class=\"hljs-selector-tag\">May<\/span> 14 23<span class=\"hljs-selector-pseudo\">:58<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Meaning:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">The Mac really rebooted multiple times.\nThis is not just display wake.\n<\/code><\/span><\/pre>\n\n\n<p>Your logs showed repeated reboot\/shutdown entries around May 14\u201315.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">3. Check Scheduled Startup \/ Restart<\/h1>\n\n\n\n<p>Run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pmset -g sched\n<\/code><\/span><\/pre>\n\n\n<p>If output is empty, there is no scheduled startup\/reboot.<\/p>\n\n\n\n<p>In your case:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">pmset -g sched\n<span class=\"hljs-comment\"># empty<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Conclusion:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Scheduled reboot is NOT the cause.\n<\/code><\/span><\/pre>\n\n\n<p>Apple confirms <code>pmset<\/code> is the command-line utility used to schedule Mac startup, sleep, restart, or shutdown. (<a href=\"https:\/\/support.apple.com\/guide\/mac-help\/schedule-your-mac-to-turn-on-or-off-mchl40376151\/mac?utm_source=chatgpt.com\">Apple Support<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">4. Check Power Settings<\/h1>\n\n\n\n<p>Run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pmset -g custom\n<\/code><\/span><\/pre>\n\n\n<p>Or shorter:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">pmset -g custom | egrep -i <span class=\"hljs-string\">\"autorestart|womp|powernap|tcpkeepalive|sleep|disksleep|displaysleep\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Important settings:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Setting<\/th><th>Meaning<\/th><\/tr><\/thead><tbody><tr><td><code>autorestart<\/code><\/td><td>Restart after power failure<\/td><\/tr><tr><td><code>womp<\/code><\/td><td>Wake on network access<\/td><\/tr><tr><td><code>powernap<\/code><\/td><td>Background wake tasks<\/td><\/tr><tr><td><code>tcpkeepalive<\/code><\/td><td>Network keepalive during sleep<\/td><\/tr><tr><td><code>sleep<\/code><\/td><td>System sleep timer<\/td><\/tr><tr><td><code>displaysleep<\/code><\/td><td>Display sleep timer<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Your output showed:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">womp <span class=\"hljs-number\">0<\/span>\npowernap <span class=\"hljs-number\">0<\/span>\ntcpkeepalive <span class=\"hljs-number\">0<\/span>\npmset -g sched empty\nautorestart not <span class=\"hljs-keyword\">set<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Conclusion:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Normal power schedule \/ network wake \/ Power Nap is not the reason.\n<\/code><\/span><\/pre>\n\n\n<p>Your latest log confirms no scheduled reboot and wake\/network-related options were already disabled.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">5. Disable Auto Restart After Power Failure<\/h1>\n\n\n\n<p>Run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo pmset -a autorestart 0\n<\/code><\/span><\/pre>\n\n\n<p>Check:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">pmset -g custom | grep -i autorestart || <span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"autorestart not set\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>If you get:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">autorestart not <span class=\"hljs-keyword\">set<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>or no active <code>autorestart<\/code>, then this is not the cause.<\/p>\n\n\n\n<p>Your result:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">autorestart not <span class=\"hljs-keyword\">set<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Conclusion:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pmset autorestart is not causing the reboot.\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">6. Apple Silicon: Disable Auto Startup on Lid Open \/ Power Connect<\/h1>\n\n\n\n<p>For newer Mac laptops, Apple documents <code>BootPreference<\/code>, not just the older <code>AutoBoot<\/code>. Use this on Apple silicon MacBook models.<\/p>\n\n\n\n<p>To prevent startup when opening lid or connecting to power:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo nvram BootPreference=%00\n<\/code><\/span><\/pre>\n\n\n<p>Check:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">nvram -p | grep -i BootPreference\n<\/code><\/span><\/pre>\n\n\n<p>Expected:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">BootPreference\t%00\n<\/code><\/span><\/pre>\n\n\n<p>Undo later:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo nvram -d BootPreference\n<\/code><\/span><\/pre>\n\n\n<p>Apple says <code>sudo nvram BootPreference=%00<\/code> prevents startup when opening the lid or connecting to power, and <code>sudo nvram -d BootPreference<\/code> re-enables automatic startup. (<a href=\"https:\/\/support.apple.com\/en-in\/120622?utm_source=chatgpt.com\">Apple Support<\/a>)<\/p>\n\n\n\n<p>Older\/legacy command sometimes used:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo nvram AutoBoot=%00\n<\/code><\/span><\/pre>\n\n\n<p>Check:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">nvram -p | grep -i AutoBoot\n<\/code><\/span><\/pre>\n\n\n<p>But for modern Apple silicon MacBooks, prefer:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo nvram BootPreference=%00\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">7. Best Shutdown Test Command<\/h1>\n\n\n\n<p>Use this:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo shutdown -h now\n<\/code><\/span><\/pre>\n\n\n<p>Meaning:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">-h = halt \/ power off\nnow = immediately\n<\/code><\/span><\/pre>\n\n\n<p>If Mac still powers on again after this, it is not a normal user restart.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">8. Correct Test Order<\/h1>\n\n\n\n<p>Do not remove HDMI after shutdown command. Test cleanly.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Test A: With all devices connected<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo shutdown -h now\n<\/code><\/span><\/pre>\n\n\n<p>If it reboots, continue.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Test B: Remove external monitor \/ HDMI \/ USB-C first<\/h2>\n\n\n\n<p>Disconnect:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">HDMI\nUSB-C dock\nUSB hub\nexternal keyboard\nexternal mouse\nexternal SSD\ncharger, if battery has enough charge\n<\/code><\/span><\/pre>\n\n\n<p>Then run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo shutdown -h now\n<\/code><\/span><\/pre>\n\n\n<p>If it still reboots, external monitor alone is not the only cause.<\/p>\n\n\n\n<p>In your case, you already tested this and it still rebooted.<\/p>\n\n\n\n<p>Conclusion:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">External monitor alone is not the full cause.\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">9. Check Whether macOS Logged a Panic<\/h1>\n\n\n\n<p>Run:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">sudo find \/Library\/Logs\/DiagnosticReports \/<span class=\"hljs-keyword\">var<\/span>\/db\/PanicReporter -type f -iname <span class=\"hljs-string\">\"*panic*\"<\/span> -exec ls -lah {} \\; | tail <span class=\"hljs-number\">-20<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Then check for today\u2019s panic:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">sudo find \/Library\/Logs\/DiagnosticReports \/<span class=\"hljs-keyword\">var<\/span>\/db\/PanicReporter -type f \\( -iname <span class=\"hljs-string\">\"*panic*\"<\/span> -o -iname <span class=\"hljs-string\">\"*shutdown*\"<\/span> -o -iname <span class=\"hljs-string\">\"*reset*\"<\/span> \\) -newermt <span class=\"hljs-string\">\"2026-05-15 00:00\"<\/span> -exec ls -lah {} \\;\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Your result:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">Only<\/span> <span class=\"hljs-selector-tag\">old<\/span> <span class=\"hljs-selector-tag\">file<\/span>:\n<span class=\"hljs-selector-class\">.contents<\/span><span class=\"hljs-selector-class\">.panic<\/span> <span class=\"hljs-selector-tag\">Jan<\/span> 27\n\n<span class=\"hljs-selector-tag\">No<\/span> <span class=\"hljs-selector-tag\">May<\/span> 15 <span class=\"hljs-selector-tag\">panic<\/span> <span class=\"hljs-selector-tag\">file<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Conclusion:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Today\u2019s reboot was not recorded <span class=\"hljs-keyword\">as<\/span> a <span class=\"hljs-keyword\">new<\/span> kernel panic.\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>But your old panic was important:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">AGXk ... Failed to stop GFX FW for GPU recovery\n<\/code><\/span><\/pre>\n\n\n<p>That points to:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">GPU \/ display firmware \/ graphics path\n<\/code><\/span><\/pre>\n\n\n<p>Your panic file showed Apple GPU-related kernel extensions such as <code>IOGPUFamily<\/code> and <code>AGXG16X<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">10. Read Panic File<\/h1>\n\n\n\n<p>Run:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">sudo sed -n <span class=\"hljs-string\">'1,120p'<\/span> \/Library\/Logs\/DiagnosticReports\/.contents.panic\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>If unreadable:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo strings \/Library\/Logs\/DiagnosticReports\/.contents.panic | head -120\n<\/code><\/span><\/pre>\n\n\n<p>Important panic keywords:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Keyword<\/th><th>Meaning<\/th><\/tr><\/thead><tbody><tr><td><code>AGXk<\/code><\/td><td>Apple GPU driver\/firmware<\/td><\/tr><tr><td><code>GFX FW<\/code><\/td><td>Graphics firmware<\/td><\/tr><tr><td><code>IOGPUFamily<\/code><\/td><td>Apple GPU framework<\/td><\/tr><tr><td><code>AGXG16X<\/code><\/td><td>Apple GPU kext<\/td><\/tr><tr><td><code>watchdog<\/code><\/td><td>System\/hardware timed out<\/td><\/tr><tr><td><code>Sleep Wake Failure<\/code><\/td><td>Sleep\/wake firmware failure<\/td><\/tr><tr><td><code>SOCD<\/code><\/td><td>Apple silicon system controller crash<\/td><\/tr><tr><td><code>thermal<\/code><\/td><td>overheating \/ thermal shutdown<\/td><\/tr><tr><td><code>bridgeOS<\/code><\/td><td>older Intel T2-related issue<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Your old panic:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">AGXk ... Failed to stop GFX FW for GPU recovery\n<\/code><\/span><\/pre>\n\n\n<p>Conclusion:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Old crash was GPU\/display firmware related.\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">11. Check Who Requested Shutdown or Restart<\/h1>\n\n\n\n<p>Run:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-14\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">log show --last <span class=\"hljs-number\">20<\/span>m --style compact --predicate <span class=\"hljs-string\">'eventMessage CONTAINS&#91;c] \"power button\" OR eventMessage CONTAINS&#91;c] \"lid\" OR eventMessage CONTAINS&#91;c] \"clamshell\" OR eventMessage CONTAINS&#91;c] \"wake\" OR eventMessage CONTAINS&#91;c] \"shutdown\" OR eventMessage CONTAINS&#91;c] \"restart\"'<\/span> | tail <span class=\"hljs-number\">-80<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-14\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>What to look for:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Log phrase<\/th><th>Meaning<\/th><\/tr><\/thead><tbody><tr><td><code>power button<\/code><\/td><td>Power button event<\/td><\/tr><tr><td><code>lid<\/code> \/ <code>clamshell<\/code><\/td><td>Lid sensor event<\/td><\/tr><tr><td><code>wake<\/code><\/td><td>System woke from sleep\/off-like state<\/td><\/tr><tr><td><code>shutdown<\/code><\/td><td>Shutdown sequence<\/td><\/tr><tr><td><code>restart<\/code><\/td><td>Restart command<\/td><\/tr><tr><td><code>Previous shutdown cause<\/code><\/td><td>Shutdown reason<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Your log showed mostly:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">BT not yet ready\nShutdown sockets\nNo wake work scheduled\nbackground boot tasks\n<\/code><\/span><\/pre>\n\n\n<p>Conclusion:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">No clear app restart request\nNo power button evidence\nNo scheduled restart evidence\n<\/code><\/span><\/pre>\n\n\n<p>Your log mainly showed services shutting down\/restarting sockets and background tasks, not a user\/app-requested restart cause.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">12. Check Previous Shutdown Cause<\/h1>\n\n\n\n<p>Run:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-15\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">log show --last <span class=\"hljs-number\">3<\/span>h --style compact --predicate <span class=\"hljs-string\">'eventMessage CONTAINS&#91;c] \"Previous shutdown cause\"'<\/span> | tail <span class=\"hljs-number\">-20<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-15\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>If empty:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">macOS did not expose a useful shutdown cause.\n<\/code><\/span><\/pre>\n\n\n<p>Your command returned no useful shutdown cause.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">13. Check Exact Reboot Window<\/h1>\n\n\n\n<p>Replace the time with your real reboot time.<\/p>\n\n\n\n<p>Example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-16\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">log show --start <span class=\"hljs-string\">\"2026-05-15 00:35:00\"<\/span> --end <span class=\"hljs-string\">\"2026-05-15 00:42:00\"<\/span> --style compact --predicate <span class=\"hljs-string\">'eventMessage CONTAINS&#91;c] \"shutdown\" OR eventMessage CONTAINS&#91;c] \"panic\" OR eventMessage CONTAINS&#91;c] \"watchdog\" OR eventMessage CONTAINS&#91;c] \"SOCD\" OR eventMessage CONTAINS&#91;c] \"thermal\" OR eventMessage CONTAINS&#91;c] \"restart\"'<\/span> | tail <span class=\"hljs-number\">-100<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-16\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>If it shows no panic\/watchdog\/thermal:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">No recorded software crash reason found.\n<\/code><\/span><\/pre>\n\n\n<p>Your exact-window search did not show a new panic or useful shutdown reason for May 15.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">14. Check Sleep\/Wake Log<\/h1>\n\n\n\n<p>Run:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-17\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">pmset -g log | egrep -i <span class=\"hljs-string\">\"Wake reason|Sleep Wake Failure|DarkWake|Shutdown|Restart|panic\"<\/span> | tail <span class=\"hljs-number\">-80<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-17\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Exact window:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-18\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">pmset -g log | awk <span class=\"hljs-string\">'\/2026-05-15 00:35\/,\/2026-05-15 00:42\/'<\/span> | egrep -i <span class=\"hljs-string\">\"sleep|wake|darkwake|panic|shutdown|restart|failure\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-18\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>If exact window gives nothing useful:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">It was probably not a normal sleep\/wake event.\n<\/code><\/span><\/pre>\n\n\n<p>Your exact sleep\/wake window produced no useful entries.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">15. Check Display Status<\/h1>\n\n\n\n<p>Run:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-19\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">system_profiler SPDisplaysDataType | egrep -i <span class=\"hljs-string\">\"Chipset|Display|Resolution|Main Display|Online|Connection|Display Type\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-19\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Your output:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Chipset Model: Apple M4 Pro\nExternal display: 1920 x 1080, Main Display: Yes, Online: Yes\nBuilt-in Liquid Retina XDR Display\nResolution: 3456 x 2234 Retina\nOnline: Yes\nConnection Type: Internal\n<\/code><\/span><\/pre>\n\n\n<p>Meaning:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">macOS thinks internal display is online.\nBut physically you cannot see it.\n<\/code><\/span><\/pre>\n\n\n<p>This is very important.<\/p>\n\n\n\n<p>Conclusion:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Internal display panel \/ cable \/ backlight \/ display path issue is very likely.\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">16. Check Lid Sensor<\/h1>\n\n\n\n<p>Run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">ioreg -r -k AppleClamshellState -d 4 | grep AppleClamshellState\n<\/code><\/span><\/pre>\n\n\n<p>Expected:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Open lid   = No\nClosed lid = Yes\n<\/code><\/span><\/pre>\n\n\n<p>To test live:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-20\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">while<\/span> <span class=\"hljs-literal\">true<\/span>; <span class=\"hljs-keyword\">do<\/span> ioreg -r -k AppleClamshellState -d <span class=\"hljs-number\">4<\/span> | grep AppleClamshellState; sleep <span class=\"hljs-number\">2<\/span>; done\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-20\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Then slowly close\/open lid.<\/p>\n\n\n\n<p>Stop:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Control + C\n<\/code><\/span><\/pre>\n\n\n<p>Meaning:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Result<\/th><th>Meaning<\/th><\/tr><\/thead><tbody><tr><td>Changes <code>No \u2192 Yes<\/code><\/td><td>Lid sensor likely works<\/td><\/tr><tr><td>Always <code>No<\/code><\/td><td>Lid sensor\/top-case issue<\/td><\/tr><tr><td>Always <code>Yes<\/code><\/td><td>Lid sensor thinks lid closed<\/td><\/tr><tr><td>Random changes<\/td><td>Lid sensor\/cable\/magnet issue<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Your current result:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">AppleClamshellState = No\n<\/code><\/span><\/pre>\n\n\n<p>That means lid is currently detected open. You still need close\/open test to confirm sensor changes.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">17. Reset Power Settings<\/h1>\n\n\n\n<p>Run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo pmset restoredefaults\n<\/code><\/span><\/pre>\n\n\n<p>Then test:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo shutdown -h now\n<\/code><\/span><\/pre>\n\n\n<p>This resets custom power settings.<\/p>\n\n\n\n<p>Use when:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">power settings are messy\nsleep\/disksleep warnings appear\nmany pmset changes were tested\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">18. Strong Test: Disable Sleep Temporarily<\/h1>\n\n\n\n<p>This is for testing only.<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo pmset -a sleep 0 displaysleep 0 disksleep 0 autorestart 0 womp 0 powernap 0 tcpkeepalive 0\n<\/code><\/span><\/pre>\n\n\n<p>Then:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo shutdown -h now\n<\/code><\/span><\/pre>\n\n\n<p>If still reboots:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Not normal sleep setting.\n<\/code><\/span><\/pre>\n\n\n<p>Restore later:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo pmset restoredefaults\n<\/code><\/span><\/pre>\n\n\n<p>or:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo pmset -a sleep 30 displaysleep 10 disksleep 10\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">19. Safe Mode Test<\/h1>\n\n\n\n<p>For Apple silicon Mac:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Shut down.<\/li>\n\n\n\n<li>Press and hold power button until startup options appear.<\/li>\n\n\n\n<li>Select your disk.<\/li>\n\n\n\n<li>Hold Shift.<\/li>\n\n\n\n<li>Click <strong>Continue in Safe Mode<\/strong>.<\/li>\n<\/ol>\n\n\n\n<p>Apple says Apple silicon Safe Mode is started from startup options by holding Shift while choosing the startup volume. (<a href=\"https:\/\/support.apple.com\/en-au\/guide\/mac-help\/mh21245\/mac?utm_source=chatgpt.com\">Apple Support<\/a>)<\/p>\n\n\n\n<p>Then run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo shutdown -h now\n<\/code><\/span><\/pre>\n\n\n<p>Result:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Safe Mode result<\/th><th>Meaning<\/th><\/tr><\/thead><tbody><tr><td>Shutdown works<\/td><td>third-party software\/driver\/login item may be involved<\/td><\/tr><tr><td>Still reboots<\/td><td>hardware\/firmware\/power path likely<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">20. Apple Diagnostics<\/h1>\n\n\n\n<p>For Apple silicon Mac:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Shut down.<\/li>\n\n\n\n<li>Press and hold power button until startup options appear.<\/li>\n\n\n\n<li>Press:<\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Command + D\n<\/code><\/span><\/pre>\n\n\n<p>Apple\u2019s startup options screen supports opening Apple Diagnostics using Command-D. (<a href=\"https:\/\/support.apple.com\/en-us\/102342?utm_source=chatgpt.com\">Apple Support<\/a>)<\/p>\n\n\n\n<p>If you get an error code, save it.<\/p>\n\n\n\n<p>Common useful codes may point to:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">display\nbattery\nlogic board\nmemory\nstorage\npower\nsensor\n<\/code><\/span><\/pre>\n\n\n<p>If Diagnostics says no issue but problem continues, that does not fully clear hardware. Intermittent display\/power issues may not always appear.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">21. Recovery Mode Test<\/h1>\n\n\n\n<p>For Apple silicon:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Shut down.<\/li>\n\n\n\n<li>Hold power button until startup options.<\/li>\n\n\n\n<li>Choose <strong>Options<\/strong>.<\/li>\n\n\n\n<li>Continue into Recovery.<\/li>\n<\/ol>\n\n\n\n<p>Apple documents Recovery on Apple silicon as holding the power button until volumes and Options appear. (<a href=\"https:\/\/support.apple.com\/en-au\/guide\/mac-help\/mchl82829c17\/mac?utm_source=chatgpt.com\">Apple Support<\/a>)<\/p>\n\n\n\n<p>From Recovery, use Terminal:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">shutdown -h now\n<\/code><\/span><\/pre>\n\n\n<p>Result:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Recovery shutdown result<\/th><th>Meaning<\/th><\/tr><\/thead><tbody><tr><td>Stays off<\/td><td>installed macOS\/userspace may be involved<\/td><\/tr><tr><td>Reboots again<\/td><td>firmware\/hardware more likely<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">22. Reinstall macOS Test<\/h1>\n\n\n\n<p>Do this only after backup.<\/p>\n\n\n\n<p>Apple recommends software updates, Safe Mode, reinstalling macOS, and checking hardware when a Mac restarts because of a problem. (<a href=\"https:\/\/support.apple.com\/en-us\/102382?utm_source=chatgpt.com\">Apple Support<\/a>)<\/p>\n\n\n\n<p>Use this when:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">No clear panic\nNo schedule\nNo third-party cause\nSafe Mode changes behavior\nSystem files may be broken\n<\/code><\/span><\/pre>\n\n\n<p>But in your case, because internal display is already physically not visible, reinstall may not solve the root issue.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">23. Hardware Scenario Matrix<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Scenario A: Scheduled reboot<\/h2>\n\n\n\n<p>Commands:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pmset -g sched\n<\/code><\/span><\/pre>\n\n\n<p>If output has schedule:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo pmset repeat cancel\n<\/code><\/span><\/pre>\n\n\n<p>Conclusion:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Scheduled startup\/restart caused issue.\n<\/code><\/span><\/pre>\n\n\n<p>Your case:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">No schedule.\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Scenario B: Wake on network \/ Power Nap<\/h2>\n\n\n\n<p>Commands:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-21\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">pmset -g custom | egrep -i <span class=\"hljs-string\">\"womp|powernap|tcpkeepalive\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-21\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Fix:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo pmset -a womp 0 powernap 0 tcpkeepalive 0\n<\/code><\/span><\/pre>\n\n\n<p>Your case:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Already disabled.\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Scenario C: Auto restart after power failure<\/h2>\n\n\n\n<p>Command:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-22\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">pmset -g custom | grep -i autorestart || <span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"autorestart not set\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-22\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Fix:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo pmset -a autorestart 0\n<\/code><\/span><\/pre>\n\n\n<p>Your case:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-23\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">autorestart not <span class=\"hljs-keyword\">set<\/span>.\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-23\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Scenario D: Auto startup when lid opens \/ charger connects<\/h2>\n\n\n\n<p>Modern Apple silicon fix:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo nvram BootPreference=%00\n<\/code><\/span><\/pre>\n\n\n<p>Check:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">nvram -p | grep -i BootPreference\n<\/code><\/span><\/pre>\n\n\n<p>Undo:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo nvram -d BootPreference\n<\/code><\/span><\/pre>\n\n\n<p>Apple documents <code>BootPreference=%00<\/code> for preventing startup when lid opens or power connects. (<a href=\"https:\/\/support.apple.com\/en-in\/120622?utm_source=chatgpt.com\">Apple Support<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Scenario E: App requests restart<\/h2>\n\n\n\n<p>Command:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-24\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">log show --last <span class=\"hljs-number\">30<\/span>m --style compact --predicate <span class=\"hljs-string\">'eventMessage CONTAINS&#91;c] \"restart\" OR eventMessage CONTAINS&#91;c] \"reboot\" OR eventMessage CONTAINS&#91;c] \"logout\" OR eventMessage CONTAINS&#91;c] \"shutdown\"'<\/span> | tail <span class=\"hljs-number\">-100<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-24\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>If you see app\/updater:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Disable that app auto update\nQuit app fully\nRemove login item\nReinstall app\n<\/code><\/span><\/pre>\n\n\n<p>Your earlier VS Code <code>ShipIt<\/code> updater was noisy, but later shutdown still rebooted after VS Code isolation, so it is not final root cause.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Scenario F: Kernel panic<\/h2>\n\n\n\n<p>Commands:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-25\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">sudo find \/Library\/Logs\/DiagnosticReports \/<span class=\"hljs-keyword\">var<\/span>\/db\/PanicReporter -type f -iname <span class=\"hljs-string\">\"*panic*\"<\/span> -exec ls -lah {} \\; | tail <span class=\"hljs-number\">-20<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-25\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Read latest:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo strings \/path\/to\/latest.panic | head -120\n<\/code><\/span><\/pre>\n\n\n<p>If panic contains GPU:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">AGXk\nIOGPUFamily\nAGXG16X\nGFX FW\n<\/code><\/span><\/pre>\n\n\n<p>Suspect:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">GPU\/display firmware\ninternal display path\nexternal monitor\/dock\nmacOS graphics bug\nlogic board\/display hardware\n<\/code><\/span><\/pre>\n\n\n<p>Your old panic was GPU\/display related.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Scenario G: Sleep Wake Failure<\/h2>\n\n\n\n<p>Command:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-26\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">sudo find \/Library\/Logs\/DiagnosticReports \/<span class=\"hljs-keyword\">var<\/span>\/db\/PanicReporter -type f -iname <span class=\"hljs-string\">\"*Sleep Wake Failure*\"<\/span> -exec ls -lah {} \\; | tail <span class=\"hljs-number\">-20<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-26\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Fix attempts:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo pmset restoredefaults\nsudo pmset -a powernap 0 tcpkeepalive 0 womp 0\n<\/code><\/span><\/pre>\n\n\n<p>Also remove:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">USB-C dock\nexternal display\nexternal SSD\nBluetooth devices\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Scenario H: Display detected but black<\/h2>\n\n\n\n<p>Command:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-27\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">system_profiler SPDisplaysDataType | egrep -i <span class=\"hljs-string\">\"Display Type|Main Display|Online|Connection|Resolution\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-27\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>If internal display says:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Online: Yes\nConnection Type: Internal\n<\/code><\/span><\/pre>\n\n\n<p>but screen is black:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Display assembly \/ display cable \/ backlight \/ display power path issue\n<\/code><\/span><\/pre>\n\n\n<p>Your case exactly matches this.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Scenario I: Lid sensor issue<\/h2>\n\n\n\n<p>Command:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-28\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">while<\/span> <span class=\"hljs-literal\">true<\/span>; <span class=\"hljs-keyword\">do<\/span> ioreg -r -k AppleClamshellState -d <span class=\"hljs-number\">4<\/span> | grep AppleClamshellState; sleep <span class=\"hljs-number\">2<\/span>; done\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-28\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Expected:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Open lid   = No\nClosed lid = Yes\n<\/code><\/span><\/pre>\n\n\n<p>If it does not change:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-29\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">lid sensor \/ magnet \/ top <span class=\"hljs-keyword\">case<\/span> \/ display assembly issue\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-29\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Scenario J: Power button \/ top case issue<\/h2>\n\n\n\n<p>Symptoms:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Mac powers on immediately after shutdown\nNo schedule\nNo panic\nNo AutoBoot reason\nNo app restart\n<\/code><\/span><\/pre>\n\n\n<p>Possible cause:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-30\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Power button signal stuck\/intermittent\nKeyboard\/top <span class=\"hljs-keyword\">case<\/span> issue\nTouch ID\/power button hardware issue\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-30\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Test:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-31\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">log show --last <span class=\"hljs-number\">20<\/span>m --style compact --predicate <span class=\"hljs-string\">'eventMessage CONTAINS&#91;c] \"power button\"'<\/span> | tail <span class=\"hljs-number\">-50<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-31\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>If logs show power button events without pressing it:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-32\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">top <span class=\"hljs-keyword\">case<\/span> \/ power button issue likely\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-32\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>If no logs show it, hardware can still be faulty at low firmware level.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Scenario K: Logic board power-management issue<\/h2>\n\n\n\n<p>Symptoms:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Mac reboots after real halt\nNo panic\nNo schedule\nNo app restart\nNo peripheral cause\nAuto-start disabled\nInternal display already faulty\n<\/code><\/span><\/pre>\n\n\n<p>Likely service items:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">logic board\npower management circuit\ndisplay power rail\nUSB-C\/power controller\nsensor path\n<\/code><\/span><\/pre>\n\n\n<p>This is not command-fixable.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">24. Your Case: Final Diagnosis Based on Evidence<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Evidence 1: No scheduled reboot<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-33\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">pmset -g sched <span class=\"hljs-keyword\">empty<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-33\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Conclusion:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Not scheduled startup\/restart.\n<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Evidence 2: Wake\/network options off<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">womp 0\npowernap 0\ntcpkeepalive 0\n<\/code><\/span><\/pre>\n\n\n<p>Conclusion:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Not normal network wake \/ Power Nap.\n<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Evidence 3: No new May 15 panic<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-34\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">Only<\/span> <span class=\"hljs-selector-tag\">old<\/span> <span class=\"hljs-selector-class\">.contents<\/span><span class=\"hljs-selector-class\">.panic<\/span> <span class=\"hljs-selector-tag\">from<\/span> <span class=\"hljs-selector-tag\">Jan<\/span> 27\n<span class=\"hljs-selector-tag\">No<\/span> <span class=\"hljs-selector-tag\">May<\/span> 15 <span class=\"hljs-selector-tag\">panic<\/span> <span class=\"hljs-selector-tag\">found<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-34\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Conclusion:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-35\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Current shutdown\u2192reboot is not recorded <span class=\"hljs-keyword\">as<\/span> a <span class=\"hljs-keyword\">new<\/span> kernel panic.\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-35\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Evidence 4: Old panic is GPU\/display firmware<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">AGXk ... Failed to stop GFX FW for GPU recovery\n<\/code><\/span><\/pre>\n\n\n<p>Conclusion:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">There is history of GPU\/display firmware crash.\n<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Evidence 5: Internal display is detected online but not visible<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Built-in Liquid Retina XDR Display\nOnline: Yes\nConnection Type: Internal\n<\/code><\/span><\/pre>\n\n\n<p>Conclusion:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Internal display panel\/cable\/backlight\/display path issue is very likely.\n<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Evidence 6: Shutdown still reboots without HDMI<\/h2>\n\n\n\n<p>Conclusion:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">External monitor alone is not the full cause.\n<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Final likely root cause<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-36\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Hardware \/ firmware power-on issue connected to internal display path, lid\/top-<span class=\"hljs-keyword\">case<\/span> sensor path, or logic board power management.\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-36\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Most likely order:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-37\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-number\">1.<\/span> Internal display assembly \/ display cable \/ backlight\n<span class=\"hljs-number\">2.<\/span> Lid sensor \/ display-lid sensor path\n<span class=\"hljs-number\">3.<\/span> Power button \/ top <span class=\"hljs-keyword\">case<\/span>\n<span class=\"hljs-number\">4.<\/span> Logic board power-management circuit\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-37\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">25. Direct Fix Commands to Try Before Service<\/h1>\n\n\n\n<p>Run this full software-side reset:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo pmset restoredefaults\nsudo pmset -a autorestart 0 womp 0 powernap 0 tcpkeepalive 0\nsudo nvram BootPreference=%00\n<\/code><\/span><\/pre>\n\n\n<p>Check:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-38\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">pmset -g sched\npmset -g custom | egrep -i <span class=\"hljs-string\">\"autorestart|womp|powernap|tcpkeepalive|sleep\"<\/span>\nnvram -p | grep -i BootPreference\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-38\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Then shut down:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo shutdown -h now\n<\/code><\/span><\/pre>\n\n\n<p>If still reboots:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Stop software debugging.\nMove to hardware\/service.\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">26. What to Tell Apple Service<\/h1>\n\n\n\n<p>Use this exact message:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-39\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">My MacBook Pro shuts down but automatically powers on\/reboots again after shutdown.\n\nI tested:\n- sudo shutdown -h now\n- pmset schedule is <span class=\"hljs-keyword\">empty<\/span>\n- autorestart is not set\n- womp, powernap, tcpkeepalive are disabled\n- no <span class=\"hljs-keyword\">new<\/span> panic file was generated <span class=\"hljs-keyword\">for<\/span> the latest reboot\n- external monitor\/HDMI was removed before shutdown, but issue still happens\n\nImportant display symptom:\n- Built-in display is physically not visible\/working\n- macOS still detects the built-in Liquid Retina XDR display <span class=\"hljs-keyword\">as<\/span> Online <span class=\"hljs-keyword\">and<\/span> Internal\n- External monitor is used <span class=\"hljs-keyword\">as<\/span> the main display\n\nOld panic report shows:\nAGXk ... Failed to stop GFX FW <span class=\"hljs-keyword\">for<\/span> GPU recovery\n\nPlease check:\n- internal display panel\/cable\/backlight path\n- lid sensor \/ clamshell sensor\n- power button\/top <span class=\"hljs-keyword\">case<\/span>\n- logic board power-management\/display power path\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-39\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Before service, Apple recommends backing up the Mac because service may require erasing or replacing the startup disk. (<a href=\"https:\/\/support.apple.com\/en-us\/116942?utm_source=chatgpt.com\">Apple Support<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">27. One-Page Quick Command Sheet<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Reboot history<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">last reboot | head -20\n<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Scheduled startup\/reboot<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pmset -g sched\n<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Power settings<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-40\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">pmset -g custom | egrep -i <span class=\"hljs-string\">\"autorestart|womp|powernap|tcpkeepalive|sleep|disksleep|displaysleep\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-40\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Disable power wake options<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo pmset -a autorestart 0 womp 0 powernap 0 tcpkeepalive 0\n<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Disable Apple silicon auto startup on lid\/power<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo nvram BootPreference=%00\n<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Undo BootPreference<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo nvram -d BootPreference\n<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Real shutdown test<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo shutdown -h now\n<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Find panic files<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-41\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">sudo find \/Library\/Logs\/DiagnosticReports \/<span class=\"hljs-keyword\">var<\/span>\/db\/PanicReporter -type f -iname <span class=\"hljs-string\">\"*panic*\"<\/span> -exec ls -lah {} \\; | tail <span class=\"hljs-number\">-20<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-41\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Find today\u2019s panic\/shutdown\/reset files<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-42\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">sudo find \/Library\/Logs\/DiagnosticReports \/<span class=\"hljs-keyword\">var<\/span>\/db\/PanicReporter -type f \\( -iname <span class=\"hljs-string\">\"*panic*\"<\/span> -o -iname <span class=\"hljs-string\">\"*shutdown*\"<\/span> -o -iname <span class=\"hljs-string\">\"*reset*\"<\/span> \\) -newermt <span class=\"hljs-string\">\"2026-05-15 00:00\"<\/span> -exec ls -lah {} \\;\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-42\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Read panic<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo strings \/Library\/Logs\/DiagnosticReports\/.contents.panic | head -120\n<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Display detection<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-43\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">system_profiler SPDisplaysDataType | egrep -i <span class=\"hljs-string\">\"Display Type|Main Display|Online|Connection|Resolution\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-43\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Lid sensor<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">ioreg -r -k AppleClamshellState -d 4 | grep AppleClamshellState\n<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Live lid sensor test<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-44\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">while<\/span> <span class=\"hljs-literal\">true<\/span>; <span class=\"hljs-keyword\">do<\/span> ioreg -r -k AppleClamshellState -d <span class=\"hljs-number\">4<\/span> | grep AppleClamshellState; sleep <span class=\"hljs-number\">2<\/span>; done\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-44\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Logs for shutdown\/restart\/power button<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-45\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">log show --last <span class=\"hljs-number\">20<\/span>m --style compact --predicate <span class=\"hljs-string\">'eventMessage CONTAINS&#91;c] \"power button\" OR eventMessage CONTAINS&#91;c] \"lid\" OR eventMessage CONTAINS&#91;c] \"clamshell\" OR eventMessage CONTAINS&#91;c] \"wake\" OR eventMessage CONTAINS&#91;c] \"shutdown\" OR eventMessage CONTAINS&#91;c] \"restart\"'<\/span> | tail <span class=\"hljs-number\">-80<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-45\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Reset power settings<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo pmset restoredefaults\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">28. Final Practical Conclusion<\/h1>\n\n\n\n<p>For your Mac, based on all collected evidence:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">The reboot-after-shutdown issue is very unlikely to be caused by VS Code, app updater, Power Nap, scheduled reboot, Wake-on-LAN, or a normal macOS sleep setting.\n<\/code><\/span><\/pre>\n\n\n<p>The strongest diagnosis is:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-46\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Hardware\/firmware power issue related to the internal display path, lid\/top-<span class=\"hljs-keyword\">case<\/span> sensor path, or logic board power management.\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-46\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>The biggest red flag is:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Internal display is detected Online by macOS, but physically it does not work.\n<\/code><\/span><\/pre>\n\n\n<p>Combined with your old GPU panic:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">AGXk ... Failed to stop GFX FW for GPU recovery\n<\/code><\/span><\/pre>\n\n\n<p>the repair priority should be:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-47\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-number\">1.<\/span> Internal display assembly \/ display cable \/ backlight path\n<span class=\"hljs-number\">2.<\/span> Lid sensor \/ clamshell sensor\n<span class=\"hljs-number\">3.<\/span> Power button \/ top <span class=\"hljs-keyword\">case<\/span>\n<span class=\"hljs-number\">4.<\/span> Logic board power-management\/display power circuit\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-47\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Commands can confirm and reduce false causes, but if <code>sudo shutdown -h now<\/code> still reboots after <code>BootPreference=%00<\/code>, <code>autorestart 0<\/code>, no schedule, no peripherals, and no new panic, then this is no longer a normal software fix.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This guide is for this exact problem: Your real case data shows: So your current strongest conclusion is: Your old panic strongly points to Apple GPU\/display firmware:&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[11138],"tags":[],"class_list":["post-75892","post","type-post","status-publish","format-standard","hentry","category-best-tools"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/75892","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=75892"}],"version-history":[{"count":1,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/75892\/revisions"}],"predecessor-version":[{"id":75893,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/75892\/revisions\/75893"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=75892"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=75892"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=75892"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}