{"code":"var Component=(()=>{var p=Object.create;var a=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var m=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var k=(n,i)=>()=>(i||n((i={exports:{}}).exports,i),i.exports),y=(n,i)=>{for(var t in i)a(n,t,{get:i[t],enumerable:!0})},l=(n,i,t,s)=>{if(i&&typeof i==\"object\"||typeof i==\"function\")for(let r of u(i))!f.call(n,r)&&r!==t&&a(n,r,{get:()=>i[r],enumerable:!(s=g(i,r))||s.enumerable});return n};var w=(n,i,t)=>(t=n!=null?p(m(n)):{},l(i||!n||!n.__esModule?a(t,\"default\",{value:n,enumerable:!0}):t,n)),b=n=>l(a({},\"__esModule\",{value:!0}),n);var h=k((A,o)=>{o.exports=_jsx_runtime});var v={};y(v,{default:()=>c});var e=w(h());function d(n){let i={a:\"a\",code:\"code\",em:\"em\",h2:\"h2\",h3:\"h3\",img:\"img\",li:\"li\",ol:\"ol\",p:\"p\",pre:\"pre\",span:\"span\",strong:\"strong\",ul:\"ul\",...n.components};return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(i.p,{children:`You are mid-sentence in a document, or rendering a timeline, or just reading a webpage, and the screen goes black. A few seconds later your Mac is sitting at the login window with a dialog that reads \"Your computer restarted because of a problem.\" That is a kernel panic, and on macOS Tahoe 26.5 it has become one of the most reported \"the whole machine just died\" complaints in support forums and developer threads. A kernel panic is not an app crashing \\u2014 it is the operating system's core deciding that continuing would be unsafe, so it halts everything and reboots.`}),`\n`,(0,e.jsxs)(i.p,{children:[\"The good news is that a Mac kernel panic almost always leaves a fingerprint behind: a panic report. Buried in that report is a \",(0,e.jsx)(i.code,{children:\"panicString\"}),\", a backtrace, and a list of kernel extensions that were in memory when the crash happened. Once you can read those three things, you stop guessing and start diagnosing. This guide is built around that skill. We will read a real panic report line by line, then walk a decision tree that maps what you find to the most common Tahoe 26.5 triggers \\u2014 high external-monitor refresh rates, kernel and system extensions, sleep/wake failures with peripherals, the hardware items Apple itself acknowledged in the 26.5 release, and corrupted system state.\"]}),`\n`,(0,e.jsx)(i.p,{children:(0,e.jsx)(i.img,{alt:\"Mac kernel panic restart screen on macOS Tahoe\",src:\"/images/blog/mac-kernel-panic-random-restart-macos-tahoe-26-5-refresh-rate-panic-log-fix-2026/hero.webp\",width:\"2848\",height:\"1504\"})}),`\n`,(0,e.jsx)(i.p,{children:\"macOS Tahoe 26.5 shipped on 2026-05-11, and like every point release it fixed some problems and surfaced others. Apple's enterprise release notes acknowledged restart fixes affecting M5 MacBook Air and M5 Pro/Max models, content-filter network extensions causing restarts, and a black-screen-after-update condition. That context matters because it tells you Apple knows kernel-level stability regressions exist in this generation. But not every panic is Apple's bug to fix \\u2014 many are caused by a third-party display running too fast, an old VPN kext, or a flaky Thunderbolt hub. The panic log is how you tell which is which.\"}),`\n`,(0,e.jsx)(i.h2,{id:\"key-takeaways\",children:\"Key Takeaways\"}),`\n`,(0,e.jsxs)(i.ul,{children:[`\n`,(0,e.jsxs)(i.li,{children:[\"A kernel panic is a whole-system restart triggered by the OS core, not an app crash \\u2014 and it always writes a panic report to \",(0,e.jsx)(i.code,{children:\"/Library/Logs/DiagnosticReports/\"}),\" that names the likely cause.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[\"Read three fields first: the \",(0,e.jsx)(i.code,{children:\"panicString\"}),\" (the human-readable reason), the \",(0,e.jsx)(i.strong,{children:\"backtrace\"}),\" (which process/driver was running), and \",(0,e.jsx)(i.strong,{children:'\"Kernel Extensions in backtrace\"'}),\" (third-party drivers implicated).\"]}),`\n`,(0,e.jsxs)(i.li,{children:[\"The cleanest, most community-confirmed Tahoe 26.5 fix is \",(0,e.jsx)(i.strong,{children:\"dropping a third-party external display from 120/144/240 Hz down to 60 Hz\"}),\" \\u2014 high-refresh-rate GPU/display panics on Mac Studio and Mac mini are widespread and resolve instantly when the rate is lowered.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[\"Audit kernel and system extensions with \",(0,e.jsx)(i.code,{children:\"kmutil showloaded\"}),\" and \",(0,e.jsx)(i.code,{children:\"systemextensionsctl list\"}),\", then boot \",(0,e.jsx)(i.strong,{children:\"Safe Mode\"}),\" to prove whether a third-party extension is the trigger; VPN, antivirus, and virtualization tools are the usual suspects.\"]}),`\n`,(0,e.jsx)(i.li,{children:\"Apple acknowledged 26.5 restart fixes for M5 MacBook Air / M5 Pro & Max, content-filter extensions, and black-screen-after-update; remaining panics are community-reported with workarounds, so update fully, then isolate methodically before assuming hardware failure.\"}),`\n`]}),`\n`,(0,e.jsx)(i.h2,{id:\"kernel-panic-vs-app-crash-vs-freeze-know-what-youre-looking-at\",children:\"Kernel Panic vs App Crash vs Freeze: Know What You're Looking At\"}),`\n`,(0,e.jsx)(i.p,{children:\"Before you open a single log, get the terminology right, because the fix path is completely different for each.\"}),`\n`,(0,e.jsxs)(i.p,{children:[\"A \",(0,e.jsx)(i.strong,{children:\"kernel panic\"}),\" is a failure inside the XNU kernel \\u2014 the lowest layer of macOS that talks directly to the CPU, GPU, memory controller, and drivers. When the kernel hits a state it cannot safely recover from (a bad memory access in a driver, a hardware fault, a deadlock in a critical path), it deliberately halts the whole system and restarts. The telltale sign is the post-reboot dialog: \",(0,e.jsx)(i.strong,{children:'\"Your computer restarted because of a problem. Press a key or wait a few seconds to continue starting up.\"'}),' On older or Intel Macs you may briefly see a darkened screen with \"You need to restart your computer. Hold down the Power button...\" in multiple languages. Either way, the entire machine went down, not just one app.']}),`\n`,(0,e.jsxs)(i.p,{children:[\"An \",(0,e.jsx)(i.strong,{children:\"app crash\"}),' is a single process quitting unexpectedly. The rest of macOS keeps running, you get a \"[App] quit unexpectedly\" dialog with Reopen/Report buttons, and you can keep using everything else. App crashes write ',(0,e.jsx)(i.code,{children:\".crash\"}),\" or \",(0,e.jsx)(i.code,{children:\".ips\"}),\" reports too, but they are scoped to one process. If your Safari tabs die but the Dock, Finder, and other apps stay alive, that is an app crash, not a panic \\u2014 and it is covered by our separate guide on \",(0,e.jsx)(i.a,{href:\"/blog/safari-tab-crashes-macos-tahoe-26-5-webkit-feature-flag-fix-2026\",children:\"Safari tab crashes on macOS Tahoe 26.5\"}),\".\"]}),`\n`,(0,e.jsxs)(i.p,{children:[\"A \",(0,e.jsx)(i.strong,{children:\"freeze or hang\"}),\" is when the system stops responding but does not restart. The cursor may become a spinning beach ball, the screen is frozen, and nothing reacts \\u2014 but there is no automatic reboot. A hang can sometimes precede a panic (the kernel locks up, then trips a watchdog that forces a restart), but a pure hang you have to power-cycle yourself. The diagnostic for hangs is different \\u2014 \",(0,e.jsx)(i.code,{children:\"spindump\"}),`, Activity Monitor's \"sample process,\" and `,(0,e.jsx)(i.code,{children:\"log show\"}),\" for the period before the hang.\"]}),`\n`,(0,e.jsx)(i.p,{children:\"Here is the quick decision:\"}),`\n`,(0,e.jsxs)(i.ul,{children:[`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:'Whole machine rebooted by itself + \"restarted because of a problem\" dialog \\u2192 kernel panic.'}),\" Read the panic report. That is this guide.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"One app quit, rest of system fine \\u2192 app crash.\"}),\" Look at that app's \",(0,e.jsx)(i.code,{children:\".ips\"}),\" report.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"System frozen, no reboot, you had to force-power-off \\u2192 hang.\"}),\" Different toolset.\"]}),`\n`]}),`\n`,(0,e.jsx)(i.p,{children:'Getting this right saves hours. People spend days reinstalling apps to fix a \"crash\" that was actually a kernel panic caused by a 240 Hz monitor.'}),`\n`,(0,e.jsx)(i.h2,{id:\"how-to-find-and-read-the-panic-report\",children:\"How to Find and Read the Panic Report\"}),`\n`,(0,e.jsx)(i.p,{children:\"Every kernel panic on macOS writes a diagnostic report. There are two ways to get to it: Console.app (graphical) and the file system / Terminal (faster and scriptable).\"}),`\n`,(0,e.jsx)(i.h3,{id:\"where-panic-logs-live\",children:\"Where panic logs live\"}),`\n`,(0,e.jsx)(i.p,{children:\"Panic reports are stored here:\"}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(i.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,e.jsxs)(i.code,{children:[(0,e.jsx)(i.span,{className:\"line\",children:(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Per-machine diagnostic reports (kernel panics live here)\"})}),`\n`,(0,e.jsxs)(i.span,{className:\"line\",children:[(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"ls\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -lt\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" /Library/Logs/DiagnosticReports/\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\" |\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\" head\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -20\"})]})]})})}),`\n`,(0,e.jsxs)(i.p,{children:[\"You are looking for files named like \",(0,e.jsx)(i.code,{children:\"Kernel-2026-05-22-143012.panic\"}),\" or \",(0,e.jsx)(i.code,{children:\"panic-full-2026-05-22-143012.ips\"}),\". The newest ones are at the top because of \",(0,e.jsx)(i.code,{children:\"-lt\"}),\" (sort by time). On Apple silicon, recent macOS versions write a richer \",(0,e.jsx)(i.code,{children:\"panic-full\"}),\" report; on older systems you may see \",(0,e.jsx)(i.code,{children:\".panic\"}),\" text files. There is also a user-level folder, but kernel panics are system-wide and go in \",(0,e.jsx)(i.code,{children:\"/Library/Logs/DiagnosticReports/\"}),\".\"]}),`\n`,(0,e.jsx)(i.p,{children:\"To list only panic-related reports:\"}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(i.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,e.jsx)(i.code,{children:(0,e.jsxs)(i.span,{className:\"line\",children:[(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"ls\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -lt\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" /Library/Logs/DiagnosticReports/\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\" |\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\" grep\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -iE\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" 'panic|kernel'\"})]})})})}),`\n`,(0,e.jsx)(i.h3,{id:\"opening-a-panic-report-in-consoleapp\",children:\"Opening a panic report in Console.app\"}),`\n`,(0,e.jsx)(i.p,{children:\"If you prefer a GUI:\"}),`\n`,(0,e.jsxs)(i.ol,{children:[`\n`,(0,e.jsxs)(i.li,{children:[\"Open \",(0,e.jsx)(i.strong,{children:\"Console\"}),' (Applications \\u2192 Utilities \\u2192 Console, or Spotlight \"Console\").']}),`\n`,(0,e.jsxs)(i.li,{children:[\"In the left sidebar under \",(0,e.jsx)(i.strong,{children:\"Reports\"}),\", click \",(0,e.jsx)(i.strong,{children:\"Crash Reports\"}),\" (older macOS) or \",(0,e.jsx)(i.strong,{children:\"System Reports\"}),\".\"]}),`\n`,(0,e.jsxs)(i.li,{children:[\"Scroll for entries that begin with \",(0,e.jsx)(i.strong,{children:\"Kernel\"}),\" or contain \",(0,e.jsx)(i.strong,{children:\"panic\"}),\" in the name. Click one.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[\"The full report appears on the right. Use Cmd+F to jump to \",(0,e.jsx)(i.code,{children:\"panicString\"}),\".\"]}),`\n`]}),`\n`,(0,e.jsx)(i.p,{children:\"Console is convenient, but reading the raw file is often faster because you can search instantly and copy the whole thing.\"}),`\n`,(0,e.jsx)(i.h3,{id:\"the-live-unified-log\",children:\"The live unified log\"}),`\n`,(0,e.jsxs)(i.p,{children:[\"The panic file is written at the moment of the crash. You can also pull panic-related messages from the unified log, which is helpful when you want to see what happened in the seconds \",(0,e.jsx)(i.em,{children:\"before\"}),\" the reboot:\"]}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(i.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,e.jsxs)(i.code,{children:[(0,e.jsx)(i.span,{className:\"line\",children:(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Show panic-related messages from the last day\"})}),`\n`,(0,e.jsxs)(i.span,{className:\"line\",children:[(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"log\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" show\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --predicate\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:` 'eventMessage contains \"panic\"'`}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --last\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" 1d\"})]})]})})}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(i.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,e.jsxs)(i.code,{children:[(0,e.jsx)(i.span,{className:\"line\",children:(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Narrow to the kernel process and the last 6 hours, most useful right after a panic\"})}),`\n`,(0,e.jsxs)(i.span,{className:\"line\",children:[(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"log\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" show\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --predicate\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:` 'process == \"kernel\"'`}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --last\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" 6h\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\" |\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\" grep\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -i\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" panic\"})]})]})})}),`\n`,(0,e.jsxs)(i.p,{children:[\"The unified log will not contain the full backtrace the way the \",(0,e.jsx)(i.code,{children:\".panic\"}),\" file does, but it gives you timing context \\u2014 what the system was doing in the lead-up.\"]}),`\n`,(0,e.jsx)(i.h3,{id:\"anatomy-of-a-panic-report-an-annotated-example\",children:\"Anatomy of a panic report: an annotated example\"}),`\n`,(0,e.jsx)(i.p,{children:\"This is the part that turns you from a guesser into a diagnostician. A panic report has a predictable structure. Here is a representative (sanitized, illustrative) Apple silicon panic string of the kind people see with high-refresh-rate display problems:\"}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(i.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,e.jsxs)(i.code,{children:[(0,e.jsx)(i.span,{className:\"line\",children:(0,e.jsx)(i.span,{children:\"panic(cpu 4 caller 0xfffffff0291a7c40): userspace watchdog timeout:\"})}),`\n`,(0,e.jsx)(i.span,{className:\"line\",children:(0,e.jsx)(i.span,{children:\"no successful checkins from com.apple.WindowServer in 120 seconds\"})}),`\n`,(0,e.jsx)(i.span,{className:\"line\",children:(0,e.jsx)(i.span,{children:\"service: com.apple.logd, total successful checkins since load\"})}),`\n`,(0,e.jsx)(i.span,{className:\"line\",children:(0,e.jsx)(i.span,{children:\"(831 seconds ago): 83, last successful checkin: 0 seconds ago\"})}),`\n`,(0,e.jsx)(i.span,{className:\"line\",children:(0,e.jsx)(i.span,{children:\"service: com.apple.WindowServer, total successful checkins since\"})}),`\n`,(0,e.jsx)(i.span,{className:\"line\",children:(0,e.jsx)(i.span,{children:\"load (831 seconds ago): 8, last successful checkin: 120 seconds ago\"})}),`\n`,(0,e.jsx)(i.span,{className:\"line\",children:(0,e.jsx)(i.span,{})}),`\n`,(0,e.jsx)(i.span,{className:\"line\",children:(0,e.jsx)(i.span,{children:\"Panic occurred in process WindowServer\"})}),`\n`,(0,e.jsx)(i.span,{className:\"line\",children:(0,e.jsx)(i.span,{})}),`\n`,(0,e.jsx)(i.span,{className:\"line\",children:(0,e.jsx)(i.span,{children:\"Backtrace (CPU 4), panicked thread: 0xfffffff...\"})}),`\n`,(0,e.jsx)(i.span,{className:\"line\",children:(0,e.jsx)(i.span,{children:\"...\"})}),`\n`,(0,e.jsx)(i.span,{className:\"line\",children:(0,e.jsx)(i.span,{children:\"AppleH13CamIn ... AGXG16X ... IOMobileFramebuffer ...\"})}),`\n`,(0,e.jsx)(i.span,{className:\"line\",children:(0,e.jsx)(i.span,{})}),`\n`,(0,e.jsx)(i.span,{className:\"line\",children:(0,e.jsx)(i.span,{children:\"Kernel Extensions in backtrace:\"})}),`\n`,(0,e.jsx)(i.span,{className:\"line\",children:(0,e.jsx)(i.span,{children:\"   com.apple.iokit.IOMobileFramebufferFamily\"})}),`\n`,(0,e.jsx)(i.span,{className:\"line\",children:(0,e.jsx)(i.span,{children:\"   com.apple.AGXG16X\"})})]})})}),`\n`,(0,e.jsx)(i.p,{children:\"Read it top to bottom:\"}),`\n`,(0,e.jsxs)(i.ul,{children:[`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:(0,e.jsx)(i.code,{children:\"panic(cpu 4 caller 0x...)\"})}),\" \\u2014 which CPU core panicked and the address of the code that called the panic. The hex addresses are not for you; the words after them are.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:(0,e.jsx)(i.code,{children:\"userspace watchdog timeout: no successful checkins from com.apple.WindowServer in 120 seconds\"})}),\" \\u2014 this is the \",(0,e.jsx)(i.code,{children:\"panicString\"}),\", the single most important line. It tells you \",(0,e.jsx)(i.em,{children:\"why\"}),\". Here, WindowServer (the display/compositing process) stopped responding to the watchdog, which forced a restart. A stuck WindowServer is classic for display/GPU trouble \\u2014 frequently a too-high refresh rate.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:(0,e.jsx)(i.code,{children:\"Panic occurred in process WindowServer\"})}),' \\u2014 the \"process in backtrace.\" This is the process that was on-CPU. WindowServer = graphics. A network daemon = networking/content filter. ',(0,e.jsx)(i.code,{children:\"kernel_task\"}),\" only = often hardware or a deep driver fault.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"Backtrace symbols\"}),\" \\u2014 function names that were on the stack. Seeing \",(0,e.jsx)(i.code,{children:\"AGXG16X\"}),\", \",(0,e.jsx)(i.code,{children:\"IOMobileFramebuffer\"}),\", \",(0,e.jsx)(i.code,{children:\"AppleH13...\"}),\" points at the Apple GPU/display stack.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:(0,e.jsx)(i.code,{children:\"Kernel Extensions in backtrace:\"})}),\" \\u2014 this is the smoking gun for third-party drivers. If you see something like \",(0,e.jsx)(i.code,{children:\"com.yourvpn.tun\"}),\" or \",(0,e.jsx)(i.code,{children:\"com.thirdparty.av\"}),\" here, a kext is implicated. If you only see \",(0,e.jsx)(i.code,{children:\"com.apple.*\"}),\" extensions, the fault is in Apple's own code or driven by hardware/configuration rather than a third-party kext.\"]}),`\n`]}),`\n`,(0,e.jsxs)(i.p,{children:[\"Other \",(0,e.jsx)(i.code,{children:\"panicString\"}),\" patterns and what they usually mean:\"]}),`\n`,(0,e.jsxs)(i.ul,{children:[`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:(0,e.jsx)(i.code,{children:\"Sleep Wake failure in EFI\"})}),\" or \",(0,e.jsx)(i.strong,{children:(0,e.jsx)(i.code,{children:\"Previous Sleep Wake failure\"})}),\" \\u2014 a sleep/wake panic. Almost always a peripheral, hub, or external display that misbehaves during wake. (CAUSE 3 below.)\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:(0,e.jsx)(i.code,{children:\"Kernel data abort\"})}),\" / \",(0,e.jsx)(i.strong,{children:(0,e.jsx)(i.code,{children:\"DAR ...\"})}),\" with a third-party kext in the backtrace \\u2014 a driver dereferenced bad memory. Suspect that kext.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:(0,e.jsx)(i.code,{children:\"KP / machine check\"})}),\", \",(0,e.jsx)(i.strong,{children:(0,e.jsx)(i.code,{children:\"ECC\"})}),\", or panics with \",(0,e.jsx)(i.em,{children:\"no\"}),\" third-party kext and inconsistent processes \\u2014 leans toward hardware (RAM, thermals). (CAUSE 5.)\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:(0,e.jsx)(i.code,{children:\"watchdog timeout ... WindowServer\"})}),\" repeatedly, only when a specific monitor is connected \\u2014 display/refresh-rate. (CAUSE 1.)\"]}),`\n`]}),`\n`,(0,e.jsxs)(i.p,{children:[\"The single discipline that matters: \",(0,e.jsxs)(i.strong,{children:[\"read the \",(0,e.jsx)(i.code,{children:\"panicString\"}),' first, then check whether any non-Apple kext appears in \"Kernel Extensions in backtrace.\"']}),\" Those two data points route you to the right cause more than 80% of the time.\"]}),`\n`,(0,e.jsx)(i.h2,{id:\"the-diagnostic-decision-tree\",children:\"The Diagnostic Decision Tree\"}),`\n`,(0,e.jsx)(i.p,{children:\"Use this flow every time. It keeps you from random reinstalls.\"}),`\n`,(0,e.jsxs)(i.ol,{children:[`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"Reproduce or note the pattern.\"}),\" Does the panic happen only when an external monitor is connected? Only on wake from sleep? Only when a specific app or VPN is running? Randomly with nothing in common? The pattern is half the diagnosis. Write it down.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"Read the latest panic report.\"}),\" Get the \",(0,e.jsx)(i.code,{children:\"panicString\"}),' and the \"Kernel Extensions in backtrace\" list (see above).']}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"Is a third-party kext in the backtrace?\"}),`\n`,(0,e.jsxs)(i.ul,{children:[`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"Yes \\u2192\"}),\" go to CAUSE 2 (extensions). Identify the vendor, update or remove it, retest in Safe Mode.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"No \\u2192\"}),\" continue.\"]}),`\n`]}),`\n`]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsxs)(i.strong,{children:[\"Does \",(0,e.jsx)(i.code,{children:\"panicString\"}),\" mention WindowServer / framebuffer / GPU, and does it only happen with a monitor attached?\"]}),\" \\u2192 CAUSE 1 (refresh rate). Drop the external display to 60 Hz first.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsxs)(i.strong,{children:[\"Does \",(0,e.jsx)(i.code,{children:\"panicString\"}),\" mention Sleep Wake failure, or does it only happen on wake?\"]}),\" \\u2192 CAUSE 3 (sleep/wake + peripherals). Disconnect everything and test.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"Are you on M5 MacBook Air / M5 Pro/Max, or using a content-filter/network extension, or saw a black screen after updating?\"}),\" \\u2192 CAUSE 4 (Apple-acknowledged 26.5 items). Make sure you are fully updated.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"No third-party kext, no display/sleep pattern, panics are random and the report varies each time?\"}),\" \\u2192 CAUSE 5 (hardware). Run Apple Diagnostics, check RAM/eGPU/thermals.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"Still unresolved after the above?\"}),\" \\u2192 CAUSE 6 (corrupted system state): reset NVRAM, reset SMC (Intel), reinstall macOS in place.\"]}),`\n`]}),`\n`,(0,e.jsx)(i.p,{children:\"Now the causes in detail.\"}),`\n`,(0,e.jsx)(i.h2,{id:\"cause-1-high-external-monitor-refresh-rate-120--144--240-hz\",children:\"CAUSE 1: High External Monitor Refresh Rate (120 / 144 / 240 Hz)\"}),`\n`,(0,e.jsxs)(i.p,{children:['This is the standout Tahoe 26.5 issue and, happily, the one with the cleanest fix. A large share of \"random restart\" reports on Mac Studio and Mac mini turn out to be GPU/display watchdog panics triggered when a ',(0,e.jsx)(i.strong,{children:\"third-party high-refresh-rate display\"}),\" is driven at 120 Hz, 144 Hz, or 240 Hz. The panic report shows a WindowServer watchdog timeout with the Apple GPU/framebuffer stack (\",(0,e.jsx)(i.code,{children:\"AGX...\"}),\", \",(0,e.jsx)(i.code,{children:\"IOMobileFramebuffer\"}),\") in the backtrace, exactly like the annotated example above.\"]}),`\n`,(0,e.jsx)(i.h3,{id:\"why-this-happens\",children:\"Why this happens\"}),`\n`,(0,e.jsx)(i.p,{children:\"At high refresh rates the GPU driver and the display controller exchange timing, mode, and sync information far more aggressively than at 60 Hz. macOS point releases periodically change the display pipeline (HDR handling, variable refresh / ProMotion negotiation, dithering, multi-stream over DisplayPort/Thunderbolt). When a third-party monitor's firmware advertises a mode that the current driver does not negotiate cleanly \\u2014 or when the cable/DSC link is marginal at 240 Hz \\u2014 the GPU side can stall. WindowServer stops checking in, the watchdog fires at the 120-second mark, and the whole system restarts. It looks random because it depends on what is on screen, but it is tied to the display.\"}),`\n`,(0,e.jsx)(i.p,{children:\"Tells that point at refresh rate:\"}),`\n`,(0,e.jsxs)(i.ul,{children:[`\n`,(0,e.jsxs)(i.li,{children:[\"Panics \",(0,e.jsx)(i.strong,{children:\"never happen on the built-in display alone\"}),\" (laptops) or \",(0,e.jsx)(i.strong,{children:\"without the external monitor connected\"}),\" (Mac mini/Studio users who also have a small secondary screen can test).\"]}),`\n`,(0,e.jsxs)(i.li,{children:[\"The \",(0,e.jsx)(i.code,{children:\"panicString\"}),\" mentions \",(0,e.jsx)(i.strong,{children:\"WindowServer watchdog\"}),\" and the backtrace lists Apple GPU/framebuffer kexts only (no third-party kext).\"]}),`\n`,(0,e.jsx)(i.li,{children:\"It is worse during GPU-heavy work, video, HDR content, or wake from display sleep.\"}),`\n`,(0,e.jsx)(i.li,{children:\"A specific high-refresh monitor or cable is involved; swapping back to a 60 Hz screen makes it vanish.\"}),`\n`]}),`\n`,(0,e.jsx)(i.h3,{id:\"the-clean-fix-drop-the-refresh-rate\",children:\"The clean fix: drop the refresh rate\"}),`\n`,(0,e.jsx)(i.p,{children:\"This is a strong, community-confirmed workaround. Lowering the refresh rate removes the marginal timing path entirely.\"}),`\n`,(0,e.jsxs)(i.ol,{children:[`\n`,(0,e.jsxs)(i.li,{children:[\"Open \",(0,e.jsx)(i.strong,{children:\"System Settings \\u2192 Displays\"}),\".\"]}),`\n`,(0,e.jsx)(i.li,{children:\"Select the external monitor.\"}),`\n`,(0,e.jsxs)(i.li,{children:[\"Find the \",(0,e.jsx)(i.strong,{children:\"Refresh Rate\"}),\" dropdown. Change \",(0,e.jsx)(i.strong,{children:\"240 Hz \\u2192 120 Hz\"}),\", or for stability, \",(0,e.jsx)(i.strong,{children:\"\\u2192 60 Hz\"}),\".\"]}),`\n`,(0,e.jsxs)(i.li,{children:[\"If you see a \",(0,e.jsx)(i.strong,{children:\"ProMotion / Variable refresh rate\"}),\" toggle, set it to a \",(0,e.jsx)(i.strong,{children:\"fixed\"}),\" rate rather than variable while testing.\"]}),`\n`,(0,e.jsx)(i.li,{children:\"Use the display for a day. If the panics stop, the refresh rate was the cause.\"}),`\n`]}),`\n`,(0,e.jsx)(i.p,{children:(0,e.jsx)(i.img,{alt:\"Display settings refresh rate selector on macOS Tahoe\",src:\"/images/blog/mac-kernel-panic-random-restart-macos-tahoe-26-5-refresh-rate-panic-log-fix-2026/content-2.webp\",width:\"2848\",height:\"1504\"})}),`\n`,(0,e.jsxs)(i.p,{children:[\"If the macOS Displays panel does not expose the rate you want, or hides intermediate steps, \",(0,e.jsx)(i.strong,{children:\"SwitchResX\"}),\" (a long-standing third-party display utility) lets you set exact timings and lock a refresh rate. Set a clean 60 Hz or 120 Hz mode and save it as the default for that display.\"]}),`\n`,(0,e.jsx)(i.p,{children:\"Other levers that help with high-refresh stability:\"}),`\n`,(0,e.jsxs)(i.ul,{children:[`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"Use a certified cable.\"}),' At 144/240 Hz you need a genuinely high-bandwidth DisplayPort or Thunderbolt 4 / USB4 cable. A marginal cable that \"works\" at 60 Hz will fail intermittently at 240 Hz. Swap the cable before blaming software.']}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"Connect directly, not through a dock,\"}),\" while testing. Docks and DisplayPort MST hubs add a negotiation layer that can be the weak link.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"Turn off HDR\"}),\" on the external display temporarily; the HDR pipeline adds timing complexity.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"Update the monitor's firmware\"}),\" if the manufacturer offers it. Display vendors do ship fixes for Mac negotiation bugs.\"]}),`\n`]}),`\n`,(0,e.jsxs)(i.p,{children:[\"Because the fix is so clean, try this \",(0,e.jsx)(i.strong,{children:\"first\"}),\" whenever a panic only occurs with an external monitor attached. If lowering to 60 Hz stops the panics, you have your answer and can decide whether to stay at a safe rate, try 120 Hz, or wait for a future macOS/firmware update. For the broader set of external-display issues on Tahoe, see our \",(0,e.jsx)(i.a,{href:\"/blog/external-display-not-detected-macos-tahoe-complete-diagnostic-fix-guide-2026\",children:\"external display not detected diagnostic guide\"}),\".\"]}),`\n`,(0,e.jsx)(i.h2,{id:\"cause-2-faulty-or-outdated-kernel--system-extensions\",children:\"CAUSE 2: Faulty or Outdated Kernel & System Extensions\"}),`\n`,(0,e.jsxs)(i.p,{children:[\"If a \",(0,e.jsx)(i.strong,{children:'third-party kext appears in \"Kernel Extensions in backtrace,\"'}),\" you have found your culprit category. The usual offenders on Tahoe are VPN clients, antivirus / endpoint-security agents, virtualization tools, audio interface drivers, and disk/RAID utilities \\u2014 anything that installs a kernel extension (kext) or a system extension to hook deep into the OS.\"]}),`\n`,(0,e.jsxs)(i.p,{children:[\"Apple has been pushing developers from old kexts to user-space \",(0,e.jsx)(i.strong,{children:\"system extensions\"}),\" for years, and each macOS release tightens what legacy kexts can do. A kext built for an older system can dereference memory the way the new kernel does not expect, and the result is a \",(0,e.jsx)(i.code,{children:\"Kernel data abort\"}),\" panic naming that kext.\"]}),`\n`,(0,e.jsx)(i.h3,{id:\"step-1-inventory-what-is-loaded\",children:\"Step 1: Inventory what is loaded\"}),`\n`,(0,e.jsx)(i.p,{children:\"List the kernel extensions currently in memory:\"}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(i.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,e.jsxs)(i.code,{children:[(0,e.jsx)(i.span,{className:\"line\",children:(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Show all loaded kernel extensions\"})}),`\n`,(0,e.jsxs)(i.span,{className:\"line\",children:[(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"kmutil\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" showloaded\"})]})]})})}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(i.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,e.jsxs)(i.code,{children:[(0,e.jsx)(i.span,{className:\"line\",children:(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Filter out Apple's own extensions to see only third-party ones\"})}),`\n`,(0,e.jsxs)(i.span,{className:\"line\",children:[(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"kmutil\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" showloaded\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\" |\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\" grep\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -v\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" com.apple\"})]})]})})}),`\n`,(0,e.jsx)(i.p,{children:`Anything in that filtered list is a third-party driver running in your kernel right now. Cross-reference it against the bundle IDs in your panic report's \"Kernel Extensions in backtrace\" list \\u2014 a match is your prime suspect.`}),`\n`,(0,e.jsxs)(i.p,{children:[\"Now list \",(0,e.jsx)(i.strong,{children:\"system extensions\"}),\" (the modern, user-space equivalent used by VPNs, content filters, and endpoint security):\"]}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(i.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,e.jsxs)(i.code,{children:[(0,e.jsx)(i.span,{className:\"line\",children:(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# List installed system extensions and their state (activated/enabled)\"})}),`\n`,(0,e.jsxs)(i.span,{className:\"line\",children:[(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"systemextensionsctl\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" list\"})]})]})})}),`\n`,(0,e.jsx)(i.p,{children:(0,e.jsx)(i.img,{alt:\"Terminal listing loaded kernel extensions\",src:\"/images/blog/mac-kernel-panic-random-restart-macos-tahoe-26-5-refresh-rate-panic-log-fix-2026/content-3.webp\",width:\"2848\",height:\"1504\"})}),`\n`,(0,e.jsxs)(i.p,{children:[\"This shows each system extension, its team identifier, and whether it is \",(0,e.jsx)(i.code,{children:\"activated enabled\"}),\". VPNs and content filters install \",(0,e.jsx)(i.strong,{children:\"network extensions\"}),\" here \\u2014 and as noted under CAUSE 4, content-filter network extensions were specifically called out in Apple's 26.5 restart fixes.\"]}),`\n`,(0,e.jsx)(i.h3,{id:\"step-2-prove-it-with-safe-mode\",children:\"Step 2: Prove it with Safe Mode\"}),`\n`,(0,e.jsx)(i.p,{children:\"Safe Mode boots macOS with third-party kexts and many startup items disabled. If the panics stop in Safe Mode, the cause is almost certainly something Safe Mode disabled \\u2014 most likely a third-party extension.\"}),`\n`,(0,e.jsx)(i.p,{children:(0,e.jsx)(i.strong,{children:\"Apple silicon (M1/M2/M3/M4/M5):\"})}),`\n`,(0,e.jsxs)(i.ol,{children:[`\n`,(0,e.jsx)(i.li,{children:\"Shut down fully.\"}),`\n`,(0,e.jsxs)(i.li,{children:[\"Press and \",(0,e.jsx)(i.strong,{children:\"hold the power button\"}),' until \"Loading startup options\" appears.']}),`\n`,(0,e.jsxs)(i.li,{children:[\"Select your startup disk, then hold \",(0,e.jsx)(i.strong,{children:\"Shift\"}),\" and click \",(0,e.jsx)(i.strong,{children:\"Continue in Safe Mode\"}),\".\"]}),`\n`,(0,e.jsx)(i.li,{children:'Log in. You should see \"Safe Boot\" in the menu bar (look in the login window or System Settings).'}),`\n`]}),`\n`,(0,e.jsx)(i.p,{children:(0,e.jsx)(i.strong,{children:\"Intel:\"})}),`\n`,(0,e.jsxs)(i.ol,{children:[`\n`,(0,e.jsx)(i.li,{children:\"Shut down.\"}),`\n`,(0,e.jsxs)(i.li,{children:[\"Power on and immediately hold \",(0,e.jsx)(i.strong,{children:\"Shift\"}),\" until the login window appears, then release.\"]}),`\n`]}),`\n`,(0,e.jsxs)(i.p,{children:[\"Use the Mac in Safe Mode the way you normally trigger panics (connect the monitor, run the VPN's network \\u2014 note that some network extensions will not load in Safe Mode, which is itself informative). \",(0,e.jsx)(i.strong,{children:\"No panics in Safe Mode \\u2192 third-party software is the cause.\"}),\" Reboot normally to confirm they return.\"]}),`\n`,(0,e.jsx)(i.h3,{id:\"step-3-remove-or-update-the-offending-extension\",children:\"Step 3: Remove or update the offending extension\"}),`\n`,(0,e.jsx)(i.p,{children:\"Once you have a suspect:\"}),`\n`,(0,e.jsxs)(i.ol,{children:[`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"Update it first.\"}),\" The vendor may already ship a Tahoe-compatible build. Updating is less disruptive than removing.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"If updating does not help, uninstall it\"}),\" using the vendor's official uninstaller (not by dragging to Trash \\u2014 kexts and system extensions need proper removal so they deregister cleanly).\"]}),`\n`,(0,e.jsxs)(i.li,{children:[\"After removing a system extension you may need to \",(0,e.jsx)(i.strong,{children:\"re-approve or fully clear it\"}),\" in \",(0,e.jsx)(i.strong,{children:\"System Settings \\u2192 Privacy & Security\"}),\", where macOS lists extensions awaiting permission or pending removal. Approve the ones you trust; remove the ones you do not.\"]}),`\n`,(0,e.jsx)(i.li,{children:\"Reboot and retest for a day.\"}),`\n`]}),`\n`,(0,e.jsxs)(i.p,{children:[\"Common categories to scrutinize, in rough order of how often they cause Tahoe panics: \",(0,e.jsx)(i.strong,{children:\"VPN clients\"}),\" (especially older tunnel kexts), \",(0,e.jsx)(i.strong,{children:\"antivirus/EDR agents\"}),\", \",(0,e.jsx)(i.strong,{children:\"virtualization\"}),\" (older hypervisor kexts), \",(0,e.jsx)(i.strong,{children:\"audio interface drivers\"}),\", and \",(0,e.jsx)(i.strong,{children:\"third-party disk/encryption utilities\"}),\". If you run several, remove them one at a time so you learn which one was responsible rather than nuking your whole stack.\"]}),`\n`,(0,e.jsx)(i.h2,{id:\"cause-3-sleep--wake-panics-with-peripherals-and-hubs\",children:\"CAUSE 3: Sleep / Wake Panics with Peripherals and Hubs\"}),`\n`,(0,e.jsxs)(i.p,{children:[\"If the panic happens \",(0,e.jsx)(i.strong,{children:\"on wake from sleep\"}),\" \\u2014 you open the lid or wiggle the mouse, the screen flickers, and the machine restarts instead of waking \\u2014 and especially if the \",(0,e.jsx)(i.code,{children:\"panicString\"}),\" says \",(0,e.jsx)(i.strong,{children:'\"Sleep Wake failure,\"'}),\" the trigger is almost always something attached to the Mac that does not negotiate the sleep/wake transition correctly. Thunderbolt docks, USB hubs, external drives, audio interfaces, card readers, and certain displays are the repeat offenders.\"]}),`\n`,(0,e.jsx)(i.h3,{id:\"confirm-it-is-a-sleepwake-panic\",children:\"Confirm it is a sleep/wake panic\"}),`\n`,(0,e.jsx)(i.p,{children:\"Two checks:\"}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(i.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,e.jsxs)(i.code,{children:[(0,e.jsx)(i.span,{className:\"line\",children:(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:'# Look at the sleep/wake history; \"Failure\" entries indicate wake problems'})}),`\n`,(0,e.jsxs)(i.span,{className:\"line\",children:[(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"pmset\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -g\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" log\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\" |\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\" grep\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -iE\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" 'failure|wake|sleep'\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\" |\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\" tail\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -40\"})]})]})})}),`\n`,(0,e.jsxs)(i.p,{children:[(0,e.jsx)(i.code,{children:\"pmset -g log\"}),\" is the power-management event log. Look for \",(0,e.jsx)(i.code,{children:\"Wake\"}),\" events followed by \",(0,e.jsx)(i.code,{children:\"Failure\"}),`, or for \"Previous Sleep Wake failure\" notes. Pair that with the panic report's timestamp \\u2014 if the panic time lines up with a wake event, you have a sleep/wake panic.`]}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(i.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,e.jsxs)(i.code,{children:[(0,e.jsx)(i.span,{className:\"line\",children:(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# See what assertions and devices are involved in power transitions\"})}),`\n`,(0,e.jsxs)(i.span,{className:\"line\",children:[(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"pmset\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -g\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" assertions\"})]})]})})}),`\n`,(0,e.jsx)(i.h3,{id:\"fix-it\",children:\"Fix it\"}),`\n`,(0,e.jsxs)(i.ol,{children:[`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"Disconnect everything and test the bare machine.\"}),\" Unplug all hubs, docks, drives, and non-essential peripherals. Let the Mac sleep and wake repeatedly for a day. If panics stop, a peripheral is the cause.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"Reconnect one device at a time,\"}),\" waiting a day between each, until the panic returns. The last one you added is the culprit.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"Power the hub/dock externally.\"}),\" Bus-powered hubs that draw from the Mac are a frequent wake-panic source. A self-powered (mains-powered) hub often resolves it.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"Update the dock/hub firmware\"}),\" and the Mac to the latest 26.5 build. Thunderbolt firmware fixes are real.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"Try a different port or a direct connection.\"}),\" Move the problem device off a daisy-chain.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"As a workaround, adjust sleep behavior\"}),\" while you isolate the device \\u2014 for example, prevent the display from sleeping the disks, or use \",(0,e.jsx)(i.code,{children:\"pmset\"}),\" to tune wake-on-network if a network device is waking the Mac into a bad state. Do this only to buy time; the real fix is identifying the peripheral.\"]}),`\n`]}),`\n`,(0,e.jsx)(i.p,{children:\"Sleep/wake panics are tedious to diagnose precisely because they require waiting between tests, but the disconnect-and-add-back method is reliable. Resist the urge to reinstall macOS for a sleep/wake panic \\u2014 it is a peripheral negotiation problem far more often than an OS corruption problem.\"}),`\n`,(0,e.jsx)(i.h2,{id:\"cause-4-the-apple-acknowledged-265-hardware--enterprise-items\",children:\"CAUSE 4: The Apple-Acknowledged 26.5 Hardware & Enterprise Items\"}),`\n`,(0,e.jsx)(i.p,{children:'macOS Tahoe 26.5, released on 2026-05-11, included stability fixes that Apple documented in its enterprise release notes. Knowing these helps you separate \"already fixed if I update\" from \"still open, needs a workaround.\"'}),`\n`,(0,e.jsx)(i.p,{children:\"What Apple acknowledged and addressed in 26.5:\"}),`\n`,(0,e.jsxs)(i.ul,{children:[`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"Restart issues on M5 MacBook Air and M5 Pro / Max models.\"}),\" Apple shipped fixes for unexpected restarts affecting these newer Apple silicon machines. If you are on one of these and were panicking on an earlier build, \",(0,e.jsx)(i.strong,{children:\"making sure you are on the full 26.5 release (or later)\"}),\" is step one.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"Content-filter network extension restarts.\"}),\" Restarts tied to content-filter network extensions \\u2014 common in managed/enterprise environments and in some consumer VPN/parental-control tools \\u2014 were addressed. This overlaps with CAUSE 2: if your \",(0,e.jsx)(i.code,{children:\"systemextensionsctl list\"}),\" shows a content-filter network extension and you are panicking, update both macOS and that extension's vendor app.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"Black screen after update.\"}),\" A condition where some Macs showed a black screen after updating was addressed.\"]}),`\n`]}),`\n`,(0,e.jsxs)(i.p,{children:[\"The honest framing: Apple fixing a class of restarts does not mean \",(0,e.jsx)(i.strong,{children:\"every\"}),\" instance is gone. Some users on affected hardware, or running particular extensions, continue to report restarts after updating \\u2014 those are \",(0,e.jsx)(i.strong,{children:\"community-reported\"}),\" and handled with the workarounds in this guide (full update, drop refresh rate, audit extensions, isolate peripherals), not with a guaranteed Apple patch. So:\"]}),`\n`,(0,e.jsxs)(i.ol,{children:[`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"Update fully.\"}),\" System Settings \\u2192 General \\u2192 Software Update. Install 26.5 completely (and any 26.5.x supplemental that follows).\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"Then re-test.\"}),\" A meaningful share of panics on M5 hardware and content-filter setups simply disappear after the full update.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"If they persist,\"}),\" treat the panic report as the source of truth and route to CAUSE 1/2/3/5 based on what it says.\"]}),`\n`]}),`\n`,(0,e.jsxs)(i.p,{children:[\"For the full picture of what shipped in this release, including the security fixes, see our \",(0,e.jsx)(i.a,{href:\"/blog/macos-tahoe-26-5-released-complete-update-guide-security-cve-roundup-2026\",children:\"macOS Tahoe 26.5 complete update guide\"}),\". If you arrived here from an earlier release, the patterns in our \",(0,e.jsx)(i.a,{href:\"/blog/macos-tahoe-26-3-bugs-crashes-complete-fix-guide-march-2026\",children:\"26.3 bugs and crashes fix guide\"}),\" and the \",(0,e.jsx)(i.a,{href:\"/blog/macos-tahoe-26-2-bugs-fixes-complete-troubleshooting-guide-2025\",children:\"26.2 troubleshooting guide\"}),\" provide useful historical context on how these stability issues have evolved across the Tahoe cycle.\"]}),`\n`,(0,e.jsx)(i.h2,{id:\"cause-5-hardware--ram-egpu--thunderbolt-and-thermals\",children:\"CAUSE 5: Hardware \\u2014 RAM, eGPU / Thunderbolt, and Thermals\"}),`\n`,(0,e.jsxs)(i.p,{children:[\"When the panic reports vary every time, name \",(0,e.jsx)(i.strong,{children:\"no third-party kext\"}),\", show no display/sleep pattern, and survive a clean reinstall, you are likely looking at hardware. Hardware panics tend to be inconsistent precisely because they depend on physical conditions \\u2014 temperature, a marginal memory cell, a flaky connector.\"]}),`\n`,(0,e.jsx)(i.h3,{id:\"run-apple-diagnostics\",children:\"Run Apple Diagnostics\"}),`\n`,(0,e.jsx)(i.p,{children:\"Apple's built-in hardware test is the first move:\"}),`\n`,(0,e.jsx)(i.p,{children:(0,e.jsx)(i.strong,{children:\"Apple silicon:\"})}),`\n`,(0,e.jsxs)(i.ol,{children:[`\n`,(0,e.jsx)(i.li,{children:\"Shut down.\"}),`\n`,(0,e.jsxs)(i.li,{children:[\"Press and \",(0,e.jsx)(i.strong,{children:\"hold the power button\"}),' until \"Loading startup options\" appears, then release.']}),`\n`,(0,e.jsxs)(i.li,{children:[\"Press \",(0,e.jsx)(i.strong,{children:\"Cmd+D\"}),\" to run Diagnostics.\"]}),`\n`]}),`\n`,(0,e.jsx)(i.p,{children:(0,e.jsx)(i.strong,{children:\"Intel:\"})}),`\n`,(0,e.jsxs)(i.ol,{children:[`\n`,(0,e.jsx)(i.li,{children:\"Shut down.\"}),`\n`,(0,e.jsxs)(i.li,{children:[\"Power on and immediately \",(0,e.jsxs)(i.strong,{children:[\"hold the \",(0,e.jsx)(i.code,{children:\"D\"}),\" key\"]}),\" (or \",(0,e.jsx)(i.strong,{children:\"Option+D\"}),\" to test over the internet) until a progress bar or language picker appears.\"]}),`\n`]}),`\n`,(0,e.jsxs)(i.p,{children:[\"Diagnostics runs and returns reference codes. Codes beginning with \",(0,e.jsx)(i.strong,{children:(0,e.jsx)(i.code,{children:\"PPM\"})}),\" relate to power; \",(0,e.jsx)(i.strong,{children:(0,e.jsx)(i.code,{children:\"PPT\"})}),\" to the battery; \",(0,e.jsxs)(i.strong,{children:[(0,e.jsx)(i.code,{children:\"NDC\"}),\"/\",(0,e.jsx)(i.code,{children:\"VFD\"})]}),\" to camera/display; and several memory-related codes point at RAM. Note any code it gives you \\u2014 it is the language Apple support will speak.\"]}),`\n`,(0,e.jsx)(i.h3,{id:\"ram-intel--mac-pro-with-user-upgradable-memory\",children:\"RAM (Intel / Mac Pro with user-upgradable memory)\"}),`\n`,(0,e.jsx)(i.p,{children:\"On machines where you can change RAM:\"}),`\n`,(0,e.jsxs)(i.ul,{children:[`\n`,(0,e.jsxs)(i.li,{children:[\"If you recently added third-party RAM and panics started, \",(0,e.jsx)(i.strong,{children:\"reseat or remove it.\"}),\" Bad or incompatible memory is a classic panic source.\"]}),`\n`,(0,e.jsx)(i.li,{children:\"Test with one stick / one bank at a time to isolate a failing module.\"}),`\n`,(0,e.jsx)(i.li,{children:\"Apple silicon Macs have soldered, unified memory \\u2014 you cannot swap it, so a confirmed memory fault there means a service visit.\"}),`\n`]}),`\n`,(0,e.jsx)(i.h3,{id:\"egpu-and-thunderbolt\",children:\"eGPU and Thunderbolt\"}),`\n`,(0,e.jsxs)(i.ul,{children:[`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"External GPUs\"}),\" (mostly Intel-era setups) add a complex driver and power path. If you run an eGPU and see GPU-stack panics, disconnect it and test. eGPU driver support has narrowed over recent macOS releases.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[\"Marginal \",(0,e.jsx)(i.strong,{children:\"Thunderbolt\"}),\" links \\u2014 a bad cable, an overloaded bus \\u2014 can produce panics that look random. Simplify the Thunderbolt chain and use known-good cables (this overlaps with CAUSE 3).\"]}),`\n`]}),`\n`,(0,e.jsx)(i.h3,{id:\"thermals\",children:\"Thermals\"}),`\n`,(0,e.jsxs)(i.ul,{children:[`\n`,(0,e.jsx)(i.li,{children:\"A Mac that panics under sustained heavy load (long renders, gaming, compiling) and runs hot may be hitting a thermal-related fault. Ensure vents are clear, the machine is on a hard surface, and ambient temperature is reasonable.\"}),`\n`,(0,e.jsx)(i.li,{children:\"Repeated thermal panics on a machine with aging thermal paste or a failing fan are a service item.\"}),`\n`]}),`\n`,(0,e.jsxs)(i.p,{children:[\"If a panic only happens when your Mac is also slow and overheating under load, the \",(0,e.jsx)(i.a,{href:\"/blog/fix-mac-running-slow-complete-guide-2025\",children:\"fix a slow Mac guide\"}),\" covers reducing background load and managing resource pressure, which can lower the thermal ceiling you are hitting.\"]}),`\n`,(0,e.jsx)(i.h2,{id:\"cause-6-corrupted-system-state--nvram-smc-and-reinstall-in-place\",children:\"CAUSE 6: Corrupted System State \\u2014 NVRAM, SMC, and Reinstall in Place\"}),`\n`,(0,e.jsx)(i.p,{children:\"When you have ruled out displays, extensions, peripherals, and hardware, the last category is corrupted low-level state or a damaged macOS install.\"}),`\n`,(0,e.jsx)(i.h3,{id:\"reset-nvram-mostly-intel\",children:\"Reset NVRAM (mostly Intel)\"}),`\n`,(0,e.jsxs)(i.p,{children:[\"NVRAM/PRAM stores small settings \\u2014 display, startup disk, some power values. On \",(0,e.jsx)(i.strong,{children:\"Intel\"}),\" Macs, resetting it can clear a corrupted value causing panics. There are two paths:\"]}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(i.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,e.jsxs)(i.code,{children:[(0,e.jsx)(i.span,{className:\"line\",children:(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# From a logged-in Intel Mac, clear NVRAM, then reboot\"})}),`\n`,(0,e.jsxs)(i.span,{className:\"line\",children:[(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"sudo\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" nvram\"}),(0,e.jsx)(i.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -c\"})]})]})})}),`\n`,(0,e.jsxs)(i.p,{children:[\"Or at boot on Intel: shut down, power on, and immediately hold \",(0,e.jsx)(i.strong,{children:\"Option+Cmd+P+R\"}),\" for about 20 seconds, then release. \",(0,e.jsx)(i.strong,{children:\"Apple silicon Macs manage NVRAM automatically\"}),\" and do not have a manual key-combo reset \\u2014 a normal restart resets the relevant state, so the key combo does not apply.\"]}),`\n`,(0,e.jsx)(i.h3,{id:\"reset-smc-intel-only\",children:\"Reset SMC (Intel only)\"}),`\n`,(0,e.jsxs)(i.p,{children:[\"The System Management Controller handles power, thermal, and some hardware behavior on \",(0,e.jsx)(i.strong,{children:\"Intel\"}),\" Macs. A corrupted SMC state can cause power and wake-related panics. The exact key sequence depends on the model (T2 vs. non-T2, desktop vs. laptop) \\u2014 follow Apple's model-specific SMC reset steps. \",(0,e.jsx)(i.strong,{children:\"Apple silicon Macs have no SMC to reset;\"}),\" a full shutdown (leave it off ~30 seconds) and restart accomplishes the equivalent.\"]}),`\n`,(0,e.jsx)(i.h3,{id:\"reinstall-macos-in-place\",children:\"Reinstall macOS in place\"}),`\n`,(0,e.jsx)(i.p,{children:\"If panics persist with no clear cause, reinstalling macOS over your existing system replaces system files without erasing your data:\"}),`\n`,(0,e.jsxs)(i.ol,{children:[`\n`,(0,e.jsxs)(i.li,{children:[\"Back up first with \",(0,e.jsx)(i.strong,{children:\"Time Machine\"}),\" (always, before any reinstall).\"]}),`\n`,(0,e.jsxs)(i.li,{children:[\"Boot to \",(0,e.jsx)(i.strong,{children:\"Recovery\"}),\": on Apple silicon, hold the \",(0,e.jsx)(i.strong,{children:\"power button\"}),' until \"Loading startup options,\" then choose ',(0,e.jsx)(i.strong,{children:\"Options \\u2192 Continue\"}),\"; on Intel, hold \",(0,e.jsx)(i.strong,{children:\"Cmd+R\"}),\" at boot.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[\"Choose \",(0,e.jsx)(i.strong,{children:\"Reinstall macOS Tahoe\"}),\" and follow the prompts. This is an in-place reinstall \\u2014 your files, apps, and settings remain.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[\"If panics \",(0,e.jsx)(i.em,{children:\"still\"}),\" occur after a clean reinstall on factory-clean state, the evidence strongly points back to \",(0,e.jsx)(i.strong,{children:\"hardware\"}),\" (CAUSE 5) or a single re-installed extension (CAUSE 2) \\u2014 at which point a Genius Bar visit is warranted.\"]}),`\n`]}),`\n`,(0,e.jsx)(i.p,{children:\"A reinstall is a heavy step. Do not jump to it first; reach it only after the panic report and the decision tree have failed to pin a cause.\"}),`\n`,(0,e.jsx)(i.h2,{id:\"when-to-take-it-to-apple\",children:\"When to Take It to Apple\"}),`\n`,(0,e.jsx)(i.p,{children:\"Some panics are not yours to fix. Take the Mac to Apple (or an Apple Authorized Service Provider) when:\"}),`\n`,(0,e.jsxs)(i.ul,{children:[`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"Apple Diagnostics returns a hardware reference code.\"}),\" That is a confirmed component issue.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"Panics persist after a clean in-place reinstall\"}),\" on an otherwise stock configuration \\u2014 software has been ruled out.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"The panic report consistently names a hardware fault\"}),\" (machine check, ECC/memory errors) with no third-party kext.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"You are on M5 MacBook Air / M5 Pro/Max,\"}),\" fully updated to 26.5 or later, and still panicking \\u2014 Apple acknowledged restart issues on these models, so your case is relevant data for them and may be covered.\"]}),`\n`,(0,e.jsxs)(i.li,{children:[(0,e.jsx)(i.strong,{children:\"The Mac will not stay booted\"}),\" long enough to diagnose (panic loop) even after the recovery steps below.\"]}),`\n`]}),`\n`,(0,e.jsxs)(i.p,{children:[\"Before you go, \",(0,e.jsx)(i.strong,{children:\"collect the evidence\"}),\": copy the most recent panic reports from \",(0,e.jsx)(i.code,{children:\"/Library/Logs/DiagnosticReports/\"}),\", note your Apple Diagnostics code, and write down the pattern (when it happens, what is connected). A clear report and a reproducible pattern dramatically speed up a support visit. Apple silicon Macs are still under warranty for the M5 generation, and acknowledged restart issues are exactly the kind of thing service teams want to see documented.\"]}),`\n`,(0,e.jsx)(i.h2,{id:\"troubleshooting-common-issues\",children:\"Troubleshooting Common Issues\"}),`\n`,(0,e.jsx)(i.h3,{id:\"problem-my-mac-only-panics-when-it-wakes-from-sleep\",children:\"Problem: My Mac only panics when it wakes from sleep\"}),`\n`,(0,e.jsxs)(i.p,{children:[(0,e.jsx)(i.strong,{children:\"Solution:\"}),\" This is a sleep/wake panic, almost always caused by a peripheral. Run \",(0,e.jsx)(i.code,{children:\"pmset -g log | grep -iE 'failure|wake'\"}),\" to confirm wake failures line up with the panic times. Disconnect every hub, dock, and external drive, then let the Mac sleep and wake repeatedly for a day. If it is stable, reconnect devices one at a time until the panic returns \\u2014 that device (or its cable/hub power) is the cause. Power your hub externally and update its firmware; bus-powered hubs are the most common trigger.\"]}),`\n`,(0,e.jsx)(i.h3,{id:\"problem-my-mac-only-panics-when-my-external-monitor-is-connected\",children:\"Problem: My Mac only panics when my external monitor is connected\"}),`\n`,(0,e.jsxs)(i.p,{children:[(0,e.jsx)(i.strong,{children:\"Solution:\"}),\" This is a display/GPU panic, and the fix is usually clean. Open System Settings \\u2192 Displays, select the external monitor, and drop the \",(0,e.jsx)(i.strong,{children:\"Refresh Rate\"}),\" from 240/144/120 Hz down to \",(0,e.jsx)(i.strong,{children:\"60 Hz\"}),\". Use it for a day. If the panics stop, the high refresh rate was the cause \\u2014 you can then try stepping up to 120 Hz, switch to a certified high-bandwidth cable, connect directly instead of through a dock, and disable HDR. SwitchResX can lock an exact safe mode if the Displays panel hides the rate you need.\"]}),`\n`,(0,e.jsx)(i.h3,{id:\"problem-my-mac-panics-randomly-with-no-obvious-pattern\",children:\"Problem: My Mac panics randomly with no obvious pattern\"}),`\n`,(0,e.jsxs)(i.p,{children:[(0,e.jsx)(i.strong,{children:\"Solution:\"}),\" Let the panic report decide. Open the newest file in \",(0,e.jsx)(i.code,{children:\"/Library/Logs/DiagnosticReports/\"}),\", read the \",(0,e.jsx)(i.code,{children:\"panicString\"}),', and check \"Kernel Extensions in backtrace.\" A third-party kext there \\u2192 update or remove that software and test in Safe Mode. No third-party kext and the reports differ every time \\u2192 run Apple Diagnostics (Cmd+D at boot on Apple silicon) for a hardware code. Random panics are usually either one misbehaving extension or marginal hardware \\u2014 the report tells you which.']}),`\n`,(0,e.jsx)(i.h3,{id:\"problem-my-mac-is-stuck-in-a-panic-loop-and-wont-finish-booting\",children:\"Problem: My Mac is stuck in a panic loop and won't finish booting\"}),`\n`,(0,e.jsxs)(i.p,{children:[(0,e.jsx)(i.strong,{children:\"Solution:\"}),\" Boot into \",(0,e.jsx)(i.strong,{children:\"Safe Mode\"}),\" first (Apple silicon: hold power \\u2192 select disk \\u2192 hold Shift \\u2192 Continue in Safe Mode; Intel: hold Shift at boot). Safe Mode disables third-party extensions, so if it boots cleanly, a kext is the cause \\u2014 remove it from there. If Safe Mode also loops, boot to \",(0,e.jsx)(i.strong,{children:\"Recovery\"}),\" (Apple silicon: hold power \\u2192 Options; Intel: Cmd+R), run Disk Utility First Aid, and if needed reinstall macOS in place. Persistent looping even from a clean reinstall points at hardware \\u2014 take it to Apple.\"]}),`\n`,(0,e.jsx)(i.p,{children:(0,e.jsx)(i.img,{alt:\"Console app showing a macOS panic report\",src:\"/images/blog/mac-kernel-panic-random-restart-macos-tahoe-26-5-refresh-rate-panic-log-fix-2026/content-1.webp\",width:\"2848\",height:\"1504\"})}),`\n`,(0,e.jsx)(i.h2,{id:\"frequently-asked-questions\",children:\"Frequently Asked Questions\"}),`\n`,(0,e.jsx)(i.h3,{id:\"is-a-kernel-panic-the-same-as-my-mac-crashing\",children:\"Is a kernel panic the same as my Mac crashing?\"}),`\n`,(0,e.jsxs)(i.p,{children:[\"Not quite. A kernel panic is the \",(0,e.jsx)(i.em,{children:\"entire system\"}),' halting and restarting because the OS core hit an unsafe state \\u2014 you get a \"Your computer restarted because of a problem\" dialog. An app crash is a single program quitting while the rest of macOS keeps running. They write different reports and have different fixes, so identify which one you are seeing before troubleshooting.']}),`\n`,(0,e.jsx)(i.h3,{id:\"where-exactly-is-the-panic-log-stored-on-macos-tahoe\",children:\"Where exactly is the panic log stored on macOS Tahoe?\"}),`\n`,(0,e.jsxs)(i.p,{children:[\"Kernel panic reports live in \",(0,e.jsx)(i.code,{children:\"/Library/Logs/DiagnosticReports/\"}),\", named like \",(0,e.jsx)(i.code,{children:\"Kernel-2026-05-22-143012.panic\"}),\" or a richer \",(0,e.jsx)(i.code,{children:\"panic-full-...ips\"}),\" file on Apple silicon. You can also open them in Console.app under Crash Reports / System Reports. Run \",(0,e.jsx)(i.code,{children:\"ls -lt /Library/Logs/DiagnosticReports/ | grep -i panic\"}),\" in Terminal to list them newest-first.\"]}),`\n`,(0,e.jsx)(i.h3,{id:\"will-dropping-my-monitors-refresh-rate-really-stop-the-restarts\",children:\"Will dropping my monitor's refresh rate really stop the restarts?\"}),`\n`,(0,e.jsx)(i.p,{children:\"If your panics only happen with that monitor connected and the report shows a WindowServer/GPU watchdog timeout, then yes \\u2014 dropping from 240/144/120 Hz to 60 Hz is a strong, community-confirmed workaround that removes the marginal timing path. It is the first thing to try for display-related panics. You can later test 120 Hz with a certified cable once the system is stable.\"}),`\n`,(0,e.jsx)(i.h3,{id:\"did-apple-fix-the-restart-bugs-in-macos-tahoe-265\",children:\"Did Apple fix the restart bugs in macOS Tahoe 26.5?\"}),`\n`,(0,e.jsx)(i.p,{children:\"Apple's 26.5 enterprise release notes acknowledged and addressed restart fixes for M5 MacBook Air and M5 Pro/Max, content-filter network extension restarts, and a black-screen-after-update condition. That covers a meaningful set of cases, so update fully first. But some users still report panics afterward \\u2014 those are community-reported and need the workarounds in this guide rather than a guaranteed patch.\"}),`\n`,(0,e.jsx)(i.h3,{id:\"how-do-i-know-if-a-third-party-driver-caused-my-panic\",children:\"How do I know if a third-party driver caused my panic?\"}),`\n`,(0,e.jsxs)(i.p,{children:['Open the panic report and find the \"Kernel Extensions in backtrace\" section. If you see bundle IDs that are not ',(0,e.jsx)(i.code,{children:\"com.apple.*\"}),\" \\u2014 a VPN, antivirus, or virtualization vendor's name \\u2014 that extension is implicated. Confirm by booting Safe Mode (which disables third-party kexts): if the panics stop, third-party software is the cause. Then update or uninstall that extension.\"]}),`\n`,(0,e.jsx)(i.h3,{id:\"should-i-reinstall-macos-to-fix-kernel-panics\",children:\"Should I reinstall macOS to fix kernel panics?\"}),`\n`,(0,e.jsx)(i.p,{children:\"Reinstalling is a last resort, not a first step. Work the decision tree first \\u2014 refresh rate, extensions, peripherals, the acknowledged 26.5 items, hardware. Only after those fail should you do an in-place reinstall (which keeps your data). Always back up with Time Machine first. If panics continue even after a clean reinstall, the cause is almost certainly hardware, and it is time for Apple.\"}),`\n`,(0,e.jsx)(i.h2,{id:\"conclusion\",children:\"Conclusion\"}),`\n`,(0,e.jsxs)(i.p,{children:[\"Kernel panics feel catastrophic, but on macOS Tahoe 26.5 they are usually traceable to a short list of causes \\u2014 and the panic report tells you which one. Read the \",(0,e.jsx)(i.code,{children:\"panicString\"}),' and the \"Kernel Extensions in backtrace\" list first; those two fields route most panics to the right fix. For the single most common Tahoe 26.5 trigger, a too-high external display refresh rate, the fix is as simple as dropping to 60 Hz. For extension-related panics, audit with ',(0,e.jsx)(i.code,{children:\"kmutil showloaded\"}),\" and \",(0,e.jsx)(i.code,{children:\"systemextensionsctl list\"}),\", then prove it in Safe Mode. For sleep/wake panics, isolate the peripheral. Make sure you are fully updated so the items Apple acknowledged in 26.5 are already handled, and reserve hardware tests and reinstalls for when the report and the decision tree have genuinely failed to pin a cause.\"]}),`\n`,(0,e.jsxs)(i.p,{children:[\"Diagnose, do not guess \\u2014 and you will resolve the vast majority of these restarts yourself. For related reading, see our \",(0,e.jsx)(i.a,{href:\"/blog/macos-tahoe-26-5-released-complete-update-guide-security-cve-roundup-2026\",children:\"macOS Tahoe 26.5 update and security guide\"}),\", the \",(0,e.jsx)(i.a,{href:\"/blog/external-display-not-detected-macos-tahoe-complete-diagnostic-fix-guide-2026\",children:\"external display diagnostic guide\"}),\", and the \",(0,e.jsx)(i.a,{href:\"/blog/safari-tab-crashes-macos-tahoe-26-5-webkit-feature-flag-fix-2026\",children:\"Safari tab crashes fix\"}),\" if your problem turns out to be app-level rather than a full kernel panic.\"]})]})}function c(n={}){let{wrapper:i}=n.components||{};return i?(0,e.jsx)(i,{...n,children:(0,e.jsx)(d,{...n})}):d(n)}return b(v);})();\n;return Component;","toc":[{"title":"Key Takeaways","url":"#key-takeaways","depth":2},{"title":"Kernel Panic vs App Crash vs Freeze: Know What You're Looking At","url":"#kernel-panic-vs-app-crash-vs-freeze-know-what-youre-looking-at","depth":2},{"title":"How to Find and Read the Panic Report","url":"#how-to-find-and-read-the-panic-report","depth":2},{"title":"Where panic logs live","url":"#where-panic-logs-live","depth":3},{"title":"Opening a panic report in Console.app","url":"#opening-a-panic-report-in-consoleapp","depth":3},{"title":"The live unified log","url":"#the-live-unified-log","depth":3},{"title":"Anatomy of a panic report: an annotated example","url":"#anatomy-of-a-panic-report-an-annotated-example","depth":3},{"title":"The Diagnostic Decision Tree","url":"#the-diagnostic-decision-tree","depth":2},{"title":"CAUSE 1: High External Monitor Refresh Rate (120 / 144 / 240 Hz)","url":"#cause-1-high-external-monitor-refresh-rate-120--144--240-hz","depth":2},{"title":"Why this happens","url":"#why-this-happens","depth":3},{"title":"The clean fix: drop the refresh rate","url":"#the-clean-fix-drop-the-refresh-rate","depth":3},{"title":"CAUSE 2: Faulty or Outdated Kernel & System Extensions","url":"#cause-2-faulty-or-outdated-kernel--system-extensions","depth":2},{"title":"Step 1: Inventory what is loaded","url":"#step-1-inventory-what-is-loaded","depth":3},{"title":"Step 2: Prove it with Safe Mode","url":"#step-2-prove-it-with-safe-mode","depth":3},{"title":"Step 3: Remove or update the offending extension","url":"#step-3-remove-or-update-the-offending-extension","depth":3},{"title":"CAUSE 3: Sleep / Wake Panics with Peripherals and Hubs","url":"#cause-3-sleep--wake-panics-with-peripherals-and-hubs","depth":2},{"title":"Confirm it is a sleep/wake panic","url":"#confirm-it-is-a-sleepwake-panic","depth":3},{"title":"Fix it","url":"#fix-it","depth":3},{"title":"CAUSE 4: The Apple-Acknowledged 26.5 Hardware & Enterprise Items","url":"#cause-4-the-apple-acknowledged-265-hardware--enterprise-items","depth":2},{"title":"CAUSE 5: Hardware — RAM, eGPU / Thunderbolt, and Thermals","url":"#cause-5-hardware--ram-egpu--thunderbolt-and-thermals","depth":2},{"title":"Run Apple Diagnostics","url":"#run-apple-diagnostics","depth":3},{"title":"RAM (Intel / Mac Pro with user-upgradable memory)","url":"#ram-intel--mac-pro-with-user-upgradable-memory","depth":3},{"title":"eGPU and Thunderbolt","url":"#egpu-and-thunderbolt","depth":3},{"title":"Thermals","url":"#thermals","depth":3},{"title":"CAUSE 6: Corrupted System State — NVRAM, SMC, and Reinstall in Place","url":"#cause-6-corrupted-system-state--nvram-smc-and-reinstall-in-place","depth":2},{"title":"Reset NVRAM (mostly Intel)","url":"#reset-nvram-mostly-intel","depth":3},{"title":"Reset SMC (Intel only)","url":"#reset-smc-intel-only","depth":3},{"title":"Reinstall macOS in place","url":"#reinstall-macos-in-place","depth":3},{"title":"When to Take It to Apple","url":"#when-to-take-it-to-apple","depth":2},{"title":"Troubleshooting Common Issues","url":"#troubleshooting-common-issues","depth":2},{"title":"Problem: My Mac only panics when it wakes from sleep","url":"#problem-my-mac-only-panics-when-it-wakes-from-sleep","depth":3},{"title":"Problem: My Mac only panics when my external monitor is connected","url":"#problem-my-mac-only-panics-when-my-external-monitor-is-connected","depth":3},{"title":"Problem: My Mac panics randomly with no obvious pattern","url":"#problem-my-mac-panics-randomly-with-no-obvious-pattern","depth":3},{"title":"Problem: My Mac is stuck in a panic loop and won't finish booting","url":"#problem-my-mac-is-stuck-in-a-panic-loop-and-wont-finish-booting","depth":3},{"title":"Frequently Asked Questions","url":"#frequently-asked-questions","depth":2},{"title":"Is a kernel panic the same as my Mac crashing?","url":"#is-a-kernel-panic-the-same-as-my-mac-crashing","depth":3},{"title":"Where exactly is the panic log stored on macOS Tahoe?","url":"#where-exactly-is-the-panic-log-stored-on-macos-tahoe","depth":3},{"title":"Will dropping my monitor's refresh rate really stop the restarts?","url":"#will-dropping-my-monitors-refresh-rate-really-stop-the-restarts","depth":3},{"title":"Did Apple fix the restart bugs in macOS Tahoe 26.5?","url":"#did-apple-fix-the-restart-bugs-in-macos-tahoe-265","depth":3},{"title":"How do I know if a third-party driver caused my panic?","url":"#how-do-i-know-if-a-third-party-driver-caused-my-panic","depth":3},{"title":"Should I reinstall macOS to fix kernel panics?","url":"#should-i-reinstall-macos-to-fix-kernel-panics","depth":3},{"title":"Conclusion","url":"#conclusion","depth":2}],"estimatedTime":30}