<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>TechFuel HQ</title><link>https://techfuelhq.com/</link><description>Recent content on TechFuel HQ</description><generator>Hugo</generator><language>en-us</language><managingEditor>LK Wood IV</managingEditor><lastBuildDate>Sun, 04 Oct 2026 02:47:23 +0000</lastBuildDate><atom:link href="https://techfuelhq.com/index.xml" rel="self" type="application/rss+xml"/><atom:link href="https://pubsubhubbub.appspot.com/" rel="hub"/><item><title>Plan a 1440p Gaming PC Without Losing the Decisions</title><link>https://techfuelhq.com/projects/1440p-gaming-pc-plan/</link><pubDate>Sat, 03 Oct 2026 00:00:00 -0500</pubDate><author>LK Wood IV</author><guid>https://techfuelhq.com/projects/1440p-gaming-pc-plan/</guid><description>&lt;p>By &lt;a href="https://techfuelhq.com/author/lk-wood-iv/">LK Wood IV&lt;/a> · Published 2026-10-03 · St. Louis County, MO&lt;/p>
&lt;div class="verdict-card">
&lt;p class="callout-label">Project route&lt;/p>
&lt;ol>
&lt;li>Write down the games, display, quality target, and hard budget.&lt;/li>
&lt;li>Use the published 1440p parts list as a baseline, not a current-price promise.&lt;/li>
&lt;li>Resolve the GPU choice before changing the supporting parts.&lt;/li>
&lt;li>Check the entire parts list for compatibility and power together.&lt;/li>
&lt;li>Write the reason for every departure in the project constraints, then export the result.&lt;/li>
&lt;/ol>
&lt;/div>
&lt;p>&lt;a href="https://techfuelhq.com/tools/hardware-projects/?template=gaming-1440p-rtx-5060-ti">Start this 1440p gaming project&lt;/a>. The template opens with the linked build identity and the tool route already attached. Saving keeps the project on this device. Exporting creates a backup copy; it does not remove the saved project.&lt;/p>
&lt;p>The hard part of a gaming build is rarely finding seven components. It is keeping the reason behind each component intact after three price checks and two GPU comparisons, even after a late case swap sends this project back to TechFuel HQ&amp;rsquo;s &lt;a href="https://techfuelhq.com/pc-builds/1500-dollar-rtx-5060-ti-1440p-build-2026/">published Ryzen 7 7700 and RTX 5060 Ti 16GB parts baseline&lt;/a> to question the complete system again. The template does not ask you to accept that system unchanged.&lt;/p>
&lt;h2 id="1-freeze-the-job-before-the-shopping-list">1. Freeze the job before the shopping list&lt;/h2>
&lt;p>Write four constraints in the project before opening a retailer tab:&lt;/p>
&lt;ul>
&lt;li>The exact display resolution and refresh rate you intend to use.&lt;/li>
&lt;li>Two or three games that matter more than an average across games you do not play.&lt;/li>
&lt;li>Whether ray tracing, streaming, local AI, or another second job belongs in the requirement.&lt;/li>
&lt;li>A hard total for the tower, with tax and any missing peripherals kept visible.&lt;/li>
&lt;/ul>
&lt;p>I would treat those as the project&amp;rsquo;s acceptance test. Keep that reason visible. A part change that does not improve one of them needs a better reason than being newer. This also stops a 1440p plan from drifting into a 4K budget one premium part at a time.&lt;/p>
&lt;p>Do not put a frame-rate promise in the project from memory. The baseline article carries the exact games, settings, test conditions, and update history behind its results. Keep that page as evidence and record your own target separately.&lt;/p>
&lt;h2 id="2-load-the-baseline-and-mark-what-is-fixed">2. Load the baseline and mark what is fixed&lt;/h2>
&lt;p>Open the project template, then open the &lt;a href="https://techfuelhq.com/tools/pc-builder/">PC Builder&lt;/a> from the saved route. The project preserves the authored Ryzen 7 7700, ASUS Dual RTX 5060 Ti 16GB, and MSI B650 Tomahawk product identities. The picker is incomplete. Unmodeled parts need manual checks. It can restore the motherboard, but the exact CPU and GPU are unavailable; other unmodeled parts also stay explicit. Do not choose a nearby catalog entry merely to make the form look complete. Mark each source-build line as one of three things:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Fixed:&lt;/strong> already owned, already ordered, or required by the job.&lt;/li>
&lt;li>&lt;strong>Candidate:&lt;/strong> acceptable, but still competing with a named alternative.&lt;/li>
&lt;li>&lt;strong>Open:&lt;/strong> no decision yet.&lt;/li>
&lt;/ul>
&lt;p>That small distinction matters. &amp;ldquo;Ryzen 7 7700&amp;rdquo; as a fixed part means the motherboard and memory must work around it. The same CPU as a candidate means a later comparison can still change the platform. A shopping list does not show that difference; the project record does. The baseline article carries a dated published price table and a later published recheck. The printed date matters. Keep price open until you have checked the exact model you plan to buy.&lt;/p>
&lt;h2 id="3-make-the-gpu-decision-in-its-own-lane">3. Make the GPU decision in its own lane&lt;/h2>
&lt;p>The GPU changes the gaming target, power plan, case clearance, and sometimes the software path. Resolve it before polishing the rest of the bill.&lt;/p>
&lt;p>Start with the &lt;a href="https://techfuelhq.com/gpu-reviews/rtx-5060-ti-vs-rx-9060-xt-1440p-showdown-2026/">RTX 5060 Ti 16GB versus RX 9060 XT 16GB comparison&lt;/a>. That page separates native raster, ray tracing, upscaling, VRAM capacity, Linux support, and second-job use instead of reducing the choice to one average. Open the &lt;a href="https://techfuelhq.com/tools/gpu-comparison/">GPU Comparison tool&lt;/a> when you have narrowed the field to the cards you would actually buy. Put the winning criterion in the project constraints. &amp;ldquo;RTX 5060 Ti&amp;rdquo; is a selection; &amp;ldquo;RTX 5060 Ti because this machine also needs the CUDA software path&amp;rdquo; is a decision another person can review. Current prices can reverse the call. If they do, update the constraint and export a fresh record. The attached evidence is display-only.&lt;/p>
&lt;p>Do not copy a benchmark row into the project without its source date and settings. Link the comparison page or the underlying review. The project is the index to the evidence, not a second benchmark database.&lt;/p>
&lt;h2 id="4-recheck-compatibility-after-the-last-swap">4. Recheck compatibility after the last swap&lt;/h2>
&lt;p>Return to the PC Builder with the selected catalog entries. Read its warnings as a queue for the modeled fields, then resolve them in order:&lt;/p>
&lt;ol>
&lt;li>CPU socket and motherboard chipset.&lt;/li>
&lt;li>Motherboard memory type.&lt;/li>
&lt;li>GPU length against the selected case.&lt;/li>
&lt;li>Estimated system draw against the selected power supply.&lt;/li>
&lt;li>Any open item the catalog cannot model.&lt;/li>
&lt;/ol>
&lt;p>Because the tool can only check the fields represented in its catalog, a clean result does not prove cooler height, radiator placement, cable bend room, BIOS readiness, memory QVL status, or the physical fit of every accessory that may share the case, especially when a late case change affects several parts at once. It also cannot clear an exact authored part that the picker does not offer. Open the manufacturer&amp;rsquo;s page for the exact case and board, then the cooler and GPU model, before ordering.&lt;/p>
&lt;p>This is also the point to run the &lt;a href="https://techfuelhq.com/tools/psu-wattage-calculator/">PSU Wattage Calculator&lt;/a>. Carry the complete component set into it rather than sizing from the GPU name alone. Record the calculator state in the project, then keep the exact PSU model as a separate product decision.&lt;/p>
&lt;h2 id="5-stop-conditions-before-purchase">5. Stop conditions before purchase&lt;/h2>
&lt;p>The plan is ready for a purchase review when every line below has an answer:&lt;/p>
&lt;ul>
&lt;li>The target games and display are written in the project.&lt;/li>
&lt;li>Every component is fixed or has one named alternative.&lt;/li>
&lt;li>The GPU decision includes its source and reason.&lt;/li>
&lt;li>The PC Builder has no unresolved incompatibility among the selections it can model.&lt;/li>
&lt;li>Missing authored parts and manual fit, connector, BIOS, and memory checks have an owner.&lt;/li>
&lt;li>The PSU calculation is saved with the parts it represents.&lt;/li>
&lt;li>Volatile prices were checked for the exact models on the day of purchase.&lt;/li>
&lt;li>The project JSON has been exported somewhere you can recover it.&lt;/li>
&lt;/ul>
&lt;p>After assembly, open the &lt;a href="https://techfuelhq.com/tools/diagnostic-workbench/">Diagnostic Workbench&lt;/a> from the same project if the machine misbehaves. Record the symptom and display path, then the trigger, recent change, completed tests, plus the outcome. A build plan and its first fault should not become two unrelated browser notes.&lt;/p>
&lt;h2 id="what-the-sources-establish">What the sources establish&lt;/h2>
&lt;p>The &lt;a href="https://techfuelhq.com/pc-builds/1500-dollar-rtx-5060-ti-1440p-build-2026/">1440p baseline&lt;/a> publishes the parts rationale, benchmark table, and dated price history inside that article. The &lt;a href="https://techfuelhq.com/gpu-reviews/rtx-5060-ti-vs-rx-9060-xt-1440p-showdown-2026/">GPU showdown&lt;/a> carries the broader published benchmark comparisons and the author&amp;rsquo;s ownership notes. This guide adds the project sequence. It does not add a benchmark, price, fit result, or claim that every copy of a named part performs identically.&lt;/p>
&lt;p>The template is a starting record, not a recommendation engine. Your display, games, local prices, existing parts, and tolerance for manual checks can produce a different final system. Keep the difference visible; that is the useful part of the project.&lt;/p></description></item><item><title>Expand the Existing 4K RTX 5080 Rig Without Rebuilding It</title><link>https://techfuelhq.com/projects/existing-4k-rig-expansion-plan/</link><pubDate>Sat, 03 Oct 2026 00:00:00 -0500</pubDate><author>LK Wood IV</author><guid>https://techfuelhq.com/projects/existing-4k-rig-expansion-plan/</guid><description>&lt;p>By &lt;a href="https://techfuelhq.com/author/lk-wood-iv/">LK Wood IV&lt;/a> · Published 2026-10-03 · St. Louis County, MO&lt;/p>
&lt;div class="verdict-card">
&lt;p class="callout-label">Expansion rule&lt;/p>
&lt;p>Preserve the known machine first. Pick one job for the change, check the resource it consumes, and define the result that would justify keeping it. The owner build and dataset stay attached as the baseline.&lt;/p>
&lt;/div>
&lt;p>&lt;a href="https://techfuelhq.com/tools/hardware-projects/?template=existing-4k-rtx-5080-rig">Start from the existing 4K rig&lt;/a>. This template represents LK Wood IV&amp;rsquo;s authored Ryzen 7 7800X3D and RTX 5080 system. It should not be used as proof that another machine has the same parts, cooling, power behavior, or benchmark results.&lt;/p>
&lt;p>This is an expansion project. The &lt;a href="https://techfuelhq.com/pc-builds/2500-dollar-7800x3d-rtx-5080-4k-build-2026/">source build&lt;/a> documents the exact 4K rig LK Wood IV runs, and the linked &lt;a href="https://techfuelhq.com/data/gpu/rog-astral-rtx-5080-oc-2026-06-09/">ROG Astral RTX 5080 dataset&lt;/a> preserves its first-party benchmark and power record; the useful move is to keep that baseline intact while asking whether one additional job deserves hardware and time, plus another failure surface.&lt;/p>
&lt;h2 id="1-capture-the-machine-before-proposing-a-change">1. Capture the machine before proposing a change&lt;/h2>
&lt;p>Open the template and confirm the authored build identity. Although the current PC Builder can restore the exact Ryzen 7 7800X3D, ROG Astral RTX 5080 OC, and ROG STRIX B650-A, it cannot restore the Samsung 970 EVO Plus 1TB or EVGA SuperNOVA 1000 GT identities that the project also preserves, and the authored RAM kit is unspecified. Do not auto-select replacements. Then record the current state that matters to this expansion:&lt;/p>
&lt;ul>
&lt;li>The installed motherboard, firmware version, memory configuration, storage devices, power supply, case, and cooling path.&lt;/li>
&lt;li>The display connection from GPU port to cable, adapter or receiver, and panel.&lt;/li>
&lt;li>The occupied expansion slots, M.2 sockets, SATA ports, and power connectors.&lt;/li>
&lt;li>Any existing fault or workaround that the change must not hide.&lt;/li>
&lt;/ul>
&lt;p>The source article names the owner&amp;rsquo;s actual core configuration and separates it from the parts recommended for a fresh build. Keep that distinction. A B650E suggestion in the article does not turn the owner&amp;rsquo;s B650 board into B650E, and a fresh-build PSU recommendation does not replace the supply already installed. Photograph the cable routing and card clearances before touching the machine. The project export can carry notes, but the share link deliberately leaves free-form notes and diagnostic text out. Store photographs separately and name their location in the private project record.&lt;/p>
&lt;h2 id="2-give-the-expansion-one-primary-job">2. Give the expansion one primary job&lt;/h2>
&lt;p>Write one sentence that begins with a verb: add fast project storage, hold a larger local model, connect a higher-bandwidth display, reduce load noise, or create a clean capture path. If the sentence contains three jobs, split them into phases. Then define a stop condition. Examples include one more usable NVMe device without taking a required GPU lane, a display mode that the complete output chain can carry, or a storage target that fits without moving active data onto an unprotected device. A stop condition keeps a successful first phase from turning into an unnecessary rebuild.&lt;/p>
&lt;p>I would also state what remains fixed. On this project, the 7800X3D and RTX 5080 are the baseline unless the expansion evidence proves they block the job. A new generation alone is not that evidence.&lt;/p>
&lt;h2 id="3-route-the-job-to-the-constrained-resource">3. Route the job to the constrained resource&lt;/h2>
&lt;p>Each expansion spends a different resource. Check the one your plan consumes before shopping.&lt;/p>
&lt;h3 id="nvme-or-add-in-storage">NVMe or add-in storage&lt;/h3>
&lt;p>Open the &lt;a href="https://techfuelhq.com/tools/nvme-expansion-checker/">NVMe Expansion Checker&lt;/a> and select the exact motherboard record when it exists. Save the result to the project. The checker can expose modeled socket and lane-sharing constraints, but its result does not replace the board manual. Confirm the exact socket, supported device size, heatsink clearance, lane sharing, and any port disabled by that configuration in the manufacturer&amp;rsquo;s documentation.&lt;/p>
&lt;p>If the board is absent from the checker, record that as a limitation rather than picking a similar board. A nearby model name can have a different lane map.&lt;/p>
&lt;h3 id="display-or-capture-path">Display or capture path&lt;/h3>
&lt;p>Use the &lt;a href="https://techfuelhq.com/tools/displayport-hdmi-bandwidth-calculator/">DisplayPort and HDMI Bandwidth Calculator&lt;/a> for the requested resolution, refresh rate, color depth, and chroma path. Save the requested mode and the result together. Then verify every device between the GPU and panel. The weakest cable, adapter, capture device, receiver, or input decides what the path can carry.&lt;/p>
&lt;p>If a new display symptom appears, open the &lt;a href="https://techfuelhq.com/tools/diagnostic-workbench/">Diagnostic Workbench&lt;/a> and capture the full display path before swapping more parts. A black screen with a direct GPU-to-panel cable is a different case from one behind an adapter and capture device.&lt;/p>
&lt;h3 id="power-or-cooling-change">Power or cooling change&lt;/h3>
&lt;p>The source build includes first-party power observations for this exact owner rig. Keep those observations attached as baseline evidence, then use the &lt;a href="https://techfuelhq.com/tools/psu-wattage-calculator/">PSU Wattage Calculator&lt;/a> for the changed configuration. Do not turn the existing measurement into a promise about a different card, power limit, workload, or supply.&lt;/p>
&lt;p>For cooling, write down the problem you are solving: temperature, acoustic character, sustained clock behavior, or physical clearance. &amp;ldquo;Better cooling&amp;rdquo; cannot be verified. A temperature limit or a before-and-after noise observation under the same workload can be.&lt;/p>
&lt;h3 id="local-ai-or-memory-pressure">Local AI or memory pressure&lt;/h3>
&lt;p>Start with the &lt;a href="https://techfuelhq.com/articles/local-llm-by-gpu-vram-2026/">local LLM VRAM guide&lt;/a> and the &lt;a href="https://techfuelhq.com/tools/llm-vram-calculator/">LLM VRAM Calculator&lt;/a>. Keep model fit and context, the chosen quantization, plus desired speed in the project. The RTX 5080&amp;rsquo;s presence does not make every model a good fit, and system memory or storage may become the next constraint after VRAM.&lt;/p>
&lt;h2 id="4-change-one-layer-then-retest-the-baseline">4. Change one layer, then retest the baseline&lt;/h2>
&lt;p>Before installation, export the project JSON and record the last known-good state. After installation:&lt;/p>
&lt;ol>
&lt;li>Confirm the machine reaches the same idle desktop and display mode it held before.&lt;/li>
&lt;li>Confirm the new device appears with the expected identity and capacity.&lt;/li>
&lt;li>Run the shortest test that exercises the new job.&lt;/li>
&lt;li>Recheck the old job most likely to be affected by the shared resource.&lt;/li>
&lt;li>Record the outcome before changing firmware, drivers, cables, or settings again.&lt;/li>
&lt;/ol>
&lt;p>That order protects cause and effect. Installing an SSD, updating firmware, changing the GPU driver, and rerouting the display cable in one pass creates four suspects if the machine stops behaving.&lt;/p>
&lt;p>Use the Diagnostic Workbench for a failed retest. It keeps the symptom and hardware, trigger and recent change, observations, completed tests, plus the outcome beside the project while excluding that private diagnostic text from share links. Change one layer at a time so the result still has a cause.&lt;/p>
&lt;h2 id="5-close-the-project-with-a-keep-revert-or-follow-up-decision">5. Close the project with a keep, revert, or follow-up decision&lt;/h2>
&lt;p>An expansion is complete when the new job passes its stop condition and the original job still passes its own. Close it with one of three outcomes:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Keep:&lt;/strong> the expansion earned its place and the baseline remains healthy.&lt;/li>
&lt;li>&lt;strong>Revert:&lt;/strong> the cost, instability, noise, lost lanes, or physical compromise is larger than the benefit.&lt;/li>
&lt;li>&lt;strong>Follow up:&lt;/strong> one named uncertainty remains, with the next test and owner written down.&lt;/li>
&lt;/ul>
&lt;p>Export the final project record after the outcome. If you share the project link, remember that the snapshot retains the title, product labels, and tool inputs. It excludes the use case and constraints, all evidence, plus diagnostic text. Use the JSON export when another person needs the complete private record.&lt;/p>
&lt;h2 id="what-the-sources-establish">What the sources establish&lt;/h2>
&lt;p>The &lt;a href="https://techfuelhq.com/pc-builds/2500-dollar-7800x3d-rtx-5080-4k-build-2026/">4K build article&lt;/a> establishes the owner&amp;rsquo;s actual system, its build decisions, and the boundary between installed parts and fresh-build alternatives. The &lt;a href="https://techfuelhq.com/data/gpu/rog-astral-rtx-5080-oc-2026-06-09/">open GPU dataset&lt;/a> establishes the measurements it publishes for that rig, while the &lt;a href="https://techfuelhq.com/gpu-reviews/rog-astral-rtx-5080-oc-review-2026/">ROG Astral review&lt;/a> provides the ownership verdict around the same card and this guide contributes only a change-control path, without adding a measured result, fit claim, price, or statement that the owner&amp;rsquo;s system represents every 7800X3D and RTX 5080 build. Any new component needs its own exact model check and a fresh result after installation.&lt;/p></description></item><item><title>Plan NAS Capacity and Power Before Choosing the Box</title><link>https://techfuelhq.com/projects/nas-capacity-power-plan/</link><pubDate>Sat, 03 Oct 2026 00:00:00 -0500</pubDate><author>LK Wood IV</author><guid>https://techfuelhq.com/projects/nas-capacity-power-plan/</guid><description>&lt;p>By &lt;a href="https://techfuelhq.com/author/lk-wood-iv/">LK Wood IV&lt;/a> · Published 2026-10-03 · St. Louis County, MO&lt;/p>
&lt;div class="verdict-card">
&lt;p class="callout-label">Plan the data before the enclosure&lt;/p>
&lt;p>Define usable capacity and growth, failure tolerance and backup, plus power assumptions before choosing a NAS or drive model. The project template opens a four-bay example with four 8TB WD Red Plus drives and RAID 5 or RAIDZ1 calculator state. Every one of those values is a planning default.&lt;/p>
&lt;/div>
&lt;p>&lt;a href="https://techfuelhq.com/tools/hardware-projects/?template=nas-capacity-power-plan">Start a NAS capacity and power project&lt;/a>. The template keeps the capacity and power routes together and names the WD Red Plus 8TB WD80EFPX so the example has an exact source-linked drive identity, without claiming that you own the model or that it is currently available; replace the drive, layout, electricity rate, and wattage when the real plan differs, before treating the example as a bill of materials.&lt;/p>
&lt;p>A NAS plan can look complete while four different questions remain mixed together: how much data fits, how many device failures the array tolerates, whether existing hardware is worth reusing, and what the finished machine costs to leave on. This project answers them in that order. Product selection comes after the workload and failure plan.&lt;/p>
&lt;h2 id="1-inventory-the-data-and-its-growth">1. Inventory the data and its growth&lt;/h2>
&lt;p>Start with the data you have now. Separate it into three groups:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Primary data:&lt;/strong> files for which the NAS will be the working copy.&lt;/li>
&lt;li>&lt;strong>Replicas:&lt;/strong> data already held somewhere else and safe to recreate.&lt;/li>
&lt;li>&lt;strong>Replaceable data:&lt;/strong> downloads, caches, media transcodes, and other material that can be rebuilt.&lt;/li>
&lt;/ul>
&lt;p>Record the current amount for each group, the expected growth, and the time window you want the system to serve before expansion, because a single total hides the difference between ten terabytes of family photos and ten terabytes of replaceable media.&lt;/p>
&lt;p>Then state the usable-capacity target, meaning the space available after the chosen RAID or RAIDZ layout but before you spend it on snapshots, filesystem overhead, free-space headroom, or a rebuild strategy. Keep those reservations visible instead of quietly treating every reported terabyte as available project space.&lt;/p>
&lt;p>I would also name the largest single restore. Restoring one workstation, one media library, or one project archive can change the network and backup plan even when total capacity stays the same.&lt;/p>
&lt;h2 id="2-choose-the-failure-tolerance-before-the-drive-count">2. Choose the failure tolerance before the drive count&lt;/h2>
&lt;p>Write down how many simultaneous device failures the storage layout must tolerate and what happens while a failed device is replaced, because failure tolerance is the project requirement while the RAID label is only its implementation.&lt;/p>
&lt;p>Open the &lt;a href="https://techfuelhq.com/tools/nas-storage-calculator/">NAS and RAID Storage Calculator&lt;/a> and test the smallest drive count that meets the usable target, then one layout with more fault tolerance. Because a project keeps one current state for each tool, an open trade requires either a full JSON export before replacing that state or a separate project for the alternative. The calculator shows capacity math; it cannot decide how much downtime or rebuild exposure is acceptable for your data.&lt;/p>
&lt;p>For a large six-bay plan, read &lt;a href="https://techfuelhq.com/homelab/six-bay-nas-drives-rebuild-2026/">Six-Bay NAS Drives: The Rebuild Math at 20TB+&lt;/a>. That guide ties its drive, layout, rebuild-floor, and price conclusions to a named size class and dated sources. Use it when your plan matches that scope. Do not copy its old price into a different date or apply its result to another bay count without doing the math again.&lt;/p>
&lt;p>RAID and RAIDZ keep a service running through some device failures. They do not create an independent backup. Record where the second copy lives, how it is disconnected or protected from the primary system, and the last time a restore was tested.&lt;/p>
&lt;h2 id="3-qualify-the-hardware-you-already-own">3. Qualify the hardware you already own&lt;/h2>
&lt;p>If an old desktop is available, do not price a new NAS until the existing machine has passed the basic qualification in the &lt;a href="https://techfuelhq.com/homelab/nas-from-old-pc-2026/">old-PC NAS guide&lt;/a>, which walks through CPU architecture, memory, SATA ports, drive bays, a separate boot device, network path, HBA use, and operating-system choices.&lt;/p>
&lt;p>Capture the exact machine in the project:&lt;/p>
&lt;ul>
&lt;li>CPU and motherboard model.&lt;/li>
&lt;li>Installed memory and available slots.&lt;/li>
&lt;li>Native SATA and M.2 ports, plus occupied ports.&lt;/li>
&lt;li>Physical bays and airflow across the intended drives.&lt;/li>
&lt;li>Network interface and the slowest link to the main client.&lt;/li>
&lt;li>Existing power supply, connectors, and age.&lt;/li>
&lt;li>The boot device and where configuration backups will live.&lt;/li>
&lt;/ul>
&lt;p>Mark anything you have not opened or measured as unknown. &amp;ldquo;Old gaming PC&amp;rdquo; is not a hardware record. The motherboard model and a photograph of the drive cage can answer questions that a processor name cannot.&lt;/p>
&lt;p>Use the &lt;a href="https://techfuelhq.com/tools/am5-ecc-compatibility-checker/">AM5 ECC Compatibility Checker&lt;/a> only when the plan actually uses an AM5 platform represented in its source records. A missing board or an unverified firmware path stays a limitation. Do not promote a nearby model&amp;rsquo;s result into compatibility evidence for yours.&lt;/p>
&lt;h2 id="4-pick-the-storage-software-from-the-operating-constraint">4. Pick the storage software from the operating constraint&lt;/h2>
&lt;p>The operating system follows the hardware, drive layout, and administration job. Open the &lt;a href="https://techfuelhq.com/homelab/proxmox-truenas-unraid-storage-backend-2026/">storage backend comparison&lt;/a> when the plan includes virtualization or competing storage stacks. Keep three questions visible:&lt;/p>
&lt;ol>
&lt;li>Will this box primarily serve storage, run applications, or host virtual machines?&lt;/li>
&lt;li>Are the drives matched, or does the project need to mix capacities?&lt;/li>
&lt;li>Who will maintain updates, replacement procedures, alerts, and backups?&lt;/li>
&lt;/ol>
&lt;p>Record the chosen software and the reason in the project constraints. &amp;ldquo;Popular&amp;rdquo; is not an operating requirement. A straightforward storage appliance and a lab host that also exposes storage have different recovery paths even when they use the same disks.&lt;/p>
&lt;p>Do not install onto the only copy of any data. The project should show a separate temporary location or backup for every disk that will be erased during setup.&lt;/p>
&lt;h2 id="5-carry-capacity-into-power-then-replace-assumptions">5. Carry capacity into power, then replace assumptions&lt;/h2>
&lt;p>Once the drive count and platform are plausible, continue from the NAS calculator to the &lt;a href="https://techfuelhq.com/tools/power-cost-calculator/">Power Cost Calculator&lt;/a>. The handoff preserves capacity context, but capacity does not determine wattage. The destination begins from a labeled estimate that must be replaced with your hardware&amp;rsquo;s idle and load draw. Use &lt;a href="https://techfuelhq.com/homelab/24-7-homelab-idle-power-costs-2026/">24/7 Homelab Idle Power Costs&lt;/a> to see which rows are measurements and which are estimates, which sources support them, and where a comparable-hardware row can serve as a planning reference without becoming a measurement of your machine.&lt;/p>
&lt;p>Enter your electricity rate and expected load schedule. Save the calculator state to the project. When hardware exists, measure idle at the wall after services settle and measure the workload you care about. Before replacing the estimate, export the planning record or copy the old value into the project constraints with its date. The attached evidence list is display-only. Then replace the estimate and record the meter and date so the error remains visible in the exported record or note. Power can decide whether &amp;ldquo;free&amp;rdquo; old hardware remains the cheaper plan, while a small gap can also show that replacing a working machine is difficult to justify. The project should carry the arithmetic; the decision still belongs to the owner.&lt;/p>
&lt;h2 id="6-finish-with-a-recovery-drill">6. Finish with a recovery drill&lt;/h2>
&lt;p>The project is ready for implementation when it names:&lt;/p>
&lt;ul>
&lt;li>Current data, growth window, and usable-capacity target.&lt;/li>
&lt;li>Chosen fault tolerance and a second-copy location.&lt;/li>
&lt;li>Drive count, size assumption, and an alternate layout.&lt;/li>
&lt;li>Exact existing hardware or the unresolved product categories.&lt;/li>
&lt;li>Storage software and the job it serves.&lt;/li>
&lt;li>Estimated idle/load power, electricity rate, and a plan to measure the result.&lt;/li>
&lt;li>One replacement procedure and one restore test.&lt;/li>
&lt;/ul>
&lt;p>After setup, unplug nothing at random. Use the platform&amp;rsquo;s documented failure procedure or a non-destructive test environment, then record what the restore or replacement drill actually proved. If a fault appears during setup, open the &lt;a href="https://techfuelhq.com/tools/diagnostic-workbench/">Diagnostic Workbench&lt;/a> and keep the symptom and recent change, the observations, completed tests, plus the outcome with this project.&lt;/p>
&lt;p>Export the final JSON when the NAS reaches its known-good state. The browser save stays on this device. A shared snapshot retains the title, product labels, and tool inputs while omitting the use case and constraints, all evidence, plus diagnostic text.&lt;/p>
&lt;h2 id="what-the-sources-establish">What the sources establish&lt;/h2>
&lt;p>The capacity calculator establishes arithmetic from the inputs you provide. The &lt;a href="https://techfuelhq.com/homelab/six-bay-nas-drives-rebuild-2026/">six-bay drive guide&lt;/a> establishes its published conclusions only for its stated drive class, source dates, and layout. The &lt;a href="https://techfuelhq.com/homelab/nas-from-old-pc-2026/">old-PC guide&lt;/a> establishes a qualification path, while the &lt;a href="https://techfuelhq.com/homelab/24-7-homelab-idle-power-costs-2026/">power article&lt;/a> separates cited measurements from estimates. This guide connects those decisions. It adds no drive benchmark, current price, measured wattage, or universal operating-system verdict. The template&amp;rsquo;s WD Red Plus reference is a planning default backed by the attached Western Digital data sheet and TechFuel HQ drive guide. It is not an ownership or current-availability claim.&lt;/p></description></item><item><title>Safe GPU Temperature: Read Your Card's Exact Limit</title><link>https://techfuelhq.com/articles/safe-gpu-temp-2026/</link><pubDate>Sun, 04 Oct 2026 02:47:23 +0000</pubDate><author>LK Wood IV</author><guid>https://techfuelhq.com/articles/safe-gpu-temp-2026/</guid><description>&lt;p>By &lt;a href="https://techfuelhq.com/author/lk-wood-iv/">LK Wood IV&lt;/a> · Published 2026-10-04 · St. Louis County, MO&lt;/p>
&lt;div class="verdict-card">
&lt;p class="callout-label">TL;DR · Safe GPU temperature&lt;/p>
&lt;p>&lt;strong>Use the limit for your exact card.&lt;/strong> A GPU is inside its operating range while its core temperature remains below that maximum and it is not reporting thermal slowdown. On a supported NVIDIA card, add the current core temperature to the current T.Limit margin. That sum is the card's maximum operating temperature.&lt;/p>
&lt;/div>
&lt;p>There is no universal safe GPU temperature.&lt;/p>
&lt;p>NVIDIA currently lists 85 C for the desktop RTX 5070 and 90 C for the RTX 5090.&lt;/p>
&lt;p>The same 85 C reading is the limit on one card — and leaves 5 C on the other.&lt;/p>
&lt;p>Those numbers are not interchangeable. The useful question is how much room remains before &lt;em>this card&lt;/em> reaches its limit.&lt;/p>
&lt;h2 id="read-the-exact-limit-with-nvidia-smi">Read the exact limit with nvidia-smi&lt;/h2>
&lt;p>Open Terminal or PowerShell on a PC with an NVIDIA driver and run:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>nvidia-smi --query-gpu=name,driver_version,temperature.gpu,temperature.gpu.tlimit --format=csv
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The two temperature fields have different jobs:&lt;/p>
&lt;ul>
&lt;li>&lt;code>temperature.gpu&lt;/code> is the current core temperature.&lt;/li>
&lt;li>&lt;code>temperature.gpu.tlimit&lt;/code> is the number of degrees remaining before the maximum operating temperature.&lt;/li>
&lt;/ul>
&lt;p>Add them.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>current core temperature + current T.Limit = maximum operating temperature
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>That is the whole calculation.&lt;/p>
&lt;p>&lt;a href="https://docs.nvidia.com/deploy/nvidia-smi/index.html" rel="noopener">NVIDIA&amp;rsquo;s current nvidia-smi documentation&lt;/a> defines T.Limit as a signed, relative reading rather than an absolute temperature and warns that the sensor is unavailable on some products; if the command returns &lt;code>N/A&lt;/code>, skip to the specification-page method below.&lt;/p>
&lt;h3 id="the-rtx-5080-result-on-this-site">The RTX 5080 result on this site&lt;/h3>
&lt;p>On September 14, 2026, my RTX 5080 on driver 616.56 returned 42 C for the core and 46 C for current T.Limit:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>42 C + 46 C = 88 C
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>A later reading returned 41 C plus 47 C, again 88 C, matching the Maximum GPU Temperature on &lt;a href="https://www.nvidia.com/en-us/geforce/graphics-cards/50-series/rtx-5080/" rel="noopener">NVIDIA&amp;rsquo;s RTX 5080 specification page&lt;/a>.&lt;/p>
&lt;p>The method matters more than the idle reading. Although the current temperature moves with the workload, the sum identifies the ceiling built into the card&amp;rsquo;s current temperature-limit reporting, which is the number a generic range cannot supply.&lt;/p>
&lt;h2 id="what-zero-and-negative-tlimit-values-mean">What zero and negative T.Limit values mean&lt;/h2>
&lt;p>For the same RTX 5080, &lt;code>nvidia-smi -q -d TEMPERATURE&lt;/code> reported this ladder:&lt;/p>
&lt;div class="table-wrap">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th scope="col">nvidia-smi field&lt;/th>
&lt;th scope="col" style="text-align: right">Reported value&lt;/th>
&lt;th scope="col" style="text-align: right">Temperature on this 88 C card&lt;/th>
&lt;th scope="col">What NVIDIA says can happen&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td data-label="nvidia-smi field">Current T.Limit&lt;/td>
&lt;td style="text-align: right" data-label="Reported value">46 C&lt;/td>
&lt;td style="text-align: right" data-label="Temperature on this 88 C card">Core was 42 C&lt;/td>
&lt;td data-label="What NVIDIA says can happen">46 C of operating headroom remained&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="nvidia-smi field">Max Operating T.Limit&lt;/td>
&lt;td style="text-align: right" data-label="Reported value">0 C&lt;/td>
&lt;td style="text-align: right" data-label="Temperature on this 88 C card">88 C&lt;/td>
&lt;td data-label="What NVIDIA says can happen">Software may optimize clocks for thermal conditions&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="nvidia-smi field">Slowdown T.Limit&lt;/td>
&lt;td style="text-align: right" data-label="Reported value">-2 C&lt;/td>
&lt;td style="text-align: right" data-label="Temperature on this 88 C card">90 C&lt;/td>
&lt;td data-label="What NVIDIA says can happen">Hardware may optimize clocks to cool the GPU&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="nvidia-smi field">Shutdown T.Limit&lt;/td>
&lt;td style="text-align: right" data-label="Reported value">-5 C specification&lt;/td>
&lt;td style="text-align: right" data-label="Temperature on this 88 C card">Above 93 C&lt;/td>
&lt;td data-label="What NVIDIA says can happen">Below this margin, the GPU may shut down for protection&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;p>Stop at zero. On this card, 88 C is the maximum operating point. The negative slowdown and shutdown values describe protection beyond that point; 93 C belongs to the protection ladder rather than the usable operating range.&lt;/p>
&lt;p>NVIDIA&amp;rsquo;s manual says a current T.Limit of 0 C or lower means the GPU may optimize its clock based on thermal conditions. That makes the reading easy to use:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Positive T.Limit:&lt;/strong> operating headroom remains.&lt;/li>
&lt;li>&lt;strong>Zero T.Limit:&lt;/strong> the core has reached maximum operating temperature.&lt;/li>
&lt;li>&lt;strong>Negative T.Limit:&lt;/strong> the core has passed that maximum and is in the protection ladder.&lt;/li>
&lt;/ul>
&lt;h2 id="nvidia-rtx-50-maximum-gpu-temperatures">NVIDIA RTX 50 maximum GPU temperatures&lt;/h2>
&lt;p>These are NVIDIA&amp;rsquo;s desktop reference or Founders Edition figures, verified on October 2, 2026. NVIDIA says add-in-card specifications can vary, so use the board maker&amp;rsquo;s page for a custom model when it publishes a different limit.&lt;/p>
&lt;div class="table-wrap">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th scope="col">GPU&lt;/th>
&lt;th scope="col" style="text-align: right">NVIDIA maximum GPU temperature&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td data-label="GPU">GeForce RTX 5090&lt;/td>
&lt;td style="text-align: right" data-label="NVIDIA maximum GPU temperature">90 C&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="GPU">GeForce RTX 5080&lt;/td>
&lt;td style="text-align: right" data-label="NVIDIA maximum GPU temperature">88 C&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="GPU">GeForce RTX 5070 Ti&lt;/td>
&lt;td style="text-align: right" data-label="NVIDIA maximum GPU temperature">88 C&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="GPU">GeForce RTX 5070&lt;/td>
&lt;td style="text-align: right" data-label="NVIDIA maximum GPU temperature">85 C&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="GPU">GeForce RTX 5060 Ti&lt;/td>
&lt;td style="text-align: right" data-label="NVIDIA maximum GPU temperature">87 C&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="GPU">GeForce RTX 5060&lt;/td>
&lt;td style="text-align: right" data-label="NVIDIA maximum GPU temperature">89 C&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="GPU">GeForce RTX 5050&lt;/td>
&lt;td style="text-align: right" data-label="NVIDIA maximum GPU temperature">87 C&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;p>The five-degree spread is why copied temperature charts fail: an RTX 5070 at 85 C is already at NVIDIA&amp;rsquo;s maximum, while an RTX 5090 at the same temperature still has 5 C left.&lt;/p>
&lt;p>The sequence is not monotonic. NVIDIA lists 89 C for the RTX 5060 and 85 C for the RTX 5070.&lt;/p>
&lt;h2 id="how-much-headroom-should-a-healthy-card-have">How much headroom should a healthy card have?&lt;/h2>
&lt;p>The NVIDIA sources reviewed here do not prescribe one fixed margin for daily use.&lt;/p>
&lt;p>Start with the card. Then look at the workload and its behavior.&lt;/p>
&lt;p>My hand-tuned ROG Astral RTX 5080 produced a useful real load check: in a 25-minute gaming log, the core averaged 56 C and peaked at 60 C across 308 samples, with zero throttle events and 28 C left below its published maximum. The full log and method are in the &lt;a href="https://techfuelhq.com/gpu-reviews/rog-astral-rtx-5080-oc-review-2026/">ROG Astral RTX 5080 review&lt;/a> and its &lt;a href="https://techfuelhq.com/data/gpu/rog-astral-rtx-5080-oc-2026-06-09/">open telemetry dataset&lt;/a>.&lt;/p>
&lt;p>That is one card, one cooler and one case. Treat it as a worked example.&lt;/p>
&lt;p>Look at three things under the workload that matters:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Headroom:&lt;/strong> a positive T.Limit means the core remains below its maximum.&lt;/li>
&lt;li>&lt;strong>Clock behavior:&lt;/strong> a temperature at the limit with falling clocks means cooling is controlling performance.&lt;/li>
&lt;li>&lt;strong>Stability:&lt;/strong> crashes, shutdowns or a temperature that suddenly rose from the card&amp;rsquo;s own baseline need diagnosis even when a generic chart calls the number normal.&lt;/li>
&lt;/ol>
&lt;p>If the card reaches its limit during ordinary gaming, use the &lt;a href="https://techfuelhq.com/articles/gpu-overheating-2026/">GPU overheating guide&lt;/a> to separate airflow, dust and cooler-contact problems. That page owns the fault diagnosis; this one owns the limit.&lt;/p>
&lt;h2 id="if-tlimit-is-unavailable">If T.Limit is unavailable&lt;/h2>
&lt;p>Run the temperature query anyway. &lt;code>temperature.gpu&lt;/code> works on NVIDIA discrete GPUs covered by the manual even when the relative limit sensor does not.&lt;/p>
&lt;p>Do not guess. Find the exact model on the GPU maker&amp;rsquo;s specification page and look for &lt;strong>Maximum GPU Temperature&lt;/strong>, &lt;strong>Maximum Operating Temperature&lt;/strong> or a model-specific thermal limit. NVIDIA&amp;rsquo;s own RTX 50 table shows that adjacent models can differ.&lt;/p>
&lt;p>For an add-in card, check its board maker; for a laptop, check the laptop maker, because NVIDIA&amp;rsquo;s desktop specification pages describe reference or Founders Edition designs and explicitly say board-partner specifications may vary rather than defining every card sold under the same GPU name.&lt;/p>
&lt;p>If you only need the current number, &lt;a href="https://techfuelhq.com/articles/how-to-check-cpu-temp-2026/#gpu-temperature-task-manager-and-nvidia-smi">the GPU section in the temperature-check guide&lt;/a> covers Task Manager and the shorter nvidia-smi command.&lt;/p>
&lt;h2 id="core-hotspot-and-memory-are-different-readings">Core, hotspot and memory are different readings&lt;/h2>
&lt;p>Keep the readings separate. The equation on this page uses the GPU core temperature; it does not turn a hotspot or memory-junction reading into a core reading or give either reading the core&amp;rsquo;s limit.&lt;/p>
&lt;p>If the core stays below its maximum but hotspot or memory is much warmer, compare like with like. The &lt;a href="https://techfuelhq.com/articles/gpu-overheating-2026/">GPU overheating guide&lt;/a> explains the core-to-hotspot gap and what a widening gap changes about the diagnosis.&lt;/p>
&lt;h2 id="sources">Sources&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://docs.nvidia.com/deploy/nvidia-smi/index.html" rel="noopener">NVIDIA nvidia-smi documentation&lt;/a>, Temperature fields, accessed October 2, 2026.&lt;/li>
&lt;li>NVIDIA desktop specifications for the &lt;a href="https://www.nvidia.com/en-us/geforce/graphics-cards/50-series/rtx-5090/" rel="noopener">RTX 5090&lt;/a>, &lt;a href="https://www.nvidia.com/en-us/geforce/graphics-cards/50-series/rtx-5080/" rel="noopener">RTX 5080&lt;/a>, &lt;a href="https://www.nvidia.com/en-us/geforce/graphics-cards/50-series/rtx-5070-family/" rel="noopener">RTX 5070 family&lt;/a>, &lt;a href="https://www.nvidia.com/en-us/geforce/graphics-cards/50-series/rtx-5060-family/" rel="noopener">RTX 5060 family&lt;/a> and &lt;a href="https://www.nvidia.com/en-us/geforce/graphics-cards/50-series/rtx-5050/" rel="noopener">RTX 5050&lt;/a>, accessed October 2, 2026.&lt;/li>
&lt;/ul></description></item><item><title>Glance Dashboard Setup on Windows 11 Without Docker</title><link>https://techfuelhq.com/tutorials/glance-dashboard-setup-2026/</link><pubDate>Sat, 03 Oct 2026 11:47:22 +0000</pubDate><author>LK Wood IV</author><guid>https://techfuelhq.com/tutorials/glance-dashboard-setup-2026/</guid><description>&lt;p>By &lt;a href="https://techfuelhq.com/author/lk-wood-iv/">LK Wood IV&lt;/a> · 2026-10-03 · ~8 min read · St. Louis County, MO&lt;/p>
&lt;p>Glance is a self-hosted start page: one screen for links, feeds, service checks, calendars, server statistics, and other widgets. You do &lt;strong>not&lt;/strong> need Docker to run it on Windows. The project publishes a portable Windows executable, and the official README&amp;rsquo;s Windows path is simply the executable plus a &lt;code>glance.yml&lt;/code> file in the same folder.&lt;/p>
&lt;p>The name is easy to mix up with &lt;strong>Glances&lt;/strong>, the Python system monitor. They are different projects. If you wanted the monitoring tool, use the &lt;a href="https://techfuelhq.com/homelab/beszel-vs-netdata-vs-glances-2026/">Beszel vs Netdata vs Glances comparison&lt;/a>. This guide covers &lt;code>glanceapp/glance&lt;/code>, the dashboard.&lt;/p>
&lt;p>I tested Glance v0.8.6 natively on Windows 11 Home build 26200. I verified the downloaded archive against the SHA-256 published by GitHub before running it, bound it only to loopback, exercised good and bad config reloads, and sampled the process after ten minutes. The setup below is a reduced version of that tested configuration.&lt;/p>
&lt;p>No installer was involved.&lt;/p>
&lt;h2 id="what-the-native-windows-run-measured">What the native Windows run measured&lt;/h2>
&lt;p>These numbers describe one capture on one PC. They are useful for sizing this small dashboard, but they are not a cross-machine benchmark.&lt;/p>
&lt;p>Treat them as a reference point.&lt;/p>
&lt;p>The browser run used an isolated Playwright Chromium context that allowed only &lt;code>127.0.0.1&lt;/code> and &lt;code>localhost&lt;/code>, was configured to abort every other destination before request dispatch, and recorded zero external requests, failed requests, console errors, or page errors while the complete dashboard fit a 1440-pixel viewport without horizontal overflow.&lt;/p>
&lt;div class="table-wrap">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th scope="col">Check&lt;/th>
&lt;th scope="col">Glance v0.8.6 result&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td data-label="Check">Official archive&lt;/td>
&lt;td data-label="Glance v0.8.6 result">&lt;code>glance-windows-amd64.zip&lt;/code>, 6,518,780 bytes&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Check">SHA-256&lt;/td>
&lt;td data-label="Glance v0.8.6 result">&lt;code>e92ca602a1b807f00310b1b70c8271fe779001a5648bb4a13e0f50e81355076c&lt;/code>, matched GitHub&amp;rsquo;s release API&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Check">Process start to first HTTP 200&lt;/td>
&lt;td data-label="Glance v0.8.6 result">565.4 ms&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Check">Working set at 35.8 seconds&lt;/td>
&lt;td data-label="Glance v0.8.6 result">19.07 MiB&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Check">Private memory at 35.8 seconds&lt;/td>
&lt;td data-label="Glance v0.8.6 result">53.24 MiB&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Check">Working set at 603.2 seconds&lt;/td>
&lt;td data-label="Glance v0.8.6 result">25.64 MiB&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Check">Private memory at 603.2 seconds&lt;/td>
&lt;td data-label="Glance v0.8.6 result">58.52 MiB&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Check">CPU time at 603.2 seconds&lt;/td>
&lt;td data-label="Glance v0.8.6 result">2.234 seconds&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Check">Browser check&lt;/td>
&lt;td data-label="Glance v0.8.6 result">HTTP 200, no console or page errors, no external requests&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;p>The dashboard rendered CPU, RAM, and disk use from the Windows host. It did not render a CPU temperature. The Docker widget failed because the native machine had no Docker socket. Both outcomes are covered below rather than hidden behind a perfect-looking screenshot.&lt;/p>
&lt;h2 id="1-download-the-official-windows-build">1. Download the official Windows build&lt;/h2>
&lt;p>Open the &lt;a href="https://github.com/glanceapp/glance/releases/tag/v0.8.6" rel="noopener">Glance v0.8.6 release&lt;/a> and download the Windows archive that matches your CPU. For a typical 64-bit Intel or AMD Windows PC, that is &lt;code>glance-windows-amd64.zip&lt;/code>.&lt;/p>
&lt;p>Start with the hash.&lt;/p>
&lt;p>Create a folder that you own, such as &lt;code>C:\Tools\Glance&lt;/code>, and extract the archive there. Keep the downloaded ZIP until you verify it.&lt;/p>
&lt;p>In PowerShell, move to the folder containing the ZIP and calculate its hash:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-powershell" data-lang="powershell">&lt;span style="display:flex;">&lt;span>Get-FileHash .\glance-windows-amd64.zip -Algorithm SHA256
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>For v0.8.6, my downloaded archive and GitHub&amp;rsquo;s API both returned:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>e92ca602a1b807f00310b1b70c8271fe779001a5648bb4a13e0f50e81355076c
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Match the whole value. When a newer release replaces v0.8.6, use the digest attached to that release rather than reusing this one.&lt;/p>
&lt;p>Do not shorten the comparison.&lt;/p>
&lt;p>After extraction, confirm the executable before configuring anything:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-powershell" data-lang="powershell">&lt;span style="display:flex;">&lt;span>Set-Location C:\Tools\Glance
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>.\glance.exe --version
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The tested binary printed &lt;code>v0.8.6&lt;/code>.&lt;/p>
&lt;h2 id="2-create-a-local-only-glanceyml">2. Create a local-only glance.yml&lt;/h2>
&lt;p>Create &lt;code>glance.yml&lt;/code> beside &lt;code>glance.exe&lt;/code> and paste this configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">server&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">host&lt;/span>: &lt;span style="color:#ae81ff">127.0.0.1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">port&lt;/span>: &lt;span style="color:#ae81ff">8080&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">branding&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">app-name&lt;/span>: &lt;span style="color:#ae81ff">Windows Glance&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">pages&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">Home&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">width&lt;/span>: &lt;span style="color:#ae81ff">wide&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">columns&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">size&lt;/span>: &lt;span style="color:#ae81ff">small&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">widgets&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">type&lt;/span>: &lt;span style="color:#ae81ff">clock&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">hour-format&lt;/span>: &lt;span style="color:#ae81ff">12h&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">type&lt;/span>: &lt;span style="color:#ae81ff">calendar&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">first-day-of-week&lt;/span>: &lt;span style="color:#ae81ff">monday&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">size&lt;/span>: &lt;span style="color:#ae81ff">full&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">widgets&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">type&lt;/span>: &lt;span style="color:#ae81ff">monitor&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">title&lt;/span>: &lt;span style="color:#ae81ff">Local services&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">cache&lt;/span>: &lt;span style="color:#ae81ff">1m&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">sites&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">title&lt;/span>: &lt;span style="color:#ae81ff">Glance&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">url&lt;/span>: &lt;span style="color:#ae81ff">http://127.0.0.1:8080/&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">type&lt;/span>: &lt;span style="color:#ae81ff">server-stats&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">servers&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">type&lt;/span>: &lt;span style="color:#ae81ff">local&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">Windows PC&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This is intentionally smaller than the project&amp;rsquo;s example dashboard. It gives you a clock, calendar, loopback health check, and Windows server statistics without credentials, outside feeds, or Docker.&lt;/p>
&lt;p>That is deliberate.&lt;/p>
&lt;p>The &lt;code>host: 127.0.0.1&lt;/code> line is the safety boundary. Glance&amp;rsquo;s &lt;a href="https://github.com/glanceapp/glance/blob/v0.8.6/docs/configuration.md#server" rel="noopener">server configuration&lt;/a> says the host controls which address the server listens on and that its default is all interfaces. Loopback keeps this first run on your PC. Do not remove that line just to make another device connect; exposing a dashboard to the LAN is a separate access and firewall decision.&lt;/p>
&lt;p>If you later decide that phones, tablets, or another workstation should reach this page, choose the listening address and Windows Firewall scope together, test from the intended client, and confirm that the dashboard is still unreachable from networks that were never meant to see it.&lt;/p>
&lt;p>Validate the file before starting the server:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-powershell" data-lang="powershell">&lt;span style="display:flex;">&lt;span>.\glance.exe --config .\glance.yml config&lt;span style="color:#960050;background-color:#1e0010">:&lt;/span>validate
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>A valid file returns to the prompt without an error. To inspect the fully resolved config, use:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-powershell" data-lang="powershell">&lt;span style="display:flex;">&lt;span>.\glance.exe --config .\glance.yml config&lt;span style="color:#960050;background-color:#1e0010">:&lt;/span>print
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="3-start-glance-and-open-the-dashboard">3. Start Glance and open the dashboard&lt;/h2>
&lt;p>Run the executable from the same folder:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-powershell" data-lang="powershell">&lt;span style="display:flex;">&lt;span>.\glance.exe
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The console should report that the server is starting on &lt;code>127.0.0.1:8080&lt;/code>. Leave that window open, then visit:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>http://127.0.0.1:8080/
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Leave the console visible; Glance reports bad edits there.&lt;/p>
&lt;p>The &lt;a href="https://github.com/glanceapp/glance/blob/v0.8.6/README.md#windows" rel="noopener">official Windows instructions&lt;/a> use the same executable-and-config arrangement and point the browser at port 8080. This guide keeps that arrangement but supplies a smaller config and explicitly binds the server to loopback.&lt;/p>
&lt;p>If you prefer to keep the config elsewhere, pass its path every time you start Glance:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-powershell" data-lang="powershell">&lt;span style="display:flex;">&lt;span>.\glance.exe --config D:\Dashboard\glance.yml
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This guide stops at a portable manual launch. I did not install Glance as a Windows service, create a scheduled task, or add an autostart entry during the capture, so I am not presenting any of those as tested steps.&lt;/p>
&lt;h2 id="4-edit-the-dashboard-while-it-is-running">4. Edit the dashboard while it is running&lt;/h2>
&lt;p>Glance watches the configuration file. Save a valid change and refresh the browser if the visible page has not already updated.&lt;/p>
&lt;p>Save once, then watch the console.&lt;/p>
&lt;p>The official &lt;a href="https://github.com/glanceapp/glance/blob/v0.8.6/docs/configuration.md#auto-reload" rel="noopener">auto-reload documentation&lt;/a> says a valid save takes effect without restarting the process. It also says a bad live edit logs an error and leaves the old configuration running.&lt;/p>
&lt;p>That is what happened in the Windows capture:&lt;/p>
&lt;div class="table-wrap">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th scope="col">Save operation&lt;/th>
&lt;th scope="col" style="text-align: right">New page visible after&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td data-label="Save operation">In-place file write&lt;/td>
&lt;td style="text-align: right" data-label="New page visible after">606.6 ms&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Save operation">Atomic file replacement&lt;/td>
&lt;td style="text-align: right" data-label="New page visible after">638.8 ms&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Save operation">Invalid live config&lt;/td>
&lt;td style="text-align: right" data-label="New page visible after">Error logged after 632.5 ms; old page stayed HTTP 200&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Save operation">Valid config restored&lt;/td>
&lt;td style="text-align: right" data-label="New page visible after">Recovered after 657.9 ms&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;p>The capture exercised an in-place write and an atomic file replacement. I did not drive Notepad or VS Code during the test, so the evidence supports Glance&amp;rsquo;s file reload behavior, not an editor-specific promise.&lt;/p>
&lt;p>Reloading also clears Glance&amp;rsquo;s cached widget data. The official configuration reference warns that frequent reloads can cause APIs to rate-limit repeated requests. Finish a group of edits before saving when a page pulls several outside feeds.&lt;/p>
&lt;h2 id="5-add-service-checks-without-mistaking-them-for-alerts">5. Add service checks without mistaking them for alerts&lt;/h2>
&lt;p>The monitor widget sends a GET request and treats HTTP 200 as healthy. Add another entry under &lt;code>sites&lt;/code> when a local service is ready:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">title&lt;/span>: &lt;span style="color:#ae81ff">Jellyfin&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">url&lt;/span>: &lt;span style="color:#ae81ff">http://127.0.0.1:8096/&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Use an address reachable from the Glance process. A green result means that one request succeeded from this Windows PC. It does not prove that the service is reachable from outside your network, and Glance cannot report a whole-PC or whole-network outage while the machine running Glance is down.&lt;/p>
&lt;p>That is the same placement limit covered in the &lt;a href="https://techfuelhq.com/tutorials/uptime-kuma-docker-setup-2026/">Uptime Kuma setup guide&lt;/a>. Treat the Glance monitor as a convenient status panel. Use a separately placed monitor when you need alerts or an outside view.&lt;/p>
&lt;h2 id="6-understand-the-windows-widget-gaps">6. Understand the Windows widget gaps&lt;/h2>
&lt;h3 id="server-stats-has-no-temperature">Server stats has no temperature&lt;/h3>
&lt;p>The &lt;code>server-stats&lt;/code> widget rendered CPU, RAM, and disk percentages in the native test. Temperature was absent. Running the sensor command produced:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-powershell" data-lang="powershell">&lt;span style="display:flex;">&lt;span>.\glance.exe sensors&lt;span style="color:#960050;background-color:#1e0010">:&lt;/span>print
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>Failed to retrieve sensor information: Exception occurred. (Not supported )
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>That is expected on the tested host.&lt;/p>
&lt;p>Glance&amp;rsquo;s server-stats documentation says temperature is omitted when the widget cannot find a suitable sensor. The missing number did not stop the other Windows statistics from rendering.&lt;/p>
&lt;h3 id="docker-containers-shows-a-socket-error">Docker Containers shows a socket error&lt;/h3>
&lt;p>Do not add this widget to a no-Docker setup:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>- &lt;span style="color:#f92672">type&lt;/span>: &lt;span style="color:#ae81ff">docker-containers&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The &lt;a href="https://github.com/glanceapp/glance/blob/v0.8.6/docs/configuration.md#docker-containers" rel="noopener">Docker Containers reference&lt;/a> says the widget requires access to &lt;code>docker.sock&lt;/code> and defaults to &lt;code>/var/run/docker.sock&lt;/code>. On the native Windows machine, it tried that Unix path and returned a socket error. Removing the widget is the correct fix when you do not run Docker.&lt;/p>
&lt;p>Remove it.&lt;/p>
&lt;p>If your goal is managing Compose stacks rather than displaying a home page, Glance is the wrong layer. &lt;a href="https://techfuelhq.com/tutorials/dockge-docker-compose-manager-2026/">Dockge manages Compose files&lt;/a>; Glance links to services and summarizes them.&lt;/p>
&lt;h2 id="fix-three-captured-startup-failures">Fix three captured startup failures&lt;/h2>
&lt;h3 id="glance-says-glanceyml-is-missing">Glance says glance.yml is missing&lt;/h3>
&lt;p>Running v0.8.6 from an empty folder returned exit code 1 and this exact message:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>parsing config: reading glance.yml: open glance.yml: The system cannot find the file specified.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Put &lt;code>glance.yml&lt;/code> beside the executable or pass the full path with &lt;code>--config&lt;/code>.&lt;/p>
&lt;p>Check the folder first.&lt;/p>
&lt;h3 id="glance-logs-a-config-error-but-the-exit-code-is-zero">Glance logs a config error but the exit code is zero&lt;/h3>
&lt;p>In this Windows capture, a file containing only &lt;code>pages: []&lt;/code> logged:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>Config has errors: no pages configured
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>That specific invalid run returned exit code 0. Do not use the process exit code alone as proof that a config is valid. Read the console and run &lt;code>config:validate&lt;/code> before starting the dashboard.&lt;/p>
&lt;p>Read the error, not only the code.&lt;/p>
&lt;h3 id="the-browser-cannot-connect">The browser cannot connect&lt;/h3>
&lt;p>First check that the Glance console is still open and that its start line names the same host and port you entered in the browser. Then inspect the listener:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-powershell" data-lang="powershell">&lt;span style="display:flex;">&lt;span>Get-NetTCPConnection -LocalPort &lt;span style="color:#ae81ff">8080&lt;/span> -State Listen
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>With the config above, the local address should be &lt;code>127.0.0.1&lt;/code>. If another process already owns 8080, select another unused port in both &lt;code>server.port&lt;/code> and the Glance self-check URL.&lt;/p>
&lt;h2 id="the-setup-i-would-keep">The setup I would keep&lt;/h2>
&lt;p>Keep the native dashboard small at first: clock, calendar, local server stats, and a handful of service links. Leave it on loopback until you have a deliberate remote-access design. Remove widgets whose dependencies do not exist on the Windows host rather than accepting a permanent red error card.&lt;/p>
&lt;p>Glance v0.8.6 was quick to start and stayed modest in this capture, but the more useful result was failure behavior: a bad live edit preserved the last valid page, missing temperature did not break CPU/RAM/disk, and the Docker widget failed loudly instead of pretending the socket existed. Those are the boundaries that make the dashboard predictable.&lt;/p>
&lt;h2 id="sources">Sources&lt;/h2>
&lt;ul>
&lt;li>Glance: &lt;a href="https://github.com/glanceapp/glance/releases/tag/v0.8.6" rel="noopener">v0.8.6 release and Windows archive digests&lt;/a>&lt;/li>
&lt;li>Glance: &lt;a href="https://github.com/glanceapp/glance/blob/v0.8.6/README.md" rel="noopener">official README and Windows binary setup&lt;/a>&lt;/li>
&lt;li>Glance: &lt;a href="https://github.com/glanceapp/glance/blob/v0.8.6/docs/configuration.md" rel="noopener">configuration, auto reload, server, monitor, Docker, and server-stats reference&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Three ways to keep a hardware plan moving</title><link>https://techfuelhq.com/newsletter/2026-10-03-keep-a-hardware-plan-moving/</link><pubDate>Sat, 03 Oct 2026 05:00:00 -0500</pubDate><author>LK Wood IV</author><guid>https://techfuelhq.com/newsletter/2026-10-03-keep-a-hardware-plan-moving/</guid><description>&lt;p>This first public issue connects three decisions that are easy to lose between browser tabs: a PC parts list, a NAS capacity plan, and a GPU shortlist. It is published on the site as part of the public archive.&lt;/p>
&lt;h2 id="save-and-resume-a-pc-build">Save and resume a PC build&lt;/h2>
&lt;p>The &lt;a href="https://techfuelhq.com/tools/pc-builder/">PC Builder&lt;/a> now keeps up to eight named builds on the device you are using. A saved build restores the exact CPU, motherboard, RAM, GPU, storage, power supply, and case selections. The share URL carries the same selections when you need the plan on another device or want to send it to someone else.&lt;/p>
&lt;p>The saved list stays in browser storage. It is not an account. Save and restore action events omit the build name and parts list. Measurement of displayed retailer choices and clicks can identify selected products, as described in the &lt;a href="https://techfuelhq.com/privacy/">privacy policy&lt;/a>. The builder still shows compatibility warnings, its calculated power estimate, and separate Amazon and Newegg choices for selected parts.&lt;/p>
&lt;h2 id="carry-a-nas-plan-into-its-operating-cost">Carry a NAS plan into its operating cost&lt;/h2>
&lt;p>Start with the &lt;a href="https://techfuelhq.com/tools/nas-storage-calculator/">NAS and RAID Capacity Calculator&lt;/a>. After it produces a valid capacity result, &lt;strong>Continue to power cost&lt;/strong> carries the drive count, drive capacity, unit, and RAID level into the &lt;a href="https://techfuelhq.com/tools/power-cost-calculator/">Power Cost Calculator&lt;/a>.&lt;/p>
&lt;p>Capacity does not determine power draw, so the destination starts with a clearly labeled four-bay NAS estimate. Replace its idle watts, load watts, and load hours with measurements from your hardware. The power page keeps the NAS context in its share link and provides a return link to the exact capacity plan.&lt;/p>
&lt;h2 id="cut-the-gpu-list-to-the-cards-that-fit">Cut the GPU list to the cards that fit&lt;/h2>
&lt;p>The &lt;a href="https://techfuelhq.com/articles/gpu-hierarchy-2026/">2026 GPU hierarchy&lt;/a> ranks 43 desktop cards on its stated 1440p raster basis. Its model search, tier filter, and VRAM filter narrow the existing table without changing the benchmark rows or tier cutoffs.&lt;/p>
&lt;p>Use the hierarchy to choose a performance band, then open the &lt;a href="https://techfuelhq.com/tools/gpu-comparison/">GPU comparison tool&lt;/a> when you need a smaller side-by-side decision. The hierarchy keeps its source basis and dates beside the ranking, so the filters do not turn a dated benchmark set into a live price or availability claim.&lt;/p>
&lt;h2 id="keep-the-route">Keep the route&lt;/h2>
&lt;p>Bookmark this issue if these three paths belong to the same project. For future tests, tool changes, build guides, and meaningful corrections, use the newsletter form below or the site-wide &lt;a href="https://techfuelhq.com/index.xml">RSS feed&lt;/a>.&lt;/p></description></item><item><title>AM5 ECC Compatibility Checker</title><link>https://techfuelhq.com/tools/am5-ecc-compatibility-checker/</link><pubDate>Sat, 03 Oct 2026 00:00:00 -0500</pubDate><author>LK Wood IV</author><guid>https://techfuelhq.com/tools/am5-ecc-compatibility-checker/</guid><description>&lt;h2 id="what-this-checker-decides">What this checker decides&lt;/h2>
&lt;p>“ECC support” is not one yes-or-no specification. A useful purchase decision needs the exact CPU, the exact motherboard and any named revision, a board-vendor statement about ECC UDIMMs, firmware evidence, and an exact memory-module check. Corrected-error reporting in the deployed operating system is a further verification step.&lt;/p>
&lt;p>This first catalog covers &lt;strong>ASUS PRIME X670E-PRO WIFI&lt;/strong>, &lt;strong>ASRock Rack B650D4U&lt;/strong>, and &lt;strong>GIGABYTE MC13-LE0 revisions 1.x/3.x/4.x&lt;/strong>, paired with either the &lt;strong>AMD Ryzen 9 9950X&lt;/strong> or &lt;strong>AMD Ryzen 7 8700G&lt;/strong>. It gives a concrete outcome only at the level the sources support: an exact documented path, incomplete evidence that names the missing check, or a configuration the board vendor does not document.&lt;/p>
&lt;h2 id="ecc-udimm-is-different-from-ddr5-on-die-ecc">ECC UDIMM is different from DDR5 on-die ECC&lt;/h2>
&lt;p>DDR5 includes correction inside each DRAM component. That on-die function does not establish the end-to-end ECC UDIMM path between the memory module, CPU memory controller, motherboard, and firmware. The board and CPU selection above is about ECC UDIMMs, not the baseline on-die feature present in DDR5 generally.&lt;/p>
&lt;h2 id="how-to-use-the-result">How to use the result&lt;/h2>
&lt;p>An &lt;strong>exact documented path&lt;/strong> means the board vendor supplied an exact CPU row with ECC DIMM support. &lt;strong>Incomplete evidence&lt;/strong> means board-level ECC and CPU-family evidence align but an exact board/CPU row, firmware version, or module confirmation is missing; the result names the vendor check to make before buying. &lt;strong>Not documented&lt;/strong> is a stop sign for assuming support; it does not claim the hardware is physically incapable.&lt;/p>
&lt;p>Even a documented result is not an injected-error test. Match the exact memory part number to the current vendor QVL, confirm firmware for the exact CPU and board revision, check that ECC is enabled, and verify how the deployed operating system reports corrected and uncorrected errors.&lt;/p></description></item><item><title>Docker Exit Code 137: Prove OOMKilled Before Raising Memory</title><link>https://techfuelhq.com/tutorials/docker-exit-code-137-oomkilled-2026/</link><pubDate>Sat, 03 Oct 2026 00:00:00 -0500</pubDate><author>LK Wood IV</author><guid>https://techfuelhq.com/tutorials/docker-exit-code-137-oomkilled-2026/</guid><description>&lt;p>By &lt;a href="https://techfuelhq.com/author/lk-wood-iv/">LK Wood IV&lt;/a> · 2026-10-03 · ~8 min read · St. Louis County, MO&lt;/p>
&lt;p>&lt;strong>Docker exit code 137 is a clue, not an OOM verdict.&lt;/strong> Under &lt;a href="https://www.gnu.org/software/bash/manual/html_node/Exit-Status.html" rel="noopener">GNU Bash&amp;rsquo;s exit-status rules&lt;/a>, a command terminated by fatal signal number &lt;em>N&lt;/em> is reported as 128 + &lt;em>N&lt;/em>. Linux &lt;a href="https://man7.org/linux/man-pages/man7/signal.7.html" rel="noopener">lists &lt;code>SIGKILL&lt;/code> as signal 9&lt;/a>, which is why a shell-observed &lt;code>SIGKILL&lt;/code> commonly appears as 137. That convention is not proof of the sender or cause: &lt;a href="https://docs.docker.com/engine/containers/run/#exit-status" rel="noopener">Docker returns the container command&amp;rsquo;s exit status&lt;/a>, so a command can also return &lt;code>137&lt;/code> itself. Docker documents at least two non-memory ways to send &lt;code>SIGKILL&lt;/code>: &lt;a href="https://docs.docker.com/reference/cli/docker/container/kill/" rel="noopener">&lt;code>docker kill&lt;/code> uses it by default&lt;/a>, and &lt;a href="https://docs.docker.com/reference/cli/docker/container/stop/" rel="noopener">&lt;code>docker stop&lt;/code> escalates to it&lt;/a> when the process does not exit before its timeout.&lt;/p>
&lt;p>Do not restart, recreate, or raise the memory limit yet. Those changes can erase the state and timing that separate a container limit from host pressure, a stop-timeout escalation, an operator kill, or an application-selected exit code.&lt;/p>
&lt;p>The job is to bind every observation to the &lt;strong>same container ID and time window&lt;/strong>. Capture first. Change one thing only after the evidence names a cause.&lt;/p>
&lt;p>Use the &lt;a href="https://techfuelhq.com/tools/diagnostic-workbench/">Hardware Diagnostic Workbench&lt;/a> to retain that container ID, bounded time window, configured limits, event sequence, kernel or daemon evidence, cgroup counters, and each later test. The record does not interpret exit 137 as an OOM verdict.&lt;/p>
&lt;h2 id="the-four-records-to-save-first">The four records to save first&lt;/h2>
&lt;p>Set the container name or ID, plus a bounded window that covers a few minutes before and after the failure. Use timestamps with an explicit timezone offset or &lt;code>Z&lt;/code>; Docker says an unqualified timestamp uses the client machine&amp;rsquo;s local timezone.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>CONTAINER&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#e6db74">&amp;#39;replace-with-name-or-id&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>SINCE&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#e6db74">&amp;#39;2026-10-03T18:20:00-05:00&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>UNTIL&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#e6db74">&amp;#39;2026-10-03T18:30:00-05:00&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>First, save the stopped container&amp;rsquo;s identity, state and configured memory controls. &lt;code>docker inspect&lt;/code> is read-only and works on stopped containers.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>docker inspect --type&lt;span style="color:#f92672">=&lt;/span>container &lt;span style="color:#ae81ff">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">&lt;/span> --format &lt;span style="color:#e6db74">&amp;#39;id={{.Id}} name={{.Name}} image={{.Config.Image}} exit={{.State.ExitCode}} oom_killed={{.State.OOMKilled}} started={{.State.StartedAt}} finished={{.State.FinishedAt}} error={{json .State.Error}} memory={{.HostConfig.Memory}} reservation={{.HostConfig.MemoryReservation}} memory_swap={{.HostConfig.MemorySwap}} oom_kill_disable={{json .HostConfig.OomKillDisable}} restart_count={{.RestartCount}}&amp;#39;&lt;/span> &lt;span style="color:#ae81ff">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">&lt;/span> &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$CONTAINER&lt;span style="color:#e6db74">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Second, capture Docker&amp;rsquo;s event history for that exact container and interval. &lt;a href="https://docs.docker.com/reference/cli/docker/system/events/" rel="noopener">Docker exposes&lt;/a> separate &lt;code>oom&lt;/code>, &lt;code>kill&lt;/code>, &lt;code>die&lt;/code>, &lt;code>stop&lt;/code> and &lt;code>restart&lt;/code> events. Its retained event history is limited to the last 256 events, which is another reason to collect it before doing more work on a busy host.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>docker events &lt;span style="color:#ae81ff">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">&lt;/span> --since &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$SINCE&lt;span style="color:#e6db74">&amp;#34;&lt;/span> &lt;span style="color:#ae81ff">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">&lt;/span> --until &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$UNTIL&lt;span style="color:#e6db74">&amp;#34;&lt;/span> &lt;span style="color:#ae81ff">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">&lt;/span> --filter type&lt;span style="color:#f92672">=&lt;/span>container &lt;span style="color:#ae81ff">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">&lt;/span> --filter container&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;&lt;/span>$CONTAINER&lt;span style="color:#e6db74">&amp;#34;&lt;/span> &lt;span style="color:#ae81ff">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">&lt;/span> --format &lt;span style="color:#e6db74">&amp;#39;{{json .}}&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Third, save application output from the same interval. This can show an orderly shutdown request, an application-level allocation failure, or the last completed operation. Absence of a useful final line is not proof of a kernel kill.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>docker logs --timestamps --since &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$SINCE&lt;span style="color:#e6db74">&amp;#34;&lt;/span> --until &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$UNTIL&lt;span style="color:#e6db74">&amp;#34;&lt;/span> &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$CONTAINER&lt;span style="color:#e6db74">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Fourth, check the host kernel and Docker daemon around those timestamps. &lt;code>journalctl&lt;/code> accepts &lt;a href="https://www.freedesktop.org/software/systemd/man/255/journalctl.html#-S%20TIME" rel="noopener">space-separated date and time values&lt;/a> for &lt;code>--since&lt;/code> and &lt;code>--until&lt;/code>; the separate UTC values below describe the same interval as the Docker variables above and work on systemd releases that do not accept that RFC 3339 form. These read-only queries explicitly select the current boot:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>JOURNAL_SINCE&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#e6db74">&amp;#39;2026-10-03 23:20:00 UTC&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>JOURNAL_UNTIL&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#e6db74">&amp;#39;2026-10-03 23:30:00 UTC&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>journalctl -k --boot&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">0&lt;/span> --since &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$JOURNAL_SINCE&lt;span style="color:#e6db74">&amp;#34;&lt;/span> --until &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$JOURNAL_UNTIL&lt;span style="color:#e6db74">&amp;#34;&lt;/span> --no-pager &lt;span style="color:#ae81ff">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">&lt;/span> | grep -Ei &lt;span style="color:#e6db74">&amp;#39;out of memory|oom-kill|killed process|memory cgroup&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>journalctl -u docker.service --boot&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">0&lt;/span> --since &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$JOURNAL_SINCE&lt;span style="color:#e6db74">&amp;#34;&lt;/span> --until &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$JOURNAL_UNTIL&lt;span style="color:#e6db74">&amp;#34;&lt;/span> --no-pager
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>If the incident occurred before the current boot, run &lt;a href="https://www.freedesktop.org/software/systemd/man/255/journalctl.html#--list-boots" rel="noopener">&lt;code>journalctl --list-boots&lt;/code>&lt;/a>, choose the boot ID whose recorded interval contains the incident, and replace &lt;code>--boot=0&lt;/code> in both commands with &lt;code>--boot=THE_32_CHARACTER_BOOT_ID&lt;/code>. If the host does not use systemd, use its actual kernel and daemon log mechanism. Do not substitute an unbounded &lt;code>dmesg | tail&lt;/code> and then assume the last message belongs to this incident.&lt;/p>
&lt;h2 id="read-the-evidence-as-a-set">Read the evidence as a set&lt;/h2>
&lt;div class="table-wrap">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th scope="col">What you captured&lt;/th>
&lt;th scope="col">What it establishes&lt;/th>
&lt;th scope="col">What it does not establish&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td data-label="What you captured">Exit code &lt;code>137&lt;/code> only&lt;/td>
&lt;td data-label="What it establishes">The container command reported 137&lt;/td>
&lt;td data-label="What it does not establish">Who or what chose that value&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="What you captured">&lt;code>State.OOMKilled=true&lt;/code>&lt;/td>
&lt;td data-label="What it establishes">Docker recorded an OOM-killed state&lt;/td>
&lt;td data-label="What it does not establish">Which memory boundary caused it, or how much memory is safe&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="What you captured">Docker &lt;code>oom&lt;/code> event in the same window&lt;/td>
&lt;td data-label="What it establishes">Docker emitted an OOM event for that container&lt;/td>
&lt;td data-label="What it does not establish">Whether the configured limit is simply too small, the host is overcommitted, or the workload is leaking&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="What you captured">&lt;code>kill&lt;/code> followed by &lt;code>die&lt;/code>, with the signal and matching time&lt;/td>
&lt;td data-label="What it establishes">A signal was sent in Docker&amp;rsquo;s event sequence&lt;/td>
&lt;td data-label="What it does not establish">Who initiated it unless the surrounding daemon/orchestrator record says so&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="What you captured">Kernel OOM record naming the victim/cgroup&lt;/td>
&lt;td data-label="What it establishes">The kernel selected a process under memory pressure&lt;/td>
&lt;td data-label="What it does not establish">That blindly raising this container&amp;rsquo;s limit protects the host&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="What you captured">The exact cgroup&amp;rsquo;s local &lt;code>oom&lt;/code> counter increased&lt;/td>
&lt;td data-label="What it establishes">An allocation in that cgroup was about to fail because of that cgroup&amp;rsquo;s memory limit&lt;/td>
&lt;td data-label="What it does not establish">Which process was selected, or how much memory is safe&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="What you captured">cgroup &lt;code>oom_kill&lt;/code> counter increase&lt;/td>
&lt;td data-label="What it establishes">An OOM killer killed a process in that cgroup&lt;/td>
&lt;td data-label="What it does not establish">Which cgroup supplied the limiting boundary, or that the killed process was the container&amp;rsquo;s PID 1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="What you captured">&lt;code>State.OOMKilled=false&lt;/code> and no memory evidence&lt;/td>
&lt;td data-label="What it establishes">No OOM cause has been demonstrated&lt;/td>
&lt;td data-label="What it does not establish">That memory pressure is impossible&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;p>That last row prevents a reasoning error. A false flag is not permission to declare “not memory,” just as a &lt;code>137&lt;/code> is not permission to declare “memory.” Keep the cause unknown until another record closes the gap.&lt;/p>
&lt;h2 id="separate-a-container-boundary-from-host-pressure">Separate a container boundary from host pressure&lt;/h2>
&lt;p>The &lt;code>memory&lt;/code> value in the inspect record is the hard memory limit in bytes. A zero means Docker did not configure a per-container hard limit. It does not mean the host, VM, systemd unit, parent cgroup, or orchestrator is unlimited.&lt;/p>
&lt;p>&lt;a href="https://docs.docker.com/engine/containers/resource_constraints/" rel="noopener">Docker&amp;rsquo;s resource documentation&lt;/a> distinguishes a hard &lt;code>--memory&lt;/code> limit from a softer &lt;code>--memory-reservation&lt;/code>. It also warns that without constraints a container can use as much memory as the host kernel scheduler allows, and that host OOM can select processes when the machine cannot perform essential work.&lt;/p>
&lt;p>Use this split:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>A nonzero container limit and matching Docker &lt;code>oom&lt;/code> event do not identify the limiting boundary by themselves.&lt;/strong> A kernel OOM record naming that cgroup as the limiting boundary, or a same-window increase in &lt;code>oom&lt;/code> from that exact cgroup&amp;rsquo;s &lt;code>memory.events.local&lt;/code>, corroborates the container boundary. An &lt;code>oom_kill&lt;/code> increase alone only says a process in the cgroup was killed by an OOM killer. Once the boundary is identified, measure the workload and decide whether the limit, the application&amp;rsquo;s own memory configuration, or a leak is wrong.&lt;/li>
&lt;li>&lt;strong>No container hard limit plus a host kernel OOM record&lt;/strong> points to host or parent-boundary pressure. Giving one container more memory is not a fix; it has no private boundary to raise.&lt;/li>
&lt;li>&lt;strong>A &lt;code>kill&lt;/code> or stop-timeout sequence with no correlated memory evidence&lt;/strong> points away from an OOM diagnosis. Docker documents that &lt;code>docker stop&lt;/code> sends the configured stop signal first and forcibly sends &lt;code>SIGKILL&lt;/code> after the timeout.&lt;/li>
&lt;li>&lt;strong>No correlated record&lt;/strong> stays unresolved. Preserve the worksheet, increase observability, and wait for a second incident rather than editing limits by guesswork.&lt;/li>
&lt;/ol>
&lt;h2 id="read-cgroup-counters-only-where-the-host-exposes-them">Read cgroup counters only where the host exposes them&lt;/h2>
&lt;p>Do not paste a path from someone else&amp;rsquo;s machine. Docker&amp;rsquo;s cgroup driver, systemd integration, parent cgroup and cgroup version determine the location. Locate the container&amp;rsquo;s cgroup through that host&amp;rsquo;s runtime configuration, replace the placeholder assignment below with the path you verified, then read the files that actually exist there. These commands only read those files.&lt;/p>
&lt;p>For &lt;strong>cgroup v2&lt;/strong>, read the following &lt;a href="https://docs.kernel.org/admin-guide/cgroup-v2.html#memory-interface-files" rel="noopener">Linux kernel memory-interface files&lt;/a> with the read-only commands below:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>CGROUP_PATH&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#e6db74">&amp;#39;/replace/with/verified/container-cgroup-path&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cat &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$CGROUP_PATH&lt;span style="color:#e6db74">/memory.max&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cat &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$CGROUP_PATH&lt;span style="color:#e6db74">/memory.high&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cat &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$CGROUP_PATH&lt;span style="color:#e6db74">/memory.events&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cat &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$CGROUP_PATH&lt;span style="color:#e6db74">/memory.events.local&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;code>memory.max&lt;/code> is the hard limit. &lt;code>memory.high&lt;/code> applies reclaim pressure but does not itself invoke the OOM killer. In &lt;code>memory.events&lt;/code>, &lt;code>oom&lt;/code> counts occasions when allocation was about to fail at the limit, while &lt;code>oom_kill&lt;/code> counts processes in the cgroup killed by an OOM killer. The regular file is hierarchical; &lt;code>memory.events.local&lt;/code> is local to that cgroup.&lt;/p>
&lt;p>For a host still using &lt;strong>cgroup v1&lt;/strong>, the &lt;a href="https://docs.kernel.org/admin-guide/cgroup-v1/memory.html" rel="noopener">kernel documents&lt;/a> the older files below. The same documentation marks the v1 soft-limit and OOM-control interfaces deprecated, so read them as legacy evidence rather than advice for new configuration.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>CGROUP_PATH&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#e6db74">&amp;#39;/replace/with/verified/container-cgroup-path&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cat &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$CGROUP_PATH&lt;span style="color:#e6db74">/memory.limit_in_bytes&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cat &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$CGROUP_PATH&lt;span style="color:#e6db74">/memory.usage_in_bytes&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cat &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$CGROUP_PATH&lt;span style="color:#e6db74">/memory.failcnt&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cat &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$CGROUP_PATH&lt;span style="color:#e6db74">/memory.oom_control&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>If the container was removed or its cgroup disappeared, say that the counters were unavailable. Do not replace missing evidence with a guessed path or a counter from a new container.&lt;/p>
&lt;h2 id="copy-this-incident-worksheet-before-changing-anything">Copy this incident worksheet before changing anything&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>Docker exit-137 incident
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Observed at (timestamp + timezone):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host name / VM:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Docker Engine version:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Container name:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Full container ID:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Image + immutable digest if available:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Compose project / service or launcher:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>State
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ExitCode:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> OOMKilled:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> StartedAt:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> FinishedAt:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> RestartCount:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> State.Error:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Configured boundary (bytes as reported by inspect)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Memory:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> MemoryReservation:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> MemorySwap:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> OomKillDisable:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Parent/orchestrator limit, if separately proven:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Same-window evidence
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Docker oom event: yes / no / unavailable
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Docker kill event + signal:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Docker die event + exitCode:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Stop/restart event immediately before death:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Kernel OOM record naming process/cgroup: yes / no / unavailable
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> cgroup version and exact path:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> memory.events(.local) before change, if retained:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Application&amp;#39;s last timestamped log line:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Classification
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [ ] container/parent OOM is correlated
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [ ] host OOM is correlated
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [ ] stop timeout or external signal is correlated
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [ ] application returned 137 without proven SIGKILL
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [ ] unknown — preserve evidence and observe again
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>One change to test next:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Result and timestamp:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The empty boxes matter. “Unavailable” is evidence quality; it is not a “no.”&lt;/p>
&lt;h2 id="choose-the-next-action-from-the-proven-branch">Choose the next action from the proven branch&lt;/h2>
&lt;p>&lt;strong>Container or parent memory boundary proven:&lt;/strong> compare the configured boundary with the application&amp;rsquo;s measured peak and memory model. A Java heap, Node heap, database cache, shared memory, native allocation and filesystem cache do not all appear under one application setting. Fix the thing consuming memory or set a tested boundary with headroom. The &lt;a href="https://techfuelhq.com/tools/docker-ram-planner/">Docker RAM planner&lt;/a> estimates future host capacity for a known stack; it does not diagnose this incident and should not replace the capture above.&lt;/p>
&lt;p>&lt;strong>Host pressure proven:&lt;/strong> inventory every workload and host reserve before changing one container. Docker warns that the Linux kernel can kill processes, including Docker or other important applications, when the host cannot satisfy essential memory work. Moving the failure from one container to the whole host is regression, not remediation.&lt;/p>
&lt;p>&lt;strong>Stop-timeout escalation proven:&lt;/strong> find why PID 1 did not handle the configured stop signal or finish within the timeout. &lt;a href="https://docs.docker.com/reference/cli/docker/container/kill/" rel="noopener">Docker notes&lt;/a> that shell-form &lt;code>ENTRYPOINT&lt;/code> and &lt;code>CMD&lt;/code> run below &lt;code>/bin/sh -c&lt;/code>, which does not pass signals to the executable. Fix signal handling or set a justified grace period; do not change memory because the final number happened to be 137.&lt;/p>
&lt;p>&lt;strong>Manual/orchestrator kill proven:&lt;/strong> trace the actor from the daemon, service, scheduler or automation log. The container behaved as instructed.&lt;/p>
&lt;p>&lt;strong>Cause still unknown:&lt;/strong> keep the worksheet and improve capture for the next occurrence. A restart may restore service, but it does not turn an unknown cause into an OOM diagnosis.&lt;/p>
&lt;h2 id="what-i-verified-and-what-i-did-not">What I verified and what I did not&lt;/h2>
&lt;p>I verified the command syntax and field semantics against Docker&amp;rsquo;s current documentation and the cgroup file meanings against current Linux kernel documentation on 2026-10-03. I did not run an OOM experiment on a Docker host for this article, so none of the worksheet values or branches is presented as a TechFuelHQ measurement.&lt;/p>
&lt;p>The article also does not assume Kubernetes. Pod eviction, Kubernetes &lt;code>OOMKilled&lt;/code> status, pod limits and node-pressure decisions add another control plane and need their own evidence path.&lt;/p>
&lt;h2 id="sources">Sources&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://docs.docker.com/engine/containers/run/#exit-status" rel="noopener">Docker Engine: container exit status&lt;/a> — Docker returns the command&amp;rsquo;s exit status when the command runs and exits.&lt;/li>
&lt;li>&lt;a href="https://www.gnu.org/software/bash/manual/html_node/Exit-Status.html" rel="noopener">GNU Bash: Exit Status&lt;/a> — Bash reports a command terminated by fatal signal &lt;em>N&lt;/em> as 128 + &lt;em>N&lt;/em>; read 2026-10-03.&lt;/li>
&lt;li>&lt;a href="https://man7.org/linux/man-pages/man7/signal.7.html" rel="noopener">Linux &lt;code>signal(7)&lt;/code>&lt;/a> — standard signal behavior and the signal-number table identifying &lt;code>SIGKILL&lt;/code> as 9; read 2026-10-03.&lt;/li>
&lt;li>&lt;a href="https://docs.docker.com/reference/cli/docker/inspect/" rel="noopener">Docker inspect&lt;/a> — low-level object data, JSON output and Go-template field selection; read 2026-10-03.&lt;/li>
&lt;li>&lt;a href="https://docs.docker.com/reference/cli/docker/system/events/" rel="noopener">Docker system events&lt;/a> — event types, time filters, container filters, JSON Lines output and 256-event retention; read 2026-10-03.&lt;/li>
&lt;li>&lt;a href="https://docs.docker.com/reference/cli/docker/container/kill/" rel="noopener">Docker container kill&lt;/a> — default &lt;code>SIGKILL&lt;/code> behavior; read 2026-10-03.&lt;/li>
&lt;li>&lt;a href="https://docs.docker.com/reference/cli/docker/container/stop/" rel="noopener">Docker container stop&lt;/a> — initial stop signal and forced &lt;code>SIGKILL&lt;/code> after timeout; read 2026-10-03.&lt;/li>
&lt;li>&lt;a href="https://docs.docker.com/engine/containers/resource_constraints/" rel="noopener">Docker resource constraints&lt;/a> — no-limit default, hard and soft controls, host OOM risk, swap behavior and OOM-killer warning; read 2026-10-03.&lt;/li>
&lt;li>&lt;a href="https://docs.docker.com/reference/compose-file/services/" rel="noopener">Docker Compose service attributes&lt;/a> — current &lt;code>mem_limit&lt;/code>, &lt;code>mem_reservation&lt;/code>, &lt;code>memswap_limit&lt;/code> and OOM-related keys; read 2026-10-03.&lt;/li>
&lt;li>&lt;a href="https://www.freedesktop.org/software/systemd/man/255/journalctl.html" rel="noopener">systemd &lt;code>journalctl&lt;/code>&lt;/a> — accepted time forms, current/selected boot filtering and boot inventory; read 2026-10-03.&lt;/li>
&lt;li>&lt;a href="https://www.freedesktop.org/software/systemd/man/255/systemd.time.html" rel="noopener">systemd time syntax&lt;/a> — calendar and UTC time syntax referenced by &lt;code>journalctl&lt;/code>; read 2026-10-03.&lt;/li>
&lt;li>&lt;a href="https://docs.kernel.org/admin-guide/cgroup-v2.html" rel="noopener">Linux kernel cgroup v2 memory controller&lt;/a> — &lt;code>memory.max&lt;/code>, &lt;code>memory.high&lt;/code>, &lt;code>memory.events&lt;/code> and &lt;code>memory.events.local&lt;/code>; read 2026-10-03.&lt;/li>
&lt;li>&lt;a href="https://docs.kernel.org/admin-guide/cgroup-v1/memory.html" rel="noopener">Linux kernel cgroup v1 memory controller&lt;/a> — legacy limit, usage, failure and OOM-control files plus deprecation status; read 2026-10-03.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;p>&lt;em>If the incident is actually disk pressure rather than memory pressure, the &lt;a href="https://techfuelhq.com/tutorials/docker-cleanup-disk-space-2026/">Docker cleanup guide&lt;/a> separates disposable cache and images from volumes that can contain the only copy of data.&lt;/em>&lt;/p></description></item><item><title>Hardware Diagnostic Workbench</title><link>https://techfuelhq.com/tools/diagnostic-workbench/</link><pubDate>Sat, 03 Oct 2026 00:00:00 -0500</pubDate><author>LK Wood IV</author><guid>https://techfuelhq.com/tools/diagnostic-workbench/</guid><description>&lt;h2 id="capture-before-changing-the-machine">Capture before changing the machine&lt;/h2>
&lt;p>The most useful incident record starts with what the machine did, not what you think failed. Write the exact message, indicator, sound, or loss of function. Add the local date and time, workload, and what stayed operational. A monitor that displays &lt;strong>No Signal&lt;/strong>, a screen that goes black and returns, and a PC that loses power are three different observations even when they happen during the same game.&lt;/p>
&lt;p>Save volatile evidence before a restart when it is safe to do so. That can include an on-screen error, an event timestamp, a container state, a temperature with its unit, or the name and version of a driver. The workbench does not run commands, change settings, restart services, erase logs, or decide that a part is bad.&lt;/p>
&lt;h2 id="map-the-full-path">Map the full path&lt;/h2>
&lt;p>Record the path between the thing producing data and the place the symptom appears. For a display that might be GPU → GPU port → cable or adapter → monitor input → monitor. For a drive it can be SSD → M.2 slot or cable → controller → firmware → operating-system driver. For a container it includes the container limit, parent cgroup, host memory, and time window.&lt;/p>
&lt;p>Exact hardware and software identity keeps later tests comparable. Include model numbers, firmware, operating system, driver, application, and workload when they matter. A linked product from &lt;a href="https://techfuelhq.com/tools/hardware-projects/">Hardware Projects&lt;/a> stays attached when you edit the diagnostic record here.&lt;/p>
&lt;h2 id="change-one-variable-per-controlled-test">Change one variable per controlled test&lt;/h2>
&lt;p>For each test, write four things:&lt;/p>
&lt;ol>
&lt;li>The one variable changed.&lt;/li>
&lt;li>The conditions held constant.&lt;/li>
&lt;li>The duration or number of repetitions.&lt;/li>
&lt;li>The observed result, including a unit where one applies.&lt;/li>
&lt;/ol>
&lt;p>If you changed a cable, driver, power limit, and graphics setting together, record that as an uncontrolled test. It may restore service, but it cannot show which change mattered. Keep destructive actions, firmware changes, and storage writes outside an improvised experiment; use the exact device documentation and a current backup before a step can put data or recoverability at risk.&lt;/p>
&lt;h2 id="blank-worksheet-for-javascript-off-use">Blank worksheet for JavaScript-off use&lt;/h2>
&lt;p>Copy this block into a local text file when browser scripting is unavailable:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>Hardware incident title:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Record created (local date and time):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Last updated (local date and time):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Exact symptom:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Hardware and software:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Display, signal, storage, network, or container path:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Trigger, timing, frequency, and workload:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Recent change before the first event:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Observations and evidence:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Tests already run:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>- Variable changed:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>- Conditions held constant:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>- Duration or repetitions:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>- Observed result:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Outcome or next evidence checkpoint:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="read-each-export-as-a-different-privacy-boundary">Read each export as a different privacy boundary&lt;/h2>
&lt;p>&lt;strong>Save on this device&lt;/strong> keeps the Hardware Project in the current browser profile. The project URL contains a local ID, not the notes themselves, and it works only where that local record exists.&lt;/p>
&lt;p>&lt;strong>Download full JSON&lt;/strong> creates a complete portable record. It includes the title, linked product references, tool state, every diagnostic field, evidence records, and project dates. Treat that file as private if your notes contain serial numbers, hostnames, addresses, account names, file paths, or log excerpts.&lt;/p>
&lt;p>&lt;strong>Copy private summary&lt;/strong> produces readable plain text from the full diagnostic record. Review it before pasting because it can carry the same private details as the form.&lt;/p>
&lt;p>&lt;strong>Copy share URL without notes&lt;/strong> creates the limited Hardware Projects snapshot. The shared snapshot omits diagnostic text, evidence, free-form constraints, and the private use-case field. It can retain non-sensitive project structure such as the project type, title, linked product references, and supported tool state.&lt;/p>
&lt;p>No browser-local save is a backup. Export the JSON before clearing site data, moving browser profiles, reinstalling the browser, or doing repair work that may affect the operating-system drive.&lt;/p></description></item><item><title>Hardware Projects</title><link>https://techfuelhq.com/tools/hardware-projects/</link><pubDate>Sat, 03 Oct 2026 00:00:00 -0500</pubDate><author>LK Wood IV</author><guid>https://techfuelhq.com/tools/hardware-projects/</guid><description>&lt;h2 id="plan-without-losing-the-thread">Plan without losing the thread&lt;/h2>
&lt;p>A hardware decision often crosses several calculators. A gaming build may start in the &lt;a href="https://techfuelhq.com/tools/pc-builder/">PC Builder&lt;/a>, move through &lt;a href="https://techfuelhq.com/tools/gpu-comparison/">GPU comparison&lt;/a> and &lt;a href="https://techfuelhq.com/tools/psu-wattage-calculator/">PSU sizing&lt;/a>, then return days later. A NAS plan may pair &lt;a href="https://techfuelhq.com/tools/nas-storage-calculator/">capacity&lt;/a> with &lt;a href="https://techfuelhq.com/tools/power-cost-calculator/">power cost&lt;/a>. Hardware Projects keeps the goal, constraints, supported tool inputs, and dated references under one local project ID.&lt;/p>
&lt;p>The workspace does not merge those tools into a new compatibility engine. Each connected tool keeps its own evidence boundary and result language. A product appearing in the project means it was referenced by a tool or template; it does not mean every other saved part works with it.&lt;/p>
&lt;p>That boundary matters. I do not treat a saved product list as a compatibility verdict. Suppose an upgrade starts with a graphics-card shortlist, reaches a power estimate, and later needs a motherboard lane check after another drive enters the plan. The project keeps those supported inputs under one title, while each tool still explains what its result establishes, which source or assumption it used, and what the exact manuals and physical inspection must answer before buying or installing a part.&lt;/p>
&lt;h2 id="choose-the-right-way-to-move-a-project">Choose the right way to move a project&lt;/h2>
&lt;p>Use a &lt;strong>limited snapshot link&lt;/strong> when another person needs the calculator state and product references. The link excludes the use case, private constraints, diagnostic text, and evidence. Opening it creates an unsaved preview with a new ID, so it cannot silently replace a project already stored on that device.&lt;/p>
&lt;p>Use the &lt;strong>full JSON download&lt;/strong> for backup or transfer between your own devices. That file includes the private fields omitted from a snapshot. Import also opens a preview and requires an explicit save.&lt;/p>
&lt;p>Keep that file private, especially when the constraints or diagnostic notes identify your equipment. Treat it as personal.&lt;/p>
&lt;p>Projects are stored in this browser. Clearing browser storage can remove them, and another browser or device cannot see them without a JSON transfer. If browser storage is unavailable, full, or corrupt, the workspace reports the failure instead of replacing the stored record.&lt;/p>
&lt;p>Back it up.&lt;/p>
&lt;h2 id="start-with-a-focused-route">Start with a focused route&lt;/h2>
&lt;p>Start with one decision.&lt;/p>
&lt;ul>
&lt;li>For a new gaming PC or upgrade, start with &lt;a href="https://techfuelhq.com/tools/pc-builder/">PC Builder&lt;/a>, compare the exact GPUs you are considering, then run the saved load through the PSU calculator.&lt;/li>
&lt;li>For a storage server, start with the usable-capacity and fault-tolerance tradeoff in the &lt;a href="https://techfuelhq.com/tools/nas-storage-calculator/">NAS calculator&lt;/a>, then carry its state into the power-cost calculator.&lt;/li>
&lt;li>For intermittent faults, open the &lt;a href="https://techfuelhq.com/tools/diagnostic-workbench/">Diagnostic Workbench&lt;/a> from a diagnostic project. Record the symptom, display or hardware path, recent change, tests, and outcome without placing those notes in a shared snapshot.&lt;/li>
&lt;li>For ECC or expansion decisions, attach the dated result from the &lt;a href="https://techfuelhq.com/tools/am5-ecc-compatibility-checker/">AM5 ECC checker&lt;/a> or &lt;a href="https://techfuelhq.com/tools/nvme-expansion-checker/">NVMe expansion checker&lt;/a>. Keep the manufacturer evidence and its stated scope beside the project.&lt;/li>
&lt;/ul></description></item><item><title>NVMe Expansion Compatibility Checker</title><link>https://techfuelhq.com/tools/nvme-expansion-checker/</link><pubDate>Sat, 03 Oct 2026 00:00:00 -0500</pubDate><author>LK Wood IV</author><guid>https://techfuelhq.com/tools/nvme-expansion-checker/</guid><description>&lt;h2 id="what-this-checker-answers">What this checker answers&lt;/h2>
&lt;p>An NVMe expansion card can place one or more M.2 drives behind a motherboard PCIe slot. The difficult part is the lane path: a slot may look like x16 while operating with fewer electrical lanes, and a passive multi-drive card needs the host to expose the specific lane split documented for that slot.&lt;/p>
&lt;p>This first catalog covers four ASUS motherboard models. Pick the board model and CPU group first, then the slot, adapter topology, and drive count. The result shows the documented electrical lanes, explicit lane mapping, conditional conflicts, and the source document beside the conclusion. Where ASUS does not state a board revision, the result says so.&lt;/p>
&lt;h2 id="how-each-topology-is-handled">How each topology is handled&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Single-drive adapter:&lt;/strong> the checker looks for a documented lane path of at least four electrical lanes. It does not decide physical clearance, boot support, firmware behavior, or operating-system support.&lt;/li>
&lt;li>&lt;strong>Passive dual-drive card:&lt;/strong> the selected slot needs explicit evidence for two drives, such as a documented x4/x4 mapping or an exact manufacturer-stated maximum for the named adapter.&lt;/li>
&lt;li>&lt;strong>Passive quad-drive card:&lt;/strong> the selected slot needs explicit evidence for four drives, such as x4/x4/x4/x4 or an exact manufacturer-stated maximum for the named adapter.&lt;/li>
&lt;li>&lt;strong>Switched card:&lt;/strong> a genuine onboard PCIe switch handles downstream division without host bifurcation. The board record alone cannot confirm that exact card&amp;rsquo;s fit, firmware, boot support, or drive enumeration.&lt;/li>
&lt;/ul>
&lt;p>The requested drive count is also checked against the chosen adapter topology. A passive dual card cannot hold three drives, even if the host slot documents more lane groups.&lt;/p>
&lt;p>The motherboard tables in this first catalog name ASUS Hyper M.2 adapter models. Their socket-to-lane mapping is evidence for those named cards. A third-party passive carrier needs the same mapping to the active x4 groups; the reported lane count by itself does not establish that its sockets line up.&lt;/p>
&lt;h2 id="read-the-conflicts-before-installing">Read the conflicts before installing&lt;/h2>
&lt;p>PCIe slots can share lanes or change behavior with a particular CPU group, another populated slot, or an onboard connector. The result repeats the source record&amp;rsquo;s conditional text. Treat those conditions as part of the result, not as optional notes.&lt;/p>
&lt;p>“Not documented” is a deliberate outcome. It does not claim the configuration is impossible. It says the available manufacturer evidence does not establish the requested layout, so the next step is the exact motherboard model&amp;rsquo;s manual, any manufacturer-stated revision, and the exact adapter documentation.&lt;/p></description></item><item><title>WHEA_UNCORRECTABLE_ERROR 0x124: Read the Record</title><link>https://techfuelhq.com/articles/whea-uncorrectable-error-2026/</link><pubDate>Sat, 03 Oct 2026 00:00:00 -0500</pubDate><author>LK Wood IV</author><guid>https://techfuelhq.com/articles/whea-uncorrectable-error-2026/</guid><description>&lt;p>&lt;code>WHEA_UNCORRECTABLE_ERROR&lt;/code> is Windows reporting that hardware raised a fatal error it could not contain. The stop code is &lt;code>0x00000124&lt;/code>, usually shortened to &lt;code>0x124&lt;/code>.&lt;/p>
&lt;p>That definition tells you what the blue screen does &lt;strong>not&lt;/strong> say. It does not say “replace the CPU.” It does not make &lt;code>AuthenticAMD.sys&lt;/code> or a processor name a diagnosis. Windows Hardware Error Architecture (WHEA) collects a record from the component or platform that reported the condition. Your next job is to read that record.&lt;/p>
&lt;p>&lt;a href="https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/bug-check-0x124---whea-uncorrectable-error" rel="noopener">Microsoft&amp;rsquo;s 0x124 reference&lt;/a> gives you the two fields that route the investigation:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Parameter 1&lt;/strong> identifies the kind of error source that reported the problem.&lt;/li>
&lt;li>&lt;strong>Parameter 2&lt;/strong> points to the &lt;code>WHEA_ERROR_RECORD&lt;/code> that describes it.&lt;/li>
&lt;/ul>
&lt;p>Preserve those before changing firmware settings, reinstalling Windows or ordering a part.&lt;/p>
&lt;p>The &lt;a href="https://techfuelhq.com/tools/diagnostic-workbench/">Hardware Diagnostic Workbench&lt;/a> can keep the stop time, bug-check parameters, error record, tuning state, and controlled tests in one device-local project. It records evidence; it does not turn a WHEA source into a replacement-part verdict.&lt;/p>
&lt;h2 id="first-make-sure-0x124-was-the-crash">First, make sure 0x124 was the crash&lt;/h2>
&lt;p>If the blue screen stayed up, photograph the stop code. If the PC restarted too quickly to read it, start with the &lt;a href="https://techfuelhq.com/articles/pc-randomly-restarts-2026/">random-restart guide&lt;/a>. Its Event 41 command converts the saved decimal bug-check value to hexadecimal. Decimal &lt;code>292&lt;/code> is &lt;code>0x124&lt;/code>.&lt;/p>
&lt;p>If a bug-check value of zero is the only evidence you have, stay with the restart guide until a matching photo or dump confirms &lt;code>0x124&lt;/code>. The zero does not establish a stop code for that shutdown; it does not overrule separate evidence from the same crash.&lt;/p>
&lt;p>Also keep corrected WHEA events separate from this blue screen. Microsoft&amp;rsquo;s &lt;a href="https://learn.microsoft.com/en-us/windows-hardware/drivers/whea/error-processing" rel="noopener">WHEA error-processing documentation&lt;/a> says Windows can log corrected hardware-error information without stopping. A fatal uncorrected condition is saved and followed by a bug check. Both deserve attention, but a corrected event alone is not proof that the machine had a 0x124 crash.&lt;/p>
&lt;h2 id="preserve-the-dump-before-changing-settings">Preserve the dump before changing settings&lt;/h2>
&lt;p>Check &lt;code>C:\Windows\Minidump&lt;/code> for a &lt;code>.dmp&lt;/code> file whose timestamp matches the crash. A kernel or automatic dump can instead be at &lt;code>C:\Windows\MEMORY.DMP&lt;/code>. Copy the matching file to a working folder so a later crash or cleanup cannot replace the only copy.&lt;/p>
&lt;p>If no dump exists, configure the next one through &lt;strong>System Properties &amp;gt; Advanced &amp;gt; Startup and Recovery &amp;gt; Settings&lt;/strong>. Microsoft&amp;rsquo;s &lt;a href="https://learn.microsoft.com/en-us/troubleshoot/windows-client/performance/read-small-memory-dump-file" rel="noopener">small-dump guide&lt;/a> documents the Small memory dump option and &lt;code>%SystemRoot%\Minidump&lt;/code> location. A small dump can omit context that a larger kernel dump retains, but it preserves the stop code, parameters and kernel stack.&lt;/p>
&lt;p>Write down what changed before the first crash:&lt;/p>
&lt;ul>
&lt;li>CPU, GPU or memory clock and voltage changes&lt;/li>
&lt;li>XMP or EXPO being enabled&lt;/li>
&lt;li>a BIOS update or settings reset&lt;/li>
&lt;li>newly installed memory or a PCIe device&lt;/li>
&lt;li>a cooler, fan or pump change&lt;/li>
&lt;li>the load that reliably triggers the crash&lt;/li>
&lt;/ul>
&lt;p>That list does not convict anything. It gives you reversible comparisons after the record picks a branch.&lt;/p>
&lt;h2 id="read-parameter-1-and-the-error-record-in-windbg">Read Parameter 1 and the error record in WinDbg&lt;/h2>
&lt;p>Open the matching dump in WinDbg. Microsoft&amp;rsquo;s &lt;a href="https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/opening-a-crash-dump-file-using-windbg" rel="noopener">dump-opening guide&lt;/a> documents the &lt;strong>File &amp;gt; Open crash dump&lt;/strong> flow. Its documented first-pass command is:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>!analyze -v
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Find the &lt;code>WHEA_UNCORRECTABLE_ERROR (124)&lt;/code> section and its arguments. Keep the full values for &lt;code>Arg1&lt;/code> and &lt;code>Arg2&lt;/code>. Then pass the second value to Microsoft&amp;rsquo;s WHEA record extension:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>!errrec &amp;lt;Arg2 value&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>For example, if &lt;code>Arg2&lt;/code> is &lt;code>ffffa10b12345028&lt;/code>, the command is &lt;code>!errrec ffffa10b12345028&lt;/code>. Do not copy that example address into your own analysis; use the address printed by your dump.&lt;/p>
&lt;p>The &lt;a href="https://learn.microsoft.com/en-us/windows-hardware/drivers/debuggercmds/-errrec" rel="noopener">&lt;code>!errrec&lt;/code> reference&lt;/a> says the command displays the contents of the WHEA error record. Save the output with the dump. Start with the notification or source type, severity and record-section headings.&lt;/p>
&lt;p>If &lt;code>!errrec&lt;/code> cannot read the record from a small dump, keep that dump rather than treating the failed command as a diagnosis. For a future crash, use &lt;strong>System Properties &amp;gt; Advanced &amp;gt; Startup and Recovery &amp;gt; Settings&lt;/strong> to choose &lt;strong>Automatic memory dump&lt;/strong> or &lt;strong>Kernel memory dump&lt;/strong>. Microsoft&amp;rsquo;s &lt;a href="https://learn.microsoft.com/en-us/troubleshoot/windows-client/performance/configure-system-failure-and-recovery-options" rel="noopener">system-failure and recovery reference&lt;/a> documents both options and their paging-file requirements. A later, larger dump may retain the needed record; it is not guaranteed to make every record readable.&lt;/p>
&lt;h2 id="parameter-1-picks-the-branch-not-the-replacement-part">Parameter 1 picks the branch, not the replacement part&lt;/h2>
&lt;p>Microsoft&amp;rsquo;s table defines these useful routes:&lt;/p>
&lt;div class="table-wrap">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th scope="col">Parameter 1&lt;/th>
&lt;th scope="col">Error source&lt;/th>
&lt;th scope="col">What the branch establishes&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td data-label="Parameter 1">&lt;code>0x0&lt;/code>&lt;/td>
&lt;td data-label="Error source">Machine check exception&lt;/td>
&lt;td data-label="What the branch establishes">A processor machine-check source reported the condition. Read the record sections before choosing CPU, cache, memory or bus tests.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Parameter 1">&lt;code>0x3&lt;/code>&lt;/td>
&lt;td data-label="Error source">Nonmaskable interrupt&lt;/td>
&lt;td data-label="What the branch establishes">The platform reported an NMI condition. Use the record and the system or board maker&amp;rsquo;s diagnostics.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Parameter 1">&lt;code>0x4&lt;/code>&lt;/td>
&lt;td data-label="Error source">Uncorrectable PCI Express error&lt;/td>
&lt;td data-label="What the branch establishes">Start with the PCIe record and the exact device or port evidence it contains. Do not default to the CPU branch.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Parameter 1">&lt;code>0x5&lt;/code>&lt;/td>
&lt;td data-label="Error source">Generic hardware error&lt;/td>
&lt;td data-label="What the branch establishes">The source type alone is broad. The record section and platform documentation carry the useful detail.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Parameter 1">another value&lt;/td>
&lt;td data-label="Error source">Another WHEA source&lt;/td>
&lt;td data-label="What the branch establishes">Use Microsoft&amp;rsquo;s 0x124 table and the section printed by &lt;code>!errrec&lt;/code>; do not force it into one of the rows above.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;p>The restraint in the machine-check row is deliberate. Microsoft&amp;rsquo;s &lt;a href="https://learn.microsoft.com/en-us/windows-hardware/drivers/whea/hardware-errors-and-error-sources" rel="noopener">hardware-error source documentation&lt;/a> says one processor machine-check source can report processor, cache, memory and system-bus errors. “Processor” in the source line therefore does not, by itself, prove a failed processor.&lt;/p>
&lt;p>The record can contain processor, platform-memory, PCIe, bus, device, NMI or generic sections. Microsoft&amp;rsquo;s &lt;a href="https://learn.microsoft.com/en-us/windows-hardware/drivers/whea/error-records" rel="noopener">error-record documentation&lt;/a> defines those section families. Treat a section as a routing clue. A single filename, vendor string or bus label is not a purchase order.&lt;/p>
&lt;h2 id="put-deliberate-tuning-back-to-default">Put deliberate tuning back to default&lt;/h2>
&lt;p>Microsoft lists heat, defective hardware, memory and a processor beginning to fail among 0x124 possibilities. It specifically says to disable overclocking, confirm cooling works and run memory diagnostics.&lt;/p>
&lt;p>If you changed a clock, voltage, power limit or memory profile, record the current value and restore only those deliberate changes to their documented defaults. Test the same workload again before making a second change. One change at a time is what tells you whether stability returned.&lt;/p>
&lt;p>Entering UEFI settings is also the point to make sure you can retrieve the device&amp;rsquo;s BitLocker recovery key. Microsoft says a security or hardware change can cause a recovery prompt, and it cannot recreate a lost key. Use its &lt;a href="https://support.microsoft.com/en-us/windows/security/encryption/find-your-bitlocker-recovery-key" rel="noopener">recovery-key instructions&lt;/a> before the firmware-settings step. Do not change TPM or Secure Boot settings as part of this diagnosis.&lt;/p>
&lt;p>This step tests configuration stability. It does not prove a component is healthy or defective. If the crash continues at defaults, keep the defaults while you isolate the branch.&lt;/p>
&lt;h2 id="follow-the-records-branch">Follow the record&amp;rsquo;s branch&lt;/h2>
&lt;h3 id="machine-check-or-processor-section">Machine-check or processor section&lt;/h3>
&lt;p>Start with cooling and settings because they are reversible. Confirm that the fans or pump operate and compare CPU temperature under the triggering load with the processor maker&amp;rsquo;s limit. The &lt;a href="https://techfuelhq.com/articles/cpu-overheating-2026/">CPU overheating guide&lt;/a> covers the temperature and cooler checks without turning a hot reading into an automatic replacement.&lt;/p>
&lt;p>If the record points toward memory or the crash began with a memory-profile change, use the &lt;a href="https://techfuelhq.com/articles/memory-management-bsod-2026/#step-3-test-the-sticks-so-the-result-means-something">MEMORY_MANAGEMENT test sequence&lt;/a>: default memory speed first, then a real memory test, then one-stick isolation if the test reports errors. A machine check can include memory and bus faults, so this is evidence-led isolation rather than a claim that 0x124 means bad RAM.&lt;/p>
&lt;p>If cooling, defaults and memory isolation are clean, keep the dump and exact record output for the system or motherboard maker. A CPU swap is a late isolation test, not the interpretation of a vendor name in WinDbg.&lt;/p>
&lt;h3 id="pcie-section-or-parameter-1-0x4">PCIe section or Parameter 1 &lt;code>0x4&lt;/code>&lt;/h3>
&lt;p>Record the exact PCIe section fields and compare them with what changed: a new GPU, storage adapter, add-in card, riser, slot or firmware revision. Power down before touching hardware and use the board and device maker&amp;rsquo;s service instructions for reseating or moving a device. Change one device or slot at a time, then repeat the same workload.&lt;/p>
&lt;p>Do not assume every PCIe error is the graphics card. The bus also carries NVMe drives, network adapters and other devices. The record and the board&amp;rsquo;s slot map should narrow the path before isolation.&lt;/p>
&lt;h3 id="generic-nmi-or-platform-specific-section">Generic, NMI or platform-specific section&lt;/h3>
&lt;p>Preserve the full record and use the exact computer or motherboard maker&amp;rsquo;s hardware diagnostics and firmware notes. These branches are where a generic “replace the CPU” answer is least defensible. The platform can add information that Windows&amp;rsquo; generic source label does not explain.&lt;/p>
&lt;h2 id="what-not-to-do-first">What not to do first&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Do not reinstall Windows before reading the dump.&lt;/strong> It does not identify the hardware source and can discard the evidence window.&lt;/li>
&lt;li>&lt;strong>Do not raise voltages to make the crash disappear.&lt;/strong> That changes the electrical conditions and creates a second variable.&lt;/li>
&lt;li>&lt;strong>Do not replace the CPU because WinDbg prints a processor vendor string.&lt;/strong> A machine-check source can cover cache, memory and system bus errors too.&lt;/li>
&lt;li>&lt;strong>Do not treat every WHEA-Logger warning as a fatal crash.&lt;/strong> Preserve the corrected event and compare timestamps, but keep its severity distinct.&lt;/li>
&lt;li>&lt;strong>Do not buy several parts at once.&lt;/strong> A pile of simultaneous swaps can hide which comparison mattered.&lt;/li>
&lt;/ul>
&lt;p>Microsoft Support&amp;rsquo;s consumer &lt;a href="https://support.microsoft.com/en-us/windows/experience/performance-optimization/how-to-fix-whea-uncorrectable-error" rel="noopener">WHEA fix page&lt;/a> also recommends Windows and driver updates, recovery options after a recent change, and general blue-screen troubleshooting. Apply an update or rollback when the timing and record point at that device or change. The WHEA record is what keeps that step targeted.&lt;/p>
&lt;h2 id="the-stopping-rule">The stopping rule&lt;/h2>
&lt;p>Escalate with the dump, &lt;code>!analyze -v&lt;/code> output, &lt;code>!errrec&lt;/code> output, settings history and isolation result together. Replace a component when the error follows that component or a manufacturer diagnostic condemns it, not because the stop code&amp;rsquo;s name sounded like a CPU failure.&lt;/p>
&lt;p>If the dump is missing or unreadable, keep the system at documented defaults and configure the next dump. The next reproducible crash with a preserved record is more useful than a guess made from the blue screen alone.&lt;/p>
&lt;h2 id="sources">Sources&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/bug-check-0x124---whea-uncorrectable-error" rel="noopener">Microsoft Learn: Bug Check 0x124 WHEA_UNCORRECTABLE_ERROR&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/windows-hardware/drivers/whea/hardware-errors-and-error-sources" rel="noopener">Microsoft Learn: Hardware Errors and Error Sources&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/windows-hardware/drivers/whea/error-records" rel="noopener">Microsoft Learn: WHEA Error Records&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/windows-hardware/drivers/whea/error-processing" rel="noopener">Microsoft Learn: WHEA Error Processing&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/windows-hardware/drivers/debuggercmds/-errrec" rel="noopener">Microsoft Learn: &lt;code>!errrec&lt;/code> in WinDbg&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/troubleshoot/windows-client/performance/read-small-memory-dump-file" rel="noopener">Microsoft Learn: Read Small Memory Dump Files&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/troubleshoot/windows-client/performance/configure-system-failure-and-recovery-options" rel="noopener">Microsoft Learn: Configure System Failure and Recovery Options&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/opening-a-crash-dump-file-using-windbg" rel="noopener">Microsoft Learn: Open a Dump File with WinDbg&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://support.microsoft.com/en-us/windows/experience/performance-optimization/how-to-fix-whea-uncorrectable-error" rel="noopener">Microsoft Support: How to Fix WHEA_UNCORRECTABLE_ERROR&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://support.microsoft.com/en-us/windows/security/encryption/find-your-bitlocker-recovery-key" rel="noopener">Microsoft Support: Find Your BitLocker Recovery Key&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Riot Vanguard VAN Error Codes: Every Code and Its Fix</title><link>https://techfuelhq.com/gaming/vanguard-error-codes-2026/</link><pubDate>Fri, 02 Oct 2026 05:30:00 -0500</pubDate><author>LK Wood IV</author><guid>https://techfuelhq.com/gaming/vanguard-error-codes-2026/</guid><description>&lt;p>By &lt;a href="https://techfuelhq.com/author/lk-wood-iv/">LK Wood IV&lt;/a> · Published 2026-10-02 · ~14 min read · St. Louis County, MO&lt;/p>
&lt;div class="verdict-card">
&lt;p class="callout-label">TL;DR · Riot Vanguard VAN errors&lt;/p>
&lt;ul style="margin:0.25rem 0 0 0;padding-left:1.25rem;line-height:1.55;">
&lt;li>&lt;strong>Search the table for your number.&lt;/strong> Keep the minus sign. A search for VAN 81 means VAN -81, because Riot has no positive 81.&lt;/li>
&lt;li>&lt;strong>VAN 57, -1, -117, 9051 or 9007:&lt;/strong> Vanguard is not running or its install is damaged. Set the vgc service to Automatic, restart, then reinstall Vanguard.&lt;/li>
&lt;li>&lt;strong>Secure Boot and TPM codes&lt;/strong> (9001, 9003, 9005, 9090, RESTRICTION 1 and 4, STATUS_SB_POLICY) usually mean a firmware setting. Get your BitLocker recovery key first, then use the &lt;a href="https://techfuelhq.com/gaming/secure-boot-not-enabled-fix-2026/">Secure Boot fix&lt;/a>.&lt;/li>
&lt;li>&lt;strong>RESTRICTION 5&lt;/strong> is Memory Integrity. See &lt;a href="https://techfuelhq.com/gaming/memory-integrity-on-or-off-2026/">Memory Integrity on or off&lt;/a>.&lt;/li>
&lt;li>&lt;strong>VAN 216&lt;/strong> is a cooldown. Wait 30 minutes without pressing Play.&lt;/li>
&lt;li>&lt;strong>VAN 152&lt;/strong> is a hardware ban. Nothing on this page removes it.&lt;/li>
&lt;/ul>
&lt;/div>
&lt;p>Riot&amp;rsquo;s own list of Vanguard errors is 47 links with no meaning written beside any of them. The list is dated May 22, 2026. Of the 47 articles it links, 37 carry a later date, 35 of them from July. It also leaves out five codes Riot has written articles for, and one of them, VAN 216, was eighth in Bing&amp;rsquo;s suggestions for &amp;ldquo;vanguard error&amp;rdquo; on 2026-10-02.&lt;/p>
&lt;p>This page does the part the index skips. One table holds all 52 codes with what Riot says each one means, written short, plus a fix family, a verdict on whether you can fix it at all, and the date on Riot&amp;rsquo;s article so you can judge how fresh the advice is. Below the table, each family&amp;rsquo;s steps appear once. Riot repeats them per code.&lt;/p>
&lt;p>Riot Vanguard is the anti-cheat for both VALORANT and League of Legends, and the old League-only error list now redirects to the same shared index — one list, two games. If your game uses Easy Anti-Cheat instead, the &lt;a href="https://techfuelhq.com/gaming/easy-anti-cheat-fix-guide-2026/">Easy Anti-Cheat fix guide&lt;/a> is the page you want, and BattlEye has &lt;a href="https://techfuelhq.com/gaming/battleye-errors-fix-2026/">its own&lt;/a>.&lt;/p>
&lt;p>Rule out one mix-up first. Riot&amp;rsquo;s index warns that VAL errors are a different family, so VAL 59 is not VAN 59. Check the letters.&lt;/p>
&lt;h2 id="van-code-table">Every VAN code, what it means and the fix&lt;/h2>
&lt;p>The &amp;ldquo;Riot&amp;rsquo;s date&amp;rdquo; column is the date shown on Riot&amp;rsquo;s article. &amp;ldquo;Game named&amp;rdquo; records only where Riot&amp;rsquo;s article names a game, usually in its sample error message. Every one of these articles sits in Riot&amp;rsquo;s shared support section rather than under one game, so a blank there does not mean the code is limited to one title. Rows marked off-index are Riot articles that the index does not link.&lt;/p>
&lt;div class="table-wrap">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th scope="col">Code&lt;/th>
&lt;th scope="col">Also seen as&lt;/th>
&lt;th scope="col">What Riot says it means&lt;/th>
&lt;th scope="col">Fix family&lt;/th>
&lt;th scope="col">Can you fix it?&lt;/th>
&lt;th scope="col">Game named&lt;/th>
&lt;th scope="col">Riot&amp;rsquo;s date&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van-missing--117" rel="noopener">VAN -117&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">VAN MISSING -117, VAN 117&lt;/td>
&lt;td data-label="What Riot says it means">Vanguard is not running, so the client closes&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#not-running">Not running&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2025-10-23&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van--104" rel="noopener">VAN -104&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">VAN 104&lt;/td>
&lt;td data-label="What Riot says it means">Trouble starting, staying connected or confirming readiness&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#connection">Connection&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">VALORANT&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-09&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van--102" rel="noopener">VAN -102&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">VAN 102&lt;/td>
&lt;td data-label="What Riot says it means">Same text as -104&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#connection">Connection&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">VALORANT&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-09&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van--101" rel="noopener">VAN -101&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">VAN 101&lt;/td>
&lt;td data-label="What Riot says it means">The PC or OS is below League&amp;rsquo;s system requirements&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#platform">Platform&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Only on a supported PC&lt;/td>
&lt;td data-label="Game named">League&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-16&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van--92" rel="noopener">VAN -92&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">VAN 92&lt;/td>
&lt;td data-label="What Riot says it means">Same text as -104&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#connection">Connection&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">VALORANT&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-10&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van--83" rel="noopener">VAN -83&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">VAN 83&lt;/td>
&lt;td data-label="What Riot says it means">Same text as -104&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#connection">Connection&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-10&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van--81" rel="noopener">VAN -81&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">VAN 81&lt;/td>
&lt;td data-label="What Riot says it means">Same text as -104&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#connection">Connection&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">VALORANT&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-10&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van--79" rel="noopener">VAN -79&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">VAN 79&lt;/td>
&lt;td data-label="What Riot says it means">Same text as -104&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#connection">Connection&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">VALORANT&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-10&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van--72" rel="noopener">VAN -72&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">VAN 72&lt;/td>
&lt;td data-label="What Riot says it means">Same text as -104&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#connection">Connection&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">VALORANT&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-10&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van--1" rel="noopener">VAN -1&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">VAN 1&lt;/td>
&lt;td data-label="What Riot says it means">Vanguard failed to start, or a service it needs is unavailable&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#not-running">Not running&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">VALORANT&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-08&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van-0" rel="noopener">VAN 0&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">&lt;/td>
&lt;td data-label="What Riot says it means">Couldn&amp;rsquo;t verify the PC is ready, or failed while initializing&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#pc-not-ready">PC not ready&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">VALORANT&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-17&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van-6" rel="noopener">VAN 6&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">&lt;/td>
&lt;td data-label="What Riot says it means">Same text as VAN 0&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#pc-not-ready">PC not ready&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">VALORANT&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-08&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van-25" rel="noopener">VAN 25&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">&lt;/td>
&lt;td data-label="What Riot says it means">A startup or system trust check failed&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#trust-checks">Trust checks&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2025-03-14&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van-57" rel="noopener">VAN 57&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">&lt;/td>
&lt;td data-label="What Riot says it means">Vanguard is not running or couldn&amp;rsquo;t start&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#not-running">Not running&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-08&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van-59" rel="noopener">VAN 59&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">&lt;/td>
&lt;td data-label="What Riot says it means">Unexpected problem starting or talking to the Riot Client&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#riot-client">Riot Client&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-16&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van-68" rel="noopener">VAN 68&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">&lt;/td>
&lt;td data-label="What Riot says it means">Lost the connection or session it needs&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#connection">Connection&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">VALORANT&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-16&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van-84" rel="noopener">VAN 84&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">&lt;/td>
&lt;td data-label="What Riot says it means">Same text as VAN 0&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#pc-not-ready">PC not ready&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">VALORANT&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-17&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van-128" rel="noopener">VAN 128&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">&lt;/td>
&lt;td data-label="What Riot says it means">Same text as VAN 25, plus a debug-dump step&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#trust-checks">Trust checks&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2025-03-14&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van-133" rel="noopener">VAN 133&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">&lt;/td>
&lt;td data-label="What Riot says it means">Same text as VAN 0&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#pc-not-ready">PC not ready&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">VALORANT&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-14&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van-135" rel="noopener">VAN 135&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">&lt;/td>
&lt;td data-label="What Riot says it means">Same text as VAN 0&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#pc-not-ready">PC not ready&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">VALORANT&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-14&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van-138" rel="noopener">VAN 138&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">&lt;/td>
&lt;td data-label="What Riot says it means">Running in a virtual machine&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#platform">Platform&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Not inside a VM&lt;/td>
&lt;td data-label="Game named">VALORANT&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-14&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van-140" rel="noopener">VAN 140&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">&lt;/td>
&lt;td data-label="What Riot says it means">Startup or connection issue between the game, Riot Client and Vanguard&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#riot-client">Riot Client&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">VALORANT&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-16&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van-148" rel="noopener">VAN 148&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">&lt;/td>
&lt;td data-label="What Riot says it means">Unexpected issue while starting or checking in&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#riot-client">Riot Client&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-15&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van-152" rel="noopener">VAN 152&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">&lt;/td>
&lt;td data-label="What Riot says it means">The device has a hardware ID (HWID) ban&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#van-152">HWID ban&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">No&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-16&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van-185" rel="noopener">VAN 185&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">&lt;/td>
&lt;td data-label="What Riot says it means">Session or connection issue between the game, Riot Client and Vanguard&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#riot-client">Riot Client&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">VALORANT&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-17&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van-193" rel="noopener">VAN 193&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">&lt;/td>
&lt;td data-label="What Riot says it means">Trouble starting or communicating with the Riot Client&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#riot-client">Riot Client&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-16&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van-216" rel="noopener">VAN 216&lt;/a> (off-index)&lt;/td>
&lt;td data-label="Also seen as">&lt;/td>
&lt;td data-label="What Riot says it means">Too many launch attempts in a short period&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#van-216">Cooldown&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Wait 30 minutes&lt;/td>
&lt;td data-label="Game named">VALORANT&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-17&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van-289" rel="noopener">VAN 289&lt;/a> (off-index)&lt;/td>
&lt;td data-label="Also seen as">&lt;/td>
&lt;td data-label="What Riot says it means">Software on the PC interferes with Vanguard or changes how it runs&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#interfering-software">Software&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">VALORANT&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-09-18&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van-293" rel="noopener">VAN 293&lt;/a> (off-index)&lt;/td>
&lt;td data-label="Also seen as">VAN -293&lt;/td>
&lt;td data-label="What Riot says it means">Same text as -104&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#connection">Connection&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">VALORANT&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-08-12&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van-302" rel="noopener">VAN 302&lt;/a> (off-index)&lt;/td>
&lt;td data-label="Also seen as">&lt;/td>
&lt;td data-label="What Riot says it means">Software such as antivirus interferes with Vanguard&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#interfering-software">Software&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">VALORANT&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-08-13&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van-1067" rel="noopener">VAN 1067&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">&lt;/td>
&lt;td data-label="What Riot says it means">Unexpected issue while starting or checking in&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#riot-client">Riot Client&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">VALORANT&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-17&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van-2266" rel="noopener">VAN 2266&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">&lt;/td>
&lt;td data-label="What Riot says it means">Same text as VAN 0&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#pc-not-ready">PC not ready&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-17&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/client/error-van-9001" rel="noopener">VAN 9001&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">VAN9001&lt;/td>
&lt;td data-label="What Riot says it means">TPM 2.0 is not detected as enabled&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#security-features">Security features&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes, in firmware&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-02-04&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/client/error-van-9002" rel="noopener">VAN 9002&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">VAN9002&lt;/td>
&lt;td data-label="What Riot says it means">Exploit Protection (Control Flow Guard) is off&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#security-features">Security features&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-02-03&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/client/error-van-9003" rel="noopener">VAN 9003&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">VAN9003&lt;/td>
&lt;td data-label="What Riot says it means">Secure Boot is not enabled&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#security-features">Security features&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes, in firmware&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-05-11&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/client/error-van-9004" rel="noopener">VAN 9004&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">VAN9004&lt;/td>
&lt;td data-label="What Riot says it means">Windows is older than Windows 10 20H1&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#platform">Platform&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes, Windows Update&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-16&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/client/error-van-9005" rel="noopener">VAN 9005&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">VAN9005&lt;/td>
&lt;td data-label="What Riot says it means">No TPM 2.0 and UEFI firmware setup for VBS&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#security-features">Security features&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes, in firmware&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-01-15&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/client/error-van-9006" rel="noopener">VAN 9006&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">VAN9006&lt;/td>
&lt;td data-label="What Riot says it means">Same meaning as VAN 9004&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#platform">Platform&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes, Windows Update&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-17&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/client/error-van-9007" rel="noopener">VAN 9007&lt;/a> (off-index)&lt;/td>
&lt;td data-label="Also seen as">VAN9007&lt;/td>
&lt;td data-label="What Riot says it means">The Vanguard installation may be corrupted or not working correctly&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#not-running">Not running&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-08-19&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/client/error-van-9051" rel="noopener">VAN 9051&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">&lt;/td>
&lt;td data-label="What Riot says it means">Internal error Vanguard could not recover from&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#not-running">Not running&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-16&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/client/error-van-9090" rel="noopener">VAN 9090&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">&lt;/td>
&lt;td data-label="What Riot says it means">TPM 2.0 failed to initialize, for example after being cleared&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#security-features">Security features&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes, in firmware&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-16&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/client/error-van-9100" rel="noopener">VAN 9100&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">&lt;/td>
&lt;td data-label="What Riot says it means">Running in a virtual machine or unsupported virtualized environment&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#platform">Platform&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Not inside a VM&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-16&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/client/error-van-9101" rel="noopener">VAN 9101&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">Attestation failure&lt;/td>
&lt;td data-label="What Riot says it means">Couldn&amp;rsquo;t fully verify the PC&amp;rsquo;s current system state&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#trust-checks">Trust checks&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-20&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/penalties/error-van-restriction" rel="noopener">VAN: RESTRICTION&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">no number&lt;/td>
&lt;td data-label="What Riot says it means">A Windows build or security feature named in the message is missing&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#security-features">Security features&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Depends on the message&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-05-29&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/penalties/error-van-restriction-1" rel="noopener">VAN: RESTRICTION: 1&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">RESTRICTION 1&lt;/td>
&lt;td data-label="What Riot says it means">Secure Boot couldn&amp;rsquo;t be verified&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#security-features">Security features&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes, in firmware&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-06-24&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/penalties/error-van-restriction-3" rel="noopener">VAN: RESTRICTION: 3&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">RESTRICTION 3&lt;/td>
&lt;td data-label="What Riot says it means">The game is not on the Windows drive&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#platform">Platform&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes, reinstall&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-03-13&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/penalties/error-van-restriction-4" rel="noopener">VAN: RESTRICTION: 4&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">RESTRICTION 4&lt;/td>
&lt;td data-label="What Riot says it means">Secure Boot configuration couldn&amp;rsquo;t be verified&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#security-features">Security features&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes, in firmware&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-20&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/penalties/error-van-restriction-5" rel="noopener">VAN: RESTRICTION: 5&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">RESTRICTION 5&lt;/td>
&lt;td data-label="What Riot says it means">Memory Integrity (HVCI/VBS) couldn&amp;rsquo;t be verified&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#security-features">Security features&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-03-13&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van-incompatible-software" rel="noopener">Incompatible Software&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">&lt;/td>
&lt;td data-label="What Riot says it means">A named file or driver fails Vanguard&amp;rsquo;s requirements&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#interfering-software">Software&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-01-27&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/van-incompatible-oem-driver" rel="noopener">Incompatible OEM Driver&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">&lt;/td>
&lt;td data-label="What Riot says it means">A named storage or Wi-Fi driver fails Vanguard&amp;rsquo;s requirements&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#interfering-software">Software&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes, except iastorvd.sys (as of July 17, 2026)&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-17&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van-status-vmd-9001" rel="noopener">STATUS_VMD_9001&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">&lt;/td>
&lt;td data-label="What Riot says it means">Can&amp;rsquo;t talk to the Intel VMD controller&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#interfering-software">Software&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-17&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">&lt;a href="https://support.riotgames.com/en-us/riot/performance/error-van-status-sb-policy" rel="noopener">STATUS_SB_POLICY&lt;/a>&lt;/td>
&lt;td data-label="Also seen as">&lt;/td>
&lt;td data-label="What Riot says it means">The Secure Boot policy can&amp;rsquo;t be verified&lt;/td>
&lt;td data-label="Fix family">&lt;a href="#security-features">Security features&lt;/a>&lt;/td>
&lt;td data-label="Can you fix it?">Yes, in firmware&lt;/td>
&lt;td data-label="Game named">&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s date">2026-07-17&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;p>Read across the date column and two things stand out. VAN 25 and VAN 128 are the oldest advice Riot has here. Both date from March 14, 2025. Both open with a change to Windows boot settings. And four of the five off-index articles are newer than anything on the index, so the codes Riot published most recently are the ones its list does not show.&lt;/p>
&lt;h2 id="not-running">Vanguard is not running or its install is damaged&lt;/h2>
&lt;p>Codes in this family: VAN 57, -1, -117, 9051, 9007.&lt;/p>
&lt;p>Five codes, one problem. Vanguard&amp;rsquo;s service did not start, or it started and broke. VAN 57&amp;rsquo;s article sets the full order, and the other four are subsets of it.&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Set the vgc service to Automatic&lt;/strong>, unless you use Vanguard Pre-Check. Press Windows + R, run &lt;code>services.msc&lt;/code>, open &lt;strong>vgc&lt;/strong>, set Startup type to &lt;strong>Automatic&lt;/strong>, click &lt;strong>Start&lt;/strong> if it shows Stopped, then Apply and restart.&lt;/li>
&lt;li>&lt;strong>Restart&lt;/strong> if vgc was already Automatic.&lt;/li>
&lt;li>&lt;strong>Reinstall Vanguard.&lt;/strong> Right-click the Vanguard tray icon, choose Advanced, then Uninstall Vanguard. Restart, then launch the game, and it reinstalls Vanguard.&lt;/li>
&lt;li>&lt;strong>Clean boot&lt;/strong>, using &lt;a href="https://support.riotgames.com/en-us/riot/performance/perform-clean-boot" rel="noopener">Riot&amp;rsquo;s clean boot guide&lt;/a>.&lt;/li>
&lt;li>&lt;strong>Reinstall the game.&lt;/strong>&lt;/li>
&lt;/ol>
&lt;p>VAN -117 skips the service step. VAN -1 is just the reinstall plus the service. VAN 9051 is a restart, then a reinstall. VAN 9007&amp;rsquo;s in-game message says the install is corrupted. Riot&amp;rsquo;s article hedges. It says the installation &amp;ldquo;may be corrupted or isn&amp;rsquo;t working correctly&amp;rdquo;. Either way, go straight to a reinstall, then delete &lt;code>vgkbootstatus.dat&lt;/code> from &lt;code>C:\Windows&lt;/code> (Riot has you search that folder for it) and restart.&lt;/p>
&lt;p>Pre-Check matters for step 1. It is Riot&amp;rsquo;s optional on-demand mode, where Vanguard starts with a Riot game instead of with Windows, and Riot limits it to PCs running Windows 11 25H2 or newer with Secure Boot, TPM 2.0, IOMMU, VBS and HVCI all on. Never turned it on? Then vgc has to be Automatic.&lt;/p>
&lt;p>When the tray uninstall fails, &lt;a href="https://support.riotgames.com/en-us/riot/performance/uninstall-and-disable-vanguard" rel="noopener">Riot&amp;rsquo;s manual route&lt;/a> removes both of Vanguard&amp;rsquo;s services. Close every Riot program, open Command Prompt as administrator and run:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bat" data-lang="bat">&lt;span style="display:flex;">&lt;span>sc delete vgc
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sc delete vgk
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Restart, delete any leftover &lt;strong>Riot Vanguard&lt;/strong> folder under &lt;code>C:\Program Files&lt;/code>, then open the Riot Client and it reinstalls Vanguard.&lt;/p>
&lt;h2 id="pc-not-ready">&amp;ldquo;Couldn&amp;rsquo;t verify that your PC is ready&amp;rdquo;&lt;/h2>
&lt;p>Codes in this family: VAN 0, 6, 84, 133, 135, 2266.&lt;/p>
&lt;p>Six codes, one text. Riot&amp;rsquo;s article for each says Vanguard couldn&amp;rsquo;t verify the PC is ready to run the game or hit an issue while initializing, word for word, and the steps match too. So a fix posted for VAN 84 is the fix for VAN 133.&lt;/p>
&lt;ol>
&lt;li>Install every Windows update and restart.&lt;/li>
&lt;li>Set vgc to Automatic (step 1 &lt;a href="#not-running">above&lt;/a>).&lt;/li>
&lt;li>Reinstall Vanguard.&lt;/li>
&lt;li>Clean boot.&lt;/li>
&lt;li>Reinstall the game.&lt;/li>
&lt;li>Work through Riot&amp;rsquo;s &lt;a href="https://support.riotgames.com/en-us/riot/performance/connection-troubleshooting-guide-pc" rel="noopener">PC connection troubleshooting guide&lt;/a>.&lt;/li>
&lt;/ol>
&lt;h2 id="connection">Trouble starting or staying connected&lt;/h2>
&lt;p>Codes in this family: VAN -72, -79, -81, -83, -92, -102, -104, 293, 68.&lt;/p>
&lt;p>The seven negative codes share one sentence: Vanguard is having trouble starting, staying connected or confirming everything is ready. Same steps, too. Search engines drop the minus sign. Riot has no article at the positive address for any of the seven, so VAN 81 on a forum is VAN -81.&lt;/p>
&lt;ol>
&lt;li>Restart the PC.&lt;/li>
&lt;li>Check the Windows date, time and time zone. Riot says a wrong clock can make services and secure connections fail before the game launches.&lt;/li>
&lt;li>Set vgc to Automatic.&lt;/li>
&lt;li>Reinstall Vanguard.&lt;/li>
&lt;li>Clean boot.&lt;/li>
&lt;li>Reinstall the game.&lt;/li>
&lt;li>Work through Riot&amp;rsquo;s PC connection guide.&lt;/li>
&lt;/ol>
&lt;p>VAN 293 is off the index. Its heading says VAN 293 while its first line says VAN -293, so treat either form as this family. Its steps skip the clock check. VAN 68 adds one step, disabling &lt;strong>Killer Network Service&lt;/strong>, because Riot says Killer&amp;rsquo;s traffic prioritization can interfere with the connection.&lt;/p>
&lt;h2 id="riot-client">Riot Client conflicts&lt;/h2>
&lt;p>Codes in this family: VAN 59, 140, 148, 185, 193, 1067.&lt;/p>
&lt;p>Here Riot&amp;rsquo;s lists differ. The step unique to each code is the one I would try first.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>VAN 59:&lt;/strong> fully close the Riot Client and reopen it, then reinstall Vanguard, then the game.&lt;/li>
&lt;li>&lt;strong>VAN 185:&lt;/strong> check the game&amp;rsquo;s minimum requirements, unplug controllers, restart the Riot Client and sign out of it on any other PC, since Riot says a second signed-in PC can cause session conflicts.&lt;/li>
&lt;li>&lt;strong>VAN 193:&lt;/strong> make sure only one Riot Client is running, restart, and set vgc to Automatic. Riot&amp;rsquo;s next steps are restoring Windows security (&lt;a href="#trust-checks">trust checks&lt;/a>), then deleting &lt;code>vgkbootstatus.dat&lt;/code>. Riot suggests testing in Practice Tool or a custom game so a repeat crash cannot cost you a matchmade game.&lt;/li>
&lt;li>&lt;strong>VAN 140:&lt;/strong> on the game shortcut and on &lt;code>RiotClientServices.exe&lt;/code>, open Properties, then Compatibility. Tick Disable fullscreen optimizations and Run this program as an administrator. Then, under Change high DPI settings, override scaling and set it to Application.&lt;/li>
&lt;li>&lt;strong>VAN 148 and VAN 1067:&lt;/strong> same meaning. Update Windows and run the Riot Client as administrator. VAN 1067 adds disconnecting controllers and a malware scan.&lt;/li>
&lt;/ul>
&lt;p>Riot&amp;rsquo;s VAN 1067 article has no Secure Boot or TPM step in it. Leave the BIOS alone for this one.&lt;/p>
&lt;h2 id="trust-checks">System trust checks&lt;/h2>
&lt;p>Codes in this family: VAN 25, 128, 9101.&lt;/p>
&lt;p>VAN 25 and VAN 128 share their text. Vanguard couldn&amp;rsquo;t complete a startup or system trust check. Both start with Riot&amp;rsquo;s &amp;ldquo;restore Windows security to a normal state&amp;rdquo;, which turns test signing off and driver integrity checks back on. These are boot settings, so have your BitLocker recovery key written down before you run them. In an administrator Command Prompt:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bat" data-lang="bat">&lt;span style="display:flex;">&lt;span>bcdedit /set TESTSIGNING off
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>bcdedit /set nointegritychecks OFF
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>If Windows answers that the value is protected by Secure Boot policy, skip that line, because Riot says Secure Boot is already enforcing it. Restart.&lt;/p>
&lt;p>VAN 128 adds a second step. Press Windows, run &lt;code>sysdm.cpl&lt;/code>, go to Advanced, open the Start-up and Recovery settings, and set Write debugging information to &lt;strong>(None)&lt;/strong>. That stops Windows writing a memory dump after a crash, so if you are also chasing blue screens, you lose the evidence. Fix the Vanguard error first. Then decide. After those steps both codes fall back to Windows Update, vgc Automatic, a Vanguard reinstall, a clean boot and a game reinstall.&lt;/p>
&lt;p>VAN 9101 is the in-game &amp;ldquo;attestation failure&amp;rdquo;. Riot&amp;rsquo;s order is to update graphics, chipset and storage drivers with your PC or hardware maker&amp;rsquo;s own software, unplug every non-essential USB device, clean boot, then make sure Windows has not been modified and every security feature Vanguard needs is on.&lt;/p>
&lt;h2 id="interfering-software">Software or a driver in Vanguard&amp;rsquo;s way&lt;/h2>
&lt;p>Codes in this family: Incompatible Software, Incompatible OEM Driver, STATUS_VMD_9001, VAN 289, VAN 302.&lt;/p>
&lt;p>&lt;strong>Incompatible Software&lt;/strong> names the file in the error, usually a &lt;code>.sys&lt;/code> driver path. Uninstall the program that installed it from Settings, Apps, Installed apps, and restart. Riot&amp;rsquo;s fallback is to delete the flagged file itself. I would only do that when the file belongs to software already removed, because deleting a driver a device still uses breaks that device. Riot&amp;rsquo;s remaining steps are DNS settings, no VPN or proxy, and a Vanguard reinstall.&lt;/p>
&lt;p>&lt;strong>Incompatible OEM Driver&lt;/strong> also names a file, and Riot&amp;rsquo;s article maps each one to a fix.&lt;/p>
&lt;div class="table-wrap">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th scope="col">Driver in the error&lt;/th>
&lt;th scope="col">What it is&lt;/th>
&lt;th scope="col">Riot&amp;rsquo;s fix&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td data-label="Driver in the error">&lt;code>iastorvd.sys&lt;/code>&lt;/td>
&lt;td data-label="What it is">Intel VMD / Rapid Storage Technology&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s fix">As of Riot&amp;rsquo;s July 17, 2026 article, Intel is preparing a compatible driver; install it once released&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Driver in the error">&lt;code>secnvme.sys&lt;/code>&lt;/td>
&lt;td data-label="What it is">NVMe storage driver&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s fix">Switch to Microsoft&amp;rsquo;s &lt;strong>NVM Express Controller&lt;/strong> driver&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Driver in the error">&lt;code>solidnvm.sys&lt;/code>&lt;/td>
&lt;td data-label="What it is">NVMe storage driver&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s fix">Switch to Microsoft&amp;rsquo;s &lt;strong>NVM Express Controller&lt;/strong> driver&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Driver in the error">&lt;code>asstahci64.sys&lt;/code>&lt;/td>
&lt;td data-label="What it is">SATA AHCI driver&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s fix">Switch to Microsoft&amp;rsquo;s &lt;strong>Standard SATA AHCI Controller&lt;/strong> driver&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Driver in the error">&lt;code>mtkwl6ex.sys&lt;/code>&lt;/td>
&lt;td data-label="What it is">MediaTek RZ616 Wi-Fi 6E&lt;/td>
&lt;td data-label="Riot&amp;rsquo;s fix">Driver 3.5 or later, from Windows Update&amp;rsquo;s optional updates&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;p>The storage swap goes through Device Manager, under Storage controllers or IDE ATA/ATAPI controllers, where you open the device&amp;rsquo;s Driver tab, choose Update Driver, then Browse my computer, then Let me pick from a list. Riot says the Provider field reads Microsoft Corporation once it is done. This changes the driver for the controller your drive sits on, which is often the drive Windows boots from. Make a restore point and back up first, and pick only the Microsoft driver Riot names for your drive type.&lt;/p>
&lt;p>&lt;strong>STATUS_VMD_9001&lt;/strong> is the other Intel storage code — and the one that contradicts it. Riot says it is a fault talking to the Intel VMD controller, most common on Intel Rapid Storage Technology systems. On a prebuilt, install the RST driver from the PC maker&amp;rsquo;s support site; on a self-built PC, or a prebuilt the maker no longer updates, Riot points you to Intel&amp;rsquo;s generic one. STATUS_VMD_9001 says install the current RST driver, while the OEM-driver article, dated the same day, says the compatible &lt;code>iastorvd.sys&lt;/code> was still to come from Intel. The file name in your error decides which one applies.&lt;/p>
&lt;p>&lt;strong>VAN 289 and VAN 302&lt;/strong> are both off the index and both say software is interfering. For 289, Riot&amp;rsquo;s steps are a restart, a clean boot, closing anything that survives it (Riot names overlays and capture tools), then temporarily uninstalling any antivirus added on top of Windows Security. For 302, disable the antivirus and restart. If the error stays, temporarily uninstall it and close anything that modifies the game.&lt;/p>
&lt;h2 id="security-features">Windows security features: Secure Boot, TPM and Memory Integrity&lt;/h2>
&lt;p>Codes in this family: VAN 9001, 9002, 9003, 9005, 9090, the four RESTRICTION codes other than 3, and STATUS_SB_POLICY.&lt;/p>
&lt;p>Most of this family is fixed in the PC&amp;rsquo;s firmware, and a firmware change made in the wrong order can stop Windows from booting. Two warnings come before any of it. Riot&amp;rsquo;s Secure Boot guide says that if &lt;code>msinfo32&lt;/code> shows BIOS Mode as Legacy, switching to UEFI before converting the drive from MBR to GPT leaves Windows unbootable. And Microsoft lists clearing or disabling the TPM, a BIOS or UEFI firmware update, and boot manager changes among the events that put a BitLocker-protected PC into recovery. Find your BitLocker recovery key before you start. The &lt;a href="https://techfuelhq.com/gaming/secure-boot-not-enabled-fix-2026/">Secure Boot fix&lt;/a> walks the safe order step by step, so this section only maps each code to the feature it wants.&lt;/p>
&lt;div class="table-wrap">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th scope="col">Code&lt;/th>
&lt;th scope="col">What Vanguard wants&lt;/th>
&lt;th scope="col">Where to fix it&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td data-label="Code">VAN 9003&lt;/td>
&lt;td data-label="What Vanguard wants">Secure Boot on&lt;/td>
&lt;td data-label="Where to fix it">&lt;a href="https://techfuelhq.com/gaming/secure-boot-not-enabled-fix-2026/">Secure Boot fix&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">RESTRICTION: 1&lt;/td>
&lt;td data-label="What Vanguard wants">Secure Boot verified, in UEFI mode&lt;/td>
&lt;td data-label="Where to fix it">Secure Boot fix; if it is already on, Riot says update the BIOS&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">RESTRICTION: 4&lt;/td>
&lt;td data-label="What Vanguard wants">A Secure Boot configuration Vanguard can verify&lt;/td>
&lt;td data-label="Where to fix it">Secure Boot fix&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">STATUS_SB_POLICY&lt;/td>
&lt;td data-label="What Vanguard wants">Secure Boot keys at factory default&lt;/td>
&lt;td data-label="Where to fix it">Secure Boot fix (key reset), even when Secure Boot is on&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">VAN 9001&lt;/td>
&lt;td data-label="What Vanguard wants">TPM 2.0 enabled&lt;/td>
&lt;td data-label="Where to fix it">Secure Boot fix, which also covers TPM&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">VAN 9090&lt;/td>
&lt;td data-label="What Vanguard wants">TPM 2.0 initialized again, for example after a clear&lt;/td>
&lt;td data-label="Where to fix it">Secure Boot fix, which also covers TPM&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">VAN 9005&lt;/td>
&lt;td data-label="What Vanguard wants">TPM 2.0 and UEFI firmware, for VBS&lt;/td>
&lt;td data-label="Where to fix it">TPM, then Secure Boot, then Memory Integrity&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">RESTRICTION: 5&lt;/td>
&lt;td data-label="What Vanguard wants">Memory Integrity (HVCI/VBS) running&lt;/td>
&lt;td data-label="Where to fix it">&lt;a href="https://techfuelhq.com/gaming/memory-integrity-on-or-off-2026/">Memory Integrity on or off&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">RESTRICTION (no number)&lt;/td>
&lt;td data-label="What Vanguard wants">Whatever the message names&lt;/td>
&lt;td data-label="Where to fix it">The matching row above, or Windows Update&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">VAN 9002&lt;/td>
&lt;td data-label="What Vanguard wants">Exploit Protection at defaults&lt;/td>
&lt;td data-label="Where to fix it">Windows Security, below&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;p>Read before you change anything. Riot&amp;rsquo;s guides all start from &lt;code>msinfo32&lt;/code>. BIOS Mode should read UEFI and Secure Boot State On. Virtualization-based security should read Running. Kernel DMA Protection reading On means IOMMU is active. All four right? Then the firmware is not your problem.&lt;/p>
&lt;p>Three details are specific to Vanguard and easy to miss.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>A VAN: RESTRICTION wants firmware TPM.&lt;/strong> Riot&amp;rsquo;s TPM guide says a discrete TPM 2.0 module satisfies VAN 9001, but a RESTRICTION needs Intel PTT or AMD fTPM. A plug-in module alone will not clear it.&lt;/li>
&lt;li>&lt;strong>One RESTRICTION cannot be met on Windows 10.&lt;/strong> When the message asks for Windows build 26100 or newer, Riot says that is only supported on Windows 11. A build 19045 requirement is reachable with Windows updates. Microsoft&amp;rsquo;s Settings, System, About page shows which version you run.&lt;/li>
&lt;li>&lt;strong>The numberless RESTRICTION can ask for IOMMU.&lt;/strong> Riot&amp;rsquo;s article lists it beside TPM, Secure Boot and Memory Integrity, and its &lt;a href="https://support.riotgames.com/en-us/riot/support-tools/enabling-iommu" rel="noopener">IOMMU guide&lt;/a> covers it.&lt;/li>
&lt;/ul>
&lt;p>VAN 9002 never touches firmware. The in-game message names Control Flow Guard. Search Start for &lt;strong>exploit protection&lt;/strong> and open it. Under System settings, set Control flow guard, Data Execution Prevention, Force randomization for images, Randomized memory allocation, High-entropy ASLR, Validate exception chains and Validate heap integrity to &lt;strong>Use default&lt;/strong>. Then, under Program settings, remove every entry for Riot Games, Riot Vanguard or a Riot game, and restart.&lt;/p>
&lt;h2 id="platform">Platform limits: virtual machines, old Windows and the install drive&lt;/h2>
&lt;p>Codes in this family: VAN 138, 9100, 9004, 9006, -101, RESTRICTION 3.&lt;/p>
&lt;p>These are about where the game runs and what it runs on.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>VAN 138 and 9100:&lt;/strong> Vanguard does not run in a virtual machine or an unsupported virtualized environment, and Riot&amp;rsquo;s first step is a regular Windows install. That rules out a Windows guest on Proxmox even with a passed-through GPU, so the &lt;a href="https://techfuelhq.com/tutorials/gpu-passthrough-proxmox-vm-2026/">GPU passthrough guide&lt;/a> is a setup for other games. VAN 138&amp;rsquo;s article also has you check the firewall.&lt;/li>
&lt;li>&lt;strong>VAN 9004 and 9006:&lt;/strong> Vanguard needs Windows 10 20H1 or newer. Install every Windows update and restart.&lt;/li>
&lt;li>&lt;strong>VAN -101:&lt;/strong> League&amp;rsquo;s system requirements are not met. Riot&amp;rsquo;s answer is a supported computer or operating system, or a ticket if you are sure the PC meets them.&lt;/li>
&lt;li>&lt;strong>RESTRICTION 3:&lt;/strong> Vanguard validates the game only from the internal drive Windows is installed on. A game on a USB drive or a second internal drive trips it. Reinstall the game to the Windows drive, usually C:, and restart.&lt;/li>
&lt;/ul>
&lt;h2 id="van-216">VAN 216: a 30-minute cooldown&lt;/h2>
&lt;p>VAN 216 is not on Riot&amp;rsquo;s index. Riot&amp;rsquo;s article, dated July 17, 2026, says it can appear when too many launch attempts happen in a short period. Wait at least 30 minutes without pressing Play. Pressing Play early restarts the clock.&lt;/p>
&lt;h2 id="van-152">VAN 152: a hardware ban&lt;/h2>
&lt;p>Nothing on the PC fixes VAN 152. Riot says the device has a hardware ID (HWID) ban, and that reinstalling Vanguard or the game, changing the connection or restarting will not remove it. Two more facts matter. Reinstalling the game or deleting the banned account does not lift the ban. And another account, a friend&amp;rsquo;s or a family member&amp;rsquo;s, that logs in on the banned PC is restricted there and banned for a set period. So do not log in there at all.&lt;/p>
&lt;p>Riot&amp;rsquo;s process is the only route back. The &lt;a href="https://support.riotgames.com/en-us/riot/penalties/understanding-hardware-id-hwid-bans" rel="noopener">HWID ban article&lt;/a> explains which bans Player Support will re-evaluate. This page does not cover anything else.&lt;/p>
&lt;h2 id="vgc-service">When the vgc service will not start&lt;/h2>
&lt;p>A vgc service that is stopped, or keeps stopping, belongs to the &lt;a href="#not-running">not-running family&lt;/a>. Riot&amp;rsquo;s service article covers setting vgc to Automatic and clicking Start. Neither that article nor Riot&amp;rsquo;s uninstall article mentions Windows service errors such as 1053 or &amp;ldquo;Incorrect function&amp;rdquo;, so the documented route past a service that refuses to start is the manual reinstall. That means &lt;code>sc delete vgc&lt;/code>, &lt;code>sc delete vgk&lt;/code>, a restart, then a fresh install from the Riot Client.&lt;/p>
&lt;h2 id="ticket">Before you file a ticket&lt;/h2>
&lt;p>Riot&amp;rsquo;s index says to submit a ticket with logs when your exact code is not listed, and most per-code articles end the same way. Riot&amp;rsquo;s &lt;a href="https://support.riotgames.com/en-us/riot/performance/gathering-logs-riot-repair-tool-rrt" rel="noopener">Riot Repair Tool&lt;/a> gathers them. Download it, run it as administrator on Windows, pick the game, and attach the &lt;code>.zip&lt;/code> it creates. Write down the full error text first. For Incompatible OEM Driver, Riot asks for the driver name from the message.&lt;/p>
&lt;h2 id="method">How this table was built&lt;/h2>
&lt;p>I opened Riot&amp;rsquo;s index and all 47 articles it links on 2026-10-02, along with every Riot guide cited above, and wrote each meaning in short form from Riot&amp;rsquo;s own text. The date column is the date each article displays, which matches the article&amp;rsquo;s own update stamp.&lt;/p>
&lt;p>The off-index codes came from a URL sweep. On 2026-10-02, between 10:49 and 10:55 UTC, a script requested Riot&amp;rsquo;s article address for every VAN code from -300 to 1,100, 2,200 to 2,300 and 9,000 to 9,120, under all three paths Riot files these articles under, plus RESTRICTION 2 to 12. That is 4,880 addresses. 45 answered 200. One answered 301, a second address for VAN 152 that redirects to its article. The rest were 404. Every 200 is either on the index or one of the five off-index rows.&lt;/p>
&lt;p>The sweep has a blind spot. Named errors like STATUS_SB_POLICY cannot be guessed by number, so a named code Riot has not linked would not show up here. No fix on this page was run on a TechFuelHQ machine. The steps are Riot&amp;rsquo;s, and the grouping, the fixability column and the alias notes are mine.&lt;/p></description></item><item><title>BattlEye Errors: What the Number in Brackets Means</title><link>https://techfuelhq.com/gaming/battleye-errors-fix-2026/</link><pubDate>Fri, 02 Oct 2026 00:00:00 -0500</pubDate><author>LK Wood IV</author><guid>https://techfuelhq.com/gaming/battleye-errors-fix-2026/</guid><description>&lt;p>By &lt;a href="https://techfuelhq.com/author/lk-wood-iv/">LK Wood IV&lt;/a> · Published 2026-10-02 · ~13 min read · St. Louis County, MO&lt;/p>
&lt;div class="verdict-card">
&lt;p class="callout-label">TL;DR · Fix BattlEye&lt;/p>
&lt;ul style="margin:0.25rem 0 0 0;padding-left:1.25rem;line-height:1.55;">
&lt;li>&lt;strong>Startup failed, failed to install, stuck at "Starting BattlEye Service":&lt;/strong> BattlEye's own order is security exceptions, then delete &lt;code>C:\Program Files (x86)\Common Files\BattlEye&lt;/code>, then run the game's &lt;code>_BE&lt;/code> launcher as administrator.&lt;/li>
&lt;li>&lt;strong>A number in brackets?&lt;/strong> It is a Windows error code. 1053 is a start timeout, 1058 a disabled service, 1072 a service marked for deletion, 1450 a resource shortage, 1275 a blocked driver. Each has its own section below.&lt;/li>
&lt;li>&lt;strong>Driver Load Error 1275:&lt;/strong> BattlEye blames Windows 11's Kernel-mode Hardware-enforced Stack Protection and says to switch that one toggle off.&lt;/li>
&lt;li>&lt;strong>Kicked in game?&lt;/strong> Query Timeout, Bad Service Version and Corrupted Memory are kick messages with different fixes. See the kick table.&lt;/li>
&lt;li>&lt;strong>"(4, 30001770)" and similar install codes&lt;/strong> have no documented meaning on any BattlEye or publisher page I found. Use the install procedure.&lt;/li>
&lt;/ul>
&lt;/div>
&lt;p>BattlEye failures arrive as one of two kinds of text. The first kind stops the launch: &amp;ldquo;BattlEye Service startup failed&amp;rdquo;, &amp;ldquo;Failed to install BattlEye Service&amp;rdquo;, &amp;ldquo;Failed to initialize BattlEye Service: Driver Load Error (1072)&amp;rdquo;. The second kind throws you out of a server after you are in: Query Timeout, Bad Service Version, Corrupted Memory #0. They have different causes and different fixes, and this page keeps them apart.&lt;/p>
&lt;p>If you have an exact message, jump to it: &lt;a href="#bracket-codes">the bracket-code table&lt;/a>, &lt;a href="#install-repair">the install and startup repair&lt;/a>, &lt;a href="#error-1053">1053&lt;/a>, &lt;a href="#error-1058">1058&lt;/a>, &lt;a href="#error-1072">1072&lt;/a>, &lt;a href="#error-1450">1450&lt;/a>, &lt;a href="#error-1275">1275&lt;/a>, &lt;a href="#kernel-debug-test-signing">kernel debugging or test-signing&lt;/a>, &lt;a href="#kicks">kick messages&lt;/a>, &lt;a href="#gta">GTA V&lt;/a>, &lt;a href="#other-games">other games&lt;/a> or &lt;a href="#uninstall">uninstall&lt;/a>.&lt;/p>
&lt;p>The fixes are BattlEye&amp;rsquo;s, from its FAQ, and the game publishers&amp;rsquo;. What I added is the part none of them prints: what the number in brackets means, read from Microsoft&amp;rsquo;s own error table, and which fix each number points to.&lt;/p>
&lt;h2 id="what-battleye-installs">What BattlEye puts on your PC&lt;/h2>
&lt;p>Three pieces matter when you troubleshoot. The &lt;strong>BE Launcher&lt;/strong> sits in the game folder, usually as an executable ending in &lt;code>_BE&lt;/code>; Rockstar&amp;rsquo;s examples are GTA5_BE and GTA5_Enhanced_BE. The &lt;strong>BE Service&lt;/strong> lives in &lt;code>C:\Program Files (x86)\Common Files\BattlEye&lt;/code> as BEService.exe, registered with Windows under the service name BEService. BattlEye&amp;rsquo;s kernel driver is BEDaisy.sys, the file Windows names when it blocks BattlEye with error 1275.&lt;/p>
&lt;p>BattlEye&amp;rsquo;s FAQ is blunt about when it runs. It is active only while you play a BattlEye-protected game with BattlEye enabled, and &amp;ldquo;any other time it will never run in any way.&amp;rdquo; Ubisoft&amp;rsquo;s help page says the same for its games and adds that if you uninstall BattlEye, the game will not launch.&lt;/p>
&lt;p>That timing explains the launcher&amp;rsquo;s log. A January 2025 question on Microsoft Q&amp;amp;A quotes it line by line:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>10:24:48: Starting BattlEye Service...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>10:24:56: Failed to start BattlEye Service (1053).
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>10:24:56: Installing BattlEye Service...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>10:25:03: Failed to install BattlEye Service (4, 5000041d).
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The launcher tries to start the service, and when that fails it tries to reinstall it. Two errors in a row is one problem, and the bracketed number on the first line is the one to read.&lt;/p>
&lt;h2 id="bracket-codes">The number in brackets is a Windows error code&lt;/h2>
&lt;p>BattlEye publishes no list of these numbers. The two it does explain line up exactly with Microsoft&amp;rsquo;s System Error Codes reference. Its 1275 entry is about Windows refusing to load BEDaisy.sys, and Microsoft&amp;rsquo;s 1275 is ERROR_DRIVER_BLOCKED, &amp;ldquo;This driver has been blocked from loading.&amp;rdquo; Its 577 entry is about driver signatures, and Microsoft&amp;rsquo;s 577 is ERROR_INVALID_IMAGE_HASH, &amp;ldquo;Windows cannot verify the digital signature for this file.&amp;rdquo; The Microsoft Q&amp;amp;A log above adds a third match. Beside the launcher&amp;rsquo;s 1053, the user&amp;rsquo;s Event Viewer said the service &amp;ldquo;did not respond to the start or control request in a timely fashion&amp;rdquo;, which is Microsoft&amp;rsquo;s 1053 text word for word.&lt;/p>
&lt;p>So read the number against Microsoft&amp;rsquo;s table, then go to the fix it points at.&lt;/p>
&lt;div class="table-wrap table-wrap--stack">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th scope="col">Code&lt;/th>
&lt;th scope="col">Microsoft&amp;rsquo;s name&lt;/th>
&lt;th scope="col">Microsoft&amp;rsquo;s meaning&lt;/th>
&lt;th scope="col">What it means for BattlEye&lt;/th>
&lt;th scope="col">Fix&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td data-label="Code">1053&lt;/td>
&lt;td data-label="Microsoft&amp;rsquo;s name">ERROR_&lt;wbr>SERVICE_&lt;wbr>REQUEST_&lt;wbr>TIMEOUT&lt;/td>
&lt;td data-label="Microsoft&amp;rsquo;s meaning">The service did not respond to the start or control request in a timely fashion.&lt;/td>
&lt;td data-label="What it means for BattlEye">BEService was launched but never reported that it was running.&lt;/td>
&lt;td data-label="Fix">&lt;a href="#error-1053">1053&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">1058&lt;/td>
&lt;td data-label="Microsoft&amp;rsquo;s name">ERROR_&lt;wbr>SERVICE_&lt;wbr>DISABLED&lt;/td>
&lt;td data-label="Microsoft&amp;rsquo;s meaning">The service cannot be started, either because it is disabled or because it has no enabled devices associated with it.&lt;/td>
&lt;td data-label="What it means for BattlEye">BEService&amp;rsquo;s startup type is set to Disabled.&lt;/td>
&lt;td data-label="Fix">&lt;a href="#error-1058">1058&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">1060&lt;/td>
&lt;td data-label="Microsoft&amp;rsquo;s name">ERROR_&lt;wbr>SERVICE_&lt;wbr>DOES_&lt;wbr>NOT_&lt;wbr>EXIST&lt;/td>
&lt;td data-label="Microsoft&amp;rsquo;s meaning">The specified service does not exist as an installed service.&lt;/td>
&lt;td data-label="What it means for BattlEye">What &lt;code>sc query BEService&lt;/code> prints when BattlEye is not installed at all.&lt;/td>
&lt;td data-label="Fix">&lt;a href="#check-service">Check the service&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">1072&lt;/td>
&lt;td data-label="Microsoft&amp;rsquo;s name">ERROR_&lt;wbr>SERVICE_&lt;wbr>MARKED_&lt;wbr>FOR_&lt;wbr>DELETE&lt;/td>
&lt;td data-label="Microsoft&amp;rsquo;s meaning">The specified service has been marked for deletion.&lt;/td>
&lt;td data-label="What it means for BattlEye">An old BEService is half removed and blocks the new one.&lt;/td>
&lt;td data-label="Fix">&lt;a href="#error-1072">1072&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">1275&lt;/td>
&lt;td data-label="Microsoft&amp;rsquo;s name">ERROR_&lt;wbr>DRIVER_&lt;wbr>BLOCKED&lt;/td>
&lt;td data-label="Microsoft&amp;rsquo;s meaning">This driver has been blocked from loading.&lt;/td>
&lt;td data-label="What it means for BattlEye">Windows refused BEDaisy.sys. BattlEye ties it to stack protection.&lt;/td>
&lt;td data-label="Fix">&lt;a href="#error-1275">1275&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">1450&lt;/td>
&lt;td data-label="Microsoft&amp;rsquo;s name">ERROR_&lt;wbr>NO_&lt;wbr>SYSTEM_&lt;wbr>RESOURCES&lt;/td>
&lt;td data-label="Microsoft&amp;rsquo;s meaning">Insufficient system resources exist to complete the requested service.&lt;/td>
&lt;td data-label="What it means for BattlEye">Windows ran short of a system resource while starting BattlEye.&lt;/td>
&lt;td data-label="Fix">&lt;a href="#error-1450">1450&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">577&lt;/td>
&lt;td data-label="Microsoft&amp;rsquo;s name">ERROR_&lt;wbr>INVALID_&lt;wbr>IMAGE_&lt;wbr>HASH&lt;/td>
&lt;td data-label="Microsoft&amp;rsquo;s meaning">Windows cannot verify the digital signature for this file.&lt;/td>
&lt;td data-label="What it means for BattlEye">BattlEye documents it only for Windows 7 without SHA-2 support.&lt;/td>
&lt;td data-label="Fix">&lt;a href="#legacy">Legacy&lt;/a>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;p>The other number format, &amp;ldquo;Failed to install BattlEye Service (4, 30001770)&amp;rdquo; or &amp;ldquo;(4, 40000430)&amp;rdquo;, is not in Microsoft&amp;rsquo;s table, and neither BattlEye nor any publisher page I read explains it. I do not decode those. Epic&amp;rsquo;s help page for one of them, (4, 50000005), gives the same steps as the &lt;a href="#install-repair">install and startup repair&lt;/a> below, plus a driver update, so that procedure is where every &amp;ldquo;(4, &amp;hellip;)&amp;rdquo; code goes.&lt;/p>
&lt;h2 id="check-service">Check the service before you change anything&lt;/h2>
&lt;p>Open Command Prompt and run:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bat" data-lang="bat">&lt;span style="display:flex;">&lt;span>sc query BEService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sc qc BEService
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>On a PC with no BattlEye game installed, both commands fail with 1060. Read on 2026-10-02 on Windows 11 Home 25H2, build 26200.9457, &lt;code>sc query BEService&lt;/code> printed &lt;code>[SC] EnumQueryServicesStatus:OpenService FAILED 1060:&lt;/code> followed by &amp;ldquo;The specified service does not exist as an installed service.&amp;rdquo; If you see that with a BattlEye game installed, the service never registered, and the launcher needs to install it.&lt;/p>
&lt;p>When the service exists, &lt;code>sc query&lt;/code> shows its STATE. STOPPED is normal while no game is running, because BattlEye only runs with the game. &lt;code>sc qc&lt;/code> shows START_TYPE. If that line reads &lt;code>4 DISABLED&lt;/code>, you have the &lt;a href="#error-1058">1058 problem&lt;/a> whatever message the launcher printed.&lt;/p>
&lt;h2 id="install-repair">The install and startup repair, in BattlEye&amp;rsquo;s order&lt;/h2>
&lt;p>BattlEye&amp;rsquo;s FAQ gives one procedure for five messages: &amp;ldquo;Failed to install BattlEye Service&amp;rdquo;, &amp;ldquo;BattlEye Service installation failed&amp;rdquo;, &amp;ldquo;Failed to start BattlEye Service&amp;rdquo;, &amp;ldquo;BattlEye Service startup failed&amp;rdquo; and &amp;ldquo;Failed to initialize BattlEye Service&amp;rdquo;. A launcher stuck at &amp;ldquo;Starting BattlEye Service&amp;hellip;&amp;rdquo; points back to the same entry. Rockstar&amp;rsquo;s 1072 article and Epic&amp;rsquo;s (4, 50000005) article repeat it almost line for line. Do the steps in order and launch the game after each one.&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Add security exceptions.&lt;/strong> BattlEye names two targets: BEService.exe and BEService_x64.exe in the game&amp;rsquo;s BattlEye folder, and the whole &lt;code>C:\Program Files (x86)\Common Files\BattlEye&lt;/code> folder. In Windows Security that is Virus &amp;amp; threat protection &amp;gt; Manage settings &amp;gt; Add or remove exclusions, and Microsoft calls an exclusion safer than turning protection off. Rockstar warns that AVG and Trend Micro may still block GTA Online with BattlEye excluded, and its suggestion there is to disable them temporarily or use another antivirus.&lt;/li>
&lt;li>&lt;strong>Delete the BE Service folder.&lt;/strong> BattlEye says a permission problem in that folder causes the same errors. Delete &lt;code>C:\Program Files (x86)\Common Files\BattlEye&lt;/code> and launch the game; the launcher installs a fresh copy.&lt;/li>
&lt;li>&lt;strong>Run the BE Launcher as administrator.&lt;/strong> Right-click the executable ending in &lt;code>_BE&lt;/code> in the game folder, choose Properties, open the Compatibility tab, tick Run this program as an administrator and click OK. BattlEye says this normally happens automatically.&lt;/li>
&lt;li>&lt;strong>Make sure the files are there.&lt;/strong> BattlEye&amp;rsquo;s first-install entry says to verify the game&amp;rsquo;s files in its launcher, and to run the first install from an administrator account or a standard account with UAC enabled, so the launcher can ask for the rights it needs.&lt;/li>
&lt;li>&lt;strong>&amp;ldquo;Update failed&amp;rdquo; first?&lt;/strong> BattlEye downloads updates before the game starts. Allow the BE Launcher executable through your firewall without restrictions.&lt;/li>
&lt;li>&lt;strong>Find what is blocking it.&lt;/strong> BattlEye&amp;rsquo;s own last word is that unknown software, or a broken Windows, is in the way, and its definitive fix is a repair reinstallation of Windows. I would do two cheaper things before that. A &lt;a href="https://support.microsoft.com/en-us/windows/experience/startup-boot/how-to-perform-a-clean-boot-in-windows" rel="noopener">Microsoft clean boot&lt;/a> starts Windows without third-party services and startup apps, which tells you whether something you installed is the blocker. Microsoft&amp;rsquo;s System File Checker, run as &lt;code>DISM.exe /Online /Cleanup-image /Restorehealth&lt;/code> and then &lt;code>sfc /scannow&lt;/code> in an administrator prompt, repairs damaged system files.&lt;/li>
&lt;/ol>
&lt;p>For GTA V, Rockstar lists where the game&amp;rsquo;s BattlEye folder sits by default, which is the folder step 1 needs:&lt;/p>
&lt;div class="table-wrap table-wrap--stack">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th scope="col">Launcher&lt;/th>
&lt;th scope="col">Default BattlEye folder (Rockstar)&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td data-label="Launcher">Rockstar Games Launcher&lt;/td>
&lt;td data-label="Default BattlEye folder (Rockstar)">&lt;code>C:\Program Files\Rockstar Games\Grand Theft Auto V\BattlEye&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Launcher">Steam&lt;/td>
&lt;td data-label="Default BattlEye folder (Rockstar)">&lt;code>C:\Program Files (x86)\Steam\steamapps\common\Grand Theft Auto V\BattlEye&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Launcher">Epic Games Launcher&lt;/td>
&lt;td data-label="Default BattlEye folder (Rockstar)">&lt;code>C:\Program Files\Epic Games\GTAV\BattlEye&lt;/code>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;p>Other games follow the same pattern: the game&amp;rsquo;s install folder, then BattlEye. BattlEye&amp;rsquo;s own example is &lt;code>C:\Program Files (x86)\Steam\steamapps\common\Destiny 2\battleye&lt;/code>.&lt;/p>
&lt;h2 id="error-1053">Failed to start BattlEye Service (1053)&lt;/h2>
&lt;p>Windows started BEService and waited, and the service never reported back. The Microsoft Q&amp;amp;A user&amp;rsquo;s Event Viewer had a second line that shows the wait: &amp;ldquo;A timeout was reached (30000 milliseconds) while waiting for the BattlEye Service service to connect.&amp;rdquo; The service sat silent for the whole 30-second window. That suggests something held it.&lt;/p>
&lt;p>BattlEye&amp;rsquo;s own procedure puts security software first, and it is the cheapest suspect, so start with step 1 of the &lt;a href="#install-repair">repair&lt;/a>. Add the exclusions, delete the Common Files\BattlEye folder and launch again. If 1053 survives both, run the clean boot from step 6. A 1053 that disappears in a clean boot is caused by a third-party program.&lt;/p>
&lt;h2 id="error-1058">Failed to start BattlEye Service (1058)&lt;/h2>
&lt;p>This one is mechanical. Windows will not start a service whose startup type is Disabled, and 1058 is Windows saying so. Confirm it with &lt;code>sc qc BEService&lt;/code>; the START_TYPE line reads &lt;code>4 DISABLED&lt;/code>.&lt;/p>
&lt;p>Do not &amp;ldquo;fix&amp;rdquo; it by setting the service to Automatic. BattlEye is built to start with the game and stop afterwards, so a service that starts at every boot is not its design. Remove the broken registration and let the launcher make a new one:&lt;/p>
&lt;ol>
&lt;li>Open Command Prompt as administrator and run &lt;code>sc delete BEService&lt;/code>. This is BattlEye&amp;rsquo;s own uninstall command.&lt;/li>
&lt;li>Restart the PC.&lt;/li>
&lt;li>Launch the game through its &lt;code>_BE&lt;/code> launcher, which installs the service again.&lt;/li>
&lt;/ol>
&lt;p>Then find what disabled it, because it will do it again. BattlEye&amp;rsquo;s FAQ gives no reason a game would disable its own service. Tweak and debloat tools change service start types in bulk; the &lt;a href="https://techfuelhq.com/articles/debloat-windows-11-2026/#step-4-the-scripts-and-what-each-one-changes">Windows 11 debloat guide&lt;/a> covers what the two big scripts change. Check any &amp;ldquo;services optimizer&amp;rdquo; you have run.&lt;/p>
&lt;h2 id="error-1072">Driver Load Error (1072)&lt;/h2>
&lt;p>1072 means Windows already holds a BEService that has been marked for deletion. Microsoft&amp;rsquo;s DeleteService documentation says the entry stays until every open handle to the service is closed and the service has stopped, and that if it cannot be stopped, &amp;ldquo;the database entry is removed when the system is restarted.&amp;rdquo; Until then, nothing can install a new one under the same name.&lt;/p>
&lt;p>So restart first. Choose Restart, not Shut down. With Fast Startup on, Microsoft documents that a shutdown saves the kernel memory image, loaded drivers included, to Hiberfil.sys and loads it back at the next start. Microsoft&amp;rsquo;s &lt;a href="https://learn.microsoft.com/en-us/troubleshoot/windows-client/setup-upgrade-and-drivers/fast-startup-causes-system-hibernation-shutdown-fail" rel="noopener">fast startup troubleshooting article&lt;/a> says &amp;ldquo;The Fast Startup setting doesn&amp;rsquo;t apply to Restart,&amp;rdquo; and that a restart still performs a full boot cycle. That article is written for Windows 10; I would assume the same on Windows 11 and pick Restart either way.&lt;/p>
&lt;p>After the restart, Rockstar&amp;rsquo;s 1072 article for GTA Online and Red Dead Online is the generic repair: exclude the game&amp;rsquo;s BattlEye folder in your antivirus, delete &lt;code>C:\Program Files (x86)\Common Files\BattlEye&lt;/code>, relaunch, and run the BE Launcher as administrator.&lt;/p>
&lt;h2 id="error-1450">Driver Load Error (1450)&lt;/h2>
&lt;p>BattlEye&amp;rsquo;s FAQ has no entry for 1450. Microsoft&amp;rsquo;s meaning is that Windows did not have enough of a system resource to finish the request, and for BattlEye the request is loading its kernel driver.&lt;/p>
&lt;p>Restart the PC first. If 1450 comes back right after a fresh restart, something that loads with Windows is holding the resource, and the clean boot from &lt;a href="#install-repair">step 6&lt;/a> is the way to find it. Hardware monitoring and RGB utilities that load their own drivers are where I would look first, because BattlEye&amp;rsquo;s FAQ already blocks some of that category for using drivers with known security issues (&lt;a href="#side-effects">side effects&lt;/a>).&lt;/p>
&lt;h2 id="error-1275">Driver Load Error (1275) and Hardware-enforced Stack Protection&lt;/h2>
&lt;p>This is the only bracketed code BattlEye fully explains. With error 1275, Windows also shows a popup saying BEDaisy.sys cannot be loaded because of &amp;ldquo;Hardware-enforced Stack Protection&amp;rdquo;. The feature&amp;rsquo;s full name in Windows Security is Kernel-mode Hardware-enforced Stack Protection.&lt;/p>
&lt;p>BattlEye&amp;rsquo;s FAQ entry, which carries no date, says Microsoft started asking Windows 11 users to enable it, that BattlEye has since fixed its side, and that &amp;ldquo;the latest Windows 11 is still blocking any version of our driver whenever this feature is enabled.&amp;rdquo; It says it is waiting for a Windows update to unblock the driver. Until then, BattlEye gives two ways back:&lt;/p>
&lt;ul>
&lt;li>Click &lt;strong>Disable&lt;/strong> in the Windows popup and reboot.&lt;/li>
&lt;li>Open Start, search &amp;ldquo;Core isolation&amp;rdquo;, switch &lt;strong>Kernel-mode Hardware-enforced Stack Protection&lt;/strong> to Off and reboot.&lt;/li>
&lt;/ul>
&lt;p>On security, the two vendors disagree, and you should hear both. BattlEye says turning it off does not lower your security compared to before, because it is a new feature that was not on previously. Microsoft&amp;rsquo;s Learn page on the feature, filed under Windows Server 2025 but listing &amp;ldquo;Windows 11 2022 update or newer&amp;rdquo; as its first prerequisite, says it is off by default and that disabling it &amp;ldquo;downgrades the security of your device&amp;rdquo;, and that you can turn it back on in Windows Security at any time. Microsoft&amp;rsquo;s consumer &lt;a href="https://support.microsoft.com/en-us/windows/security/windows-security/device-security-in-the-windows-security-app" rel="noopener">Device Security help page&lt;/a> describes the same On/Off toggle. The Learn page also lists the prerequisites: Intel CET or AMD shadow-stack hardware, and virtualization-based security with Memory Integrity enabled.&lt;/p>
&lt;p>That last point is why I would switch off this one toggle and leave Memory Integrity alone. BattlEye&amp;rsquo;s 1275 entry names stack protection and says nothing against Memory Integrity. Whether to keep Memory Integrity on is a separate decision with its own trade-offs, covered in &lt;a href="https://techfuelhq.com/gaming/memory-integrity-on-or-off-2026/">Memory Integrity on or off&lt;/a>.&lt;/p>
&lt;p>I read BattlEye&amp;rsquo;s entry on 2026-10-02 and cannot tell from it whether a Windows update has since unblocked the driver. The test is simple. If your BattlEye game launches with the toggle on, it has.&lt;/p>
&lt;h2 id="kernel-debug-test-signing">Kernel Debugging, Test-Signing and &amp;ldquo;Kernel modification detected&amp;rdquo;&lt;/h2>
&lt;p>Three launch errors are about how Windows itself was started.&lt;/p>
&lt;p>&lt;strong>Read this before any command in this section.&lt;/strong> Microsoft&amp;rsquo;s BCDEdit pages warn that changing boot options &amp;ldquo;could render your computer inoperable&amp;rdquo;, and that you might need to suspend BitLocker and Secure Boot before setting them. If your drive uses BitLocker or device encryption, have the 48-digit recovery key in hand before you touch boot settings. Microsoft lists where it might be, starting with your Microsoft account at aka.ms/myrecoverykey, and says its support staff cannot retrieve, provide or recreate a lost key.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&amp;ldquo;Failed to initialize BattlEye Service: Windows Test-Signing Mode not supported.&amp;rdquo;&lt;/strong> Check first. Microsoft says Windows shows a &amp;ldquo;Test Mode&amp;rdquo; watermark in the lower-right corner of the desktop while test-signing is on. If it is there, run &lt;code>Bcdedit.exe -set TESTSIGNING OFF&lt;/code> in an administrator prompt and restart. BattlEye adds that if a piece of hardware only works with signature enforcement disabled, you should look for a newer driver from its vendor, because BattlEye will not run in test-signing mode at all.&lt;/li>
&lt;li>&lt;strong>&amp;ldquo;Failed to initialize BattlEye Service: Kernel Debugging enabled.&amp;rdquo;&lt;/strong> Microsoft&amp;rsquo;s command is &lt;code>bcdedit /debug off&lt;/code>, then a restart. BattlEye&amp;rsquo;s entry links to the same Microsoft page.&lt;/li>
&lt;li>&lt;strong>&amp;ldquo;Windows Kernel modification detected.&amp;rdquo;&lt;/strong> BattlEye says this means a cracked Windows or hack software that disabled Windows security features. Its fix is to repair system files and, failing that, reinstall from a legitimate copy of Windows. No setting fixes this one.&lt;/li>
&lt;/ul>
&lt;h2 id="kicks">In-game kick messages&lt;/h2>
&lt;p>These arrive after the game is running. Each cause and fix below is from BattlEye&amp;rsquo;s FAQ unless the row says otherwise.&lt;/p>
&lt;div class="table-wrap table-wrap--stack">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th scope="col">Kick message&lt;/th>
&lt;th scope="col">BattlEye&amp;rsquo;s cause&lt;/th>
&lt;th scope="col">Fix&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td data-label="Kick message">Query Timeout&lt;/td>
&lt;td data-label="BattlEye&amp;rsquo;s cause">The client is not responding to queries from the server.&lt;/td>
&lt;td data-label="Fix">Check your connection and close unnecessary programs that could interfere with BattlEye.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Kick message">Client not responding&lt;/td>
&lt;td data-label="BattlEye&amp;rsquo;s cause">Your connection or the server&amp;rsquo;s timed out or broke.&lt;/td>
&lt;td data-label="Fix">Update modem or router firmware, make sure Cucusoft Net Guard is not running, then check with your ISP.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Kick message">Bad Client Version&lt;/td>
&lt;td data-label="BattlEye&amp;rsquo;s cause">The BattlEye client in the game folder is outdated.&lt;/td>
&lt;td data-label="Fix">Verify the game&amp;rsquo;s files in its launcher.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Kick message">Bad Service Version&lt;/td>
&lt;td data-label="BattlEye&amp;rsquo;s cause">The BattlEye Service is outdated or not operating properly.&lt;/td>
&lt;td data-label="Fix">Check the launcher for update failures and close unnecessary programs. BattlEye&amp;rsquo;s last resort is a repair install of Windows.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Kick message">BattlEye initialization failed&lt;/td>
&lt;td data-label="BattlEye&amp;rsquo;s cause">BattlEye is not properly installed, or file permissions are wrong.&lt;/td>
&lt;td data-label="Fix">Reinstall BattlEye, then delete the BattlEye folder in &lt;code>C:\Users\[username]\AppData\Local\[game name]&lt;/code>.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Kick message">Corrupted Memory #0&lt;/td>
&lt;td data-label="BattlEye&amp;rsquo;s cause">Low-level software performs a disallowed memory operation.&lt;/td>
&lt;td data-label="Fix">Close unnecessary programs. BattlEye names MSI Dragon Center and MSI SDK; uninstall both and reboot.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Kick message">Corrupted Memory #X&lt;/td>
&lt;td data-label="BattlEye&amp;rsquo;s cause">The game&amp;rsquo;s or system&amp;rsquo;s memory is not what it should be.&lt;/td>
&lt;td data-label="Fix">Close programs, scan for malware, test your RAM.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Kick message">Corrupted Data&lt;/td>
&lt;td data-label="BattlEye&amp;rsquo;s cause">The game installation is not what it should be.&lt;/td>
&lt;td data-label="Fix">Clean reinstall of the game.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Kick message">Corrupted System Integrity&lt;/td>
&lt;td data-label="BattlEye&amp;rsquo;s cause">Core security functions of Windows are broken or corrupted.&lt;/td>
&lt;td data-label="Fix">Antivirus scan, system-file repair, then a repair install.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Kick message">Kick asking you to restart the game&lt;/td>
&lt;td data-label="BattlEye&amp;rsquo;s cause">You clicked &amp;ldquo;Do not ask me again.&amp;rdquo; when the launcher offered to install BattlEye.&lt;/td>
&lt;td data-label="Fix">Run Install_BattlEye.bat in the game&amp;rsquo;s BattlEye folder.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Kick message">&amp;ldquo;Found a disallowed program running on machine&amp;rdquo; (Epic)&lt;/td>
&lt;td data-label="BattlEye&amp;rsquo;s cause">A program BattlEye does not allow is running.&lt;/td>
&lt;td data-label="Fix">Close it fully, restart the game and reconnect. Epic says this is not a ban.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;p>Two of these deserve more than a row. For Bad Service Version I would delete &lt;code>C:\Program Files (x86)\Common Files\BattlEye&lt;/code> and let the launcher install a fresh service before considering a Windows reinstall; BattlEye&amp;rsquo;s description is literally an outdated or broken service. For Corrupted Memory #X, a proper RAM test settles it, and the &lt;a href="https://techfuelhq.com/articles/memory-management-bsod-2026/">MEMORY_MANAGEMENT guide&lt;/a> walks through running MemTest86 so the result means something.&lt;/p>
&lt;h2 id="side-effects">Side effects BattlEye documents&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Stutter or freezes on every key or mouse press&lt;/strong>: BattlEye says this is typically malware or adware reloading into the game. Scan the whole system.&lt;/li>
&lt;li>&lt;strong>SpeedFan or another hardware tool stops working&lt;/strong>: BattlEye blocks software that uses kernel drivers with known security issues cheats can exploit. Update the tool or ask its vendor; BattlEye offers no exception.&lt;/li>
&lt;li>&lt;strong>Random applications get closed&lt;/strong>: BattlEye traced this to NVIDIA&amp;rsquo;s &amp;ldquo;(Ultra-)Low Latency Mode&amp;rdquo; and says to set NVIDIA Control Panel &amp;gt; Manage 3D settings &amp;gt; Global Settings &amp;gt; Low Latency Mode to Off. The entry was written about Windows 10 users and carries no date.&lt;/li>
&lt;li>&lt;strong>Blue screen with BattlEye enabled&lt;/strong>: BattlEye says Driver Verifier causes problems with it. Microsoft&amp;rsquo;s command to clear Driver Verifier is &lt;code>verifier /reset&lt;/code>, then a restart. BattlEye&amp;rsquo;s second step is a BIOS update. Follow your board maker&amp;rsquo;s own update procedure, and do not cut power or restart while it runs. If the crash names a graphics driver, the &lt;a href="https://techfuelhq.com/articles/gpu-driver-crash-fix-2026/">GPU driver crash guide&lt;/a> is the better path.&lt;/li>
&lt;li>&lt;strong>&amp;quot;[INFO] Blocked loading of file&amp;quot; lines in the launcher&lt;/strong>: BattlEye says these never risk a ban and can be ignored if the game works. If they cause trouble, its checklist starts with a stray d3d9.dll, dxgi.dll or dsound.dll in the game folder, and the SYSTEM account needing full access to the game folder.&lt;/li>
&lt;/ul>
&lt;h2 id="gta">GTA V and GTA Online&lt;/h2>
&lt;p>Rockstar&amp;rsquo;s support pages add facts BattlEye&amp;rsquo;s FAQ does not have.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Story Mode does not need BattlEye.&lt;/strong> Rockstar says it only needs to be active for online play, and that depending on your platform you can change &amp;ldquo;the setting or launch option&amp;rdquo; to disable it for Story Mode. GTA Online needs it.&lt;/li>
&lt;li>&lt;strong>&amp;ldquo;BattlEye is required to play GTA Online. Please restart Grand Theft Auto V to enable BattlEye.&amp;rdquo;&lt;/strong> Rockstar gives two causes. Either BattlEye is disabled, which you fix by accepting the restart prompt or ticking the BattlEye checkbox in the Rockstar Games Launcher&amp;rsquo;s Settings, or you are on a Steam Deck.&lt;/li>
&lt;li>&lt;strong>Steam Deck&lt;/strong>: &amp;ldquo;Steam Deck does not support BattlEye for GTA Online.&amp;rdquo; Story Mode works there; GTA Online does not.&lt;/li>
&lt;li>&lt;strong>Community RP servers&lt;/strong>: Rockstar says official Community Servers do not require BattlEye, and their launchers disable it.&lt;/li>
&lt;li>&lt;strong>ReShade and Special_K&lt;/strong>: Rockstar says BattlEye does not work properly with them. The game still launches, but the mods are disabled during play.&lt;/li>
&lt;li>&lt;strong>Launcher names&lt;/strong>: Rockstar&amp;rsquo;s examples are GTA5_BE and GTA5_Enhanced_BE. Set the one you actually launch to run as administrator.&lt;/li>
&lt;/ul>
&lt;p>Rockstar&amp;rsquo;s pages that I read on 2026-10-02 say nothing about BattlEye kicking players out of GTA V Enhanced mid-session. I have no root cause to give you for that cluster of reports. The verified steps are the ones above, plus the &lt;a href="#install-repair">repair procedure&lt;/a> and Rockstar&amp;rsquo;s AVG and Trend Micro warning.&lt;/p>
&lt;h2 id="other-games">Other BattlEye games&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Destiny 2 and Marathon (Bungie).&lt;/strong> BattlEye installs when the game updates. Bungie says that if you deny the install, Destiny 2 will not launch, and that uninstalling BattlEye or launching from the install folder instead of Steam, Microsoft PC or the Epic Games Store gives error PLUOT at sign-in. Error PLUM means BattlEye detected a problem that may break Bungie&amp;rsquo;s terms, and Bungie says PC players should also install the latest Windows update.&lt;/li>
&lt;li>&lt;strong>Rainbow Six Siege (Ubisoft).&lt;/strong> Error 0-0x00001001 means the connection with BattlEye was lost; Ubisoft says restart the game. Error 2-0x00019008 means BattlEye removed you from the match for inactivity; reconnect.&lt;/li>
&lt;li>&lt;strong>War Thunder and Enlisted (Gaijin).&lt;/strong> Gaijin&amp;rsquo;s support article reproduces BattlEye&amp;rsquo;s FAQ, with an Enlisted path as its example folder. The procedures above apply unchanged.&lt;/li>
&lt;li>&lt;strong>DayZ and Arma Reforger (Bohemia).&lt;/strong> Bohemia&amp;rsquo;s support pages say BattlEye bans are global across BattlEye-protected servers and are handled by BattlEye, not Bohemia, so a ban question goes to BattlEye.&lt;/li>
&lt;li>&lt;strong>Fortnite (Epic).&lt;/strong> Epic&amp;rsquo;s help center carries BattlEye articles, including the (4, 50000005) install error and the disallowed-program kick in the table above.&lt;/li>
&lt;/ul>
&lt;p>Seeing &amp;ldquo;Easy Anti-Cheat&amp;rdquo; instead of BattlEye? That is a different service with different fixes, covered in the &lt;a href="https://techfuelhq.com/gaming/easy-anti-cheat-fix-guide-2026/">Easy Anti-Cheat guide&lt;/a>.&lt;/p>
&lt;h2 id="uninstall">How to uninstall or reinstall BattlEye cleanly&lt;/h2>
&lt;p>On Windows, BattlEye&amp;rsquo;s service is registered under the name BEService. To remove it:&lt;/p>
&lt;ol>
&lt;li>Look in the game&amp;rsquo;s BattlEye folder for &lt;strong>Uninstall_BattlEye.bat&lt;/strong>. BattlEye says many games ship it, and running it removes the BE Service completely.&lt;/li>
&lt;li>If there is no such file, or the game is already gone, open Command Prompt as administrator and run &lt;code>sc delete BEService&lt;/code>. Microsoft&amp;rsquo;s sc documentation notes that if the service is running or another process has it open, it is only marked for deletion. That is the 1072 state, and a restart finishes the job.&lt;/li>
&lt;/ol>
&lt;p>Some games remove BattlEye themselves when you uninstall them, BattlEye notes. To put it back, launch the game through its &lt;code>_BE&lt;/code> launcher. If you once declined the install, run &lt;strong>Install_BattlEye.bat&lt;/strong> from the game&amp;rsquo;s BattlEye folder, which is where BattlEye&amp;rsquo;s FAQ puts it. Epic&amp;rsquo;s Fortnite article points to the Common Files\BattlEye folder for that file instead, so check both if one is missing it.&lt;/p>
&lt;h2 id="what-not-to-do">What not to do&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Do not set BEService to Automatic.&lt;/strong> BattlEye runs with the game and stops afterwards. A Disabled service is the fault; Automatic is not the cure.&lt;/li>
&lt;li>&lt;strong>Do not turn your antivirus off as the fix.&lt;/strong> Add the two exclusions BattlEye names. Rockstar&amp;rsquo;s AVG and Trend Micro note is the narrow exception, and even there it says &amp;ldquo;temporarily&amp;rdquo;.&lt;/li>
&lt;li>&lt;strong>Do not paste bcdedit commands you have not checked you need.&lt;/strong> Look for the Test Mode watermark first, have the BitLocker key ready, and change one option at a time.&lt;/li>
&lt;li>&lt;strong>Do not trust a blog&amp;rsquo;s meaning for a &amp;ldquo;(4, &amp;hellip;)&amp;rdquo; install code.&lt;/strong> No BattlEye or publisher page I found documents one. Run the install procedure.&lt;/li>
&lt;li>&lt;strong>Do not reach for a driver-updater utility.&lt;/strong> None of BattlEye&amp;rsquo;s, Rockstar&amp;rsquo;s or Epic&amp;rsquo;s fixes needs one. Epic&amp;rsquo;s article says to update drivers, and the GPU maker&amp;rsquo;s own download page does that.&lt;/li>
&lt;/ul>
&lt;h2 id="legacy">Legacy FAQ entries&lt;/h2>
&lt;p>BattlEye&amp;rsquo;s FAQ still carries advice written for Windows 7 and early Windows 10 builds. I list it here so you can recognize it and skip it.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Driver Load Error (577)&lt;/strong>: BattlEye ties it to SHA-2 signature support on Windows 7 and links a Windows 7 update. On Windows 10 or 11 BattlEye has no entry for 577; run the &lt;a href="#install-repair">install procedure&lt;/a> and the system-file check.&lt;/li>
&lt;li>&lt;strong>Corrupted Memory #0&lt;/strong>: the alternative fix, &amp;ldquo;updating your Windows 10 to version 2004 or higher&amp;rdquo;, is advice for an old Windows 10 build. The MSI Dragon Center and MSI SDK advice in the same entry still applies.&lt;/li>
&lt;li>&lt;strong>&amp;ldquo;Windows cannot access the specified device, path, or file&amp;rdquo;&lt;/strong>: BattlEye blames unsupported Windows 10 Insider builds.&lt;/li>
&lt;li>&lt;strong>The NVIDIA Low Latency Mode entry&lt;/strong> describes Windows 10 users and no driver version, so I treat it as old and still worth one check if apps are being closed.&lt;/li>
&lt;/ul>
&lt;h2 id="sources">Sources&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://www.battleye.com/support/faq/" rel="noopener">BattlEye, FAQ&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/windows/win32/debug/system-error-codes--1000-1299-" rel="noopener">Microsoft Learn, System Error Codes 1000-1299&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/windows/win32/debug/system-error-codes--1300-1699-" rel="noopener">Microsoft Learn, System Error Codes 1300-1699&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/windows/win32/debug/system-error-codes--500-999-" rel="noopener">Microsoft Learn, System Error Codes 500-999&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-deleteservice" rel="noopener">Microsoft Learn, DeleteService function&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/sc-delete" rel="noopener">Microsoft Learn, sc.exe delete&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/sc-config" rel="noopener">Microsoft Learn, sc.exe config&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/windows-hardware/drivers/kernel/distinguishing-fast-startup-from-wake-from-hibernation" rel="noopener">Microsoft Learn, Distinguishing fast startup from wake-from-hibernation&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/troubleshoot/windows-client/setup-upgrade-and-drivers/fast-startup-causes-system-hibernation-shutdown-fail" rel="noopener">Microsoft Learn, Fast startup causes hibernation or shutdown to fail (KB 3211190)&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/windows-server/security/kernel-mode-hardware-stack-protection" rel="noopener">Microsoft Learn, Kernel Mode Hardware-enforced Stack Protection&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://support.microsoft.com/en-us/windows/security/windows-security/device-security-in-the-windows-security-app" rel="noopener">Microsoft Support, Device Security in the Windows Security app&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/bcdedit--debug" rel="noopener">Microsoft Learn, BCDEdit /debug&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/windows-hardware/drivers/install/the-testsigning-boot-configuration-option" rel="noopener">Microsoft Learn, Enable loading of test-signed drivers&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/bcdedit--set" rel="noopener">Microsoft Learn, BCDEdit /set&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/driver-verifier" rel="noopener">Microsoft Learn, Driver Verifier&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://support.microsoft.com/en-us/windows/security/encryption/find-your-bitlocker-recovery-key" rel="noopener">Microsoft Support, Find your BitLocker recovery key&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://support.microsoft.com/en-us/windows/security/threat-malware-protection/virus-and-threat-protection-in-the-windows-security-app" rel="noopener">Microsoft Support, Virus and threat protection in the Windows Security app&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://support.microsoft.com/en-us/windows/experience/startup-boot/how-to-perform-a-clean-boot-in-windows" rel="noopener">Microsoft Support, How to perform a clean boot in Windows&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://support.microsoft.com/en-us/windows/experience/backup-recovery/use-the-system-file-checker-tool-to-repair-missing-or-corrupted-system-files" rel="noopener">Microsoft Support, Use the System File Checker tool&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/answers/questions/3909371/unable-to-play-any-game-using-battleye" rel="noopener">Microsoft Q&amp;amp;A, Unable to play any game using BattlEye (January 2025)&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://support.rockstargames.com/articles/2qX3EkMbz2ahbzhgJXSZ29/failed-to-initialize-battleye-service-driver-load-error-1072" rel="noopener">Rockstar Games Support, Driver Load Error (1072)&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://support.rockstargames.com/articles/1nenwhZlVrJY6CTFeSS2Fx/grand-theft-auto-online-battleye-faq" rel="noopener">Rockstar Games Support, Grand Theft Auto Online BattlEye FAQ&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://support.rockstargames.com/articles/3XfrNcY1EJFkCi7LanUvR1/battleye-is-required-to-play-gta-online-alert-screen" rel="noopener">Rockstar Games Support, BattlEye is required to play GTA Online alert screen&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.epicgames.com/help/fortnite-battle-royale-c-34254770/technical-support-c-38015632/failed-to-install-battleye-service-4-50000005-error-a24912171" rel="noopener">Epic Games Support, Failed to install BattlEye Service (4, 50000005)&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.epicgames.com/help/technical-support-c-36624475/third-party-support-c-40714782/disallowed-program-kick-battleye-a20061018" rel="noopener">Epic Games Support, Disallowed Program Kick&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://safety.bungie.net/hc/en-us/articles/46645302358420-BattlEye-Anti-Cheat-Support-Guide" rel="noopener">Bungie, BattlEye Anti-Cheat Support Guide&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://safety.bungie.net/hc/en-us/articles/46656805642772-Error-Code-PLUM" rel="noopener">Bungie, Error Code PLUM&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.ubisoft.com/en-us/help/connectivity-and-performance/article/information-about-battleye-anti-cheat/000064020" rel="noopener">Ubisoft Help, Information about BattlEye anti-cheat&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.ubisoft.com/en-us/help/rainbow-six-siege/connectivity-and-performance/article/error-code-0-0x00001001-in-rainbow-six-siege/000066027" rel="noopener">Ubisoft Help, Error code 0-0x00001001 in Rainbow Six Siege&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.ubisoft.com/en-us/help/rainbow-six-siege/connectivity-and-performance/article/error-code-2-0x00019008-in-rainbow-six-siege/000066047" rel="noopener">Ubisoft Help, Error code 2-0x00019008 in Rainbow Six Siege&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://support.gaijin.net/hc/en-us/articles/21638218281362-BattlEye-anti-cheat-troubleshooting" rel="noopener">Gaijin Support, BattlEye anti-cheat troubleshooting&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.bohemia.net/en/support/arma-reforger" rel="noopener">Bohemia Interactive, Arma Reforger support&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.bohemia.net/en/support/dayz" rel="noopener">Bohemia Interactive, DayZ support&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>DXGI_ERROR_DEVICE_REMOVED or DEVICE_HUNG: Fixes in Order</title><link>https://techfuelhq.com/articles/dxgi-error-device-removed-2026/</link><pubDate>Fri, 02 Oct 2026 00:00:00 -0500</pubDate><author>LK Wood IV</author><guid>https://techfuelhq.com/articles/dxgi-error-device-removed-2026/</guid><description>&lt;p>A game that closes on a DXGI_ERROR_DEVICE_REMOVED box has lost its graphics device. Most of those boxes carry a second code, written as &amp;ldquo;with Reason&amp;rdquo;, &amp;ldquo;DeviceRemovedReason&amp;rdquo; or just a second hex number. That second code is the part worth reading.&lt;/p>
&lt;p>It comes from a Direct3D function called GetDeviceRemovedReason, which a game calls after the device is gone to ask why. Microsoft&amp;rsquo;s &lt;a href="https://learn.microsoft.com/en-us/windows/win32/api/d3d11/nf-d3d11-id3d11device-getdeviceremovedreason" rel="noopener">GetDeviceRemovedReason reference&lt;/a> lists what it can return: &lt;code>DXGI_ERROR_DEVICE_HUNG&lt;/code>, &lt;code>DXGI_ERROR_DEVICE_REMOVED&lt;/code>, &lt;code>DXGI_ERROR_DEVICE_RESET&lt;/code>, &lt;code>DXGI_ERROR_DRIVER_INTERNAL_ERROR&lt;/code>, &lt;code>DXGI_ERROR_INVALID_CALL&lt;/code> and &lt;code>S_OK&lt;/code>. Epic&amp;rsquo;s &lt;a href="https://dev.epicgames.com/documentation/en-us/unreal-engine/dealing-with-a-gpu-crash-when-using-unreal-engine" rel="noopener">GPU crash guide for Unreal Engine&lt;/a> shows what that looks like in a log: &amp;ldquo;with error DXGI_ERROR_DEVICE_REMOVED with Reason: DXGI_ERROR_DEVICE_HUNG&amp;rdquo;.&lt;/p>
&lt;p>Older guides say &amp;ldquo;D3D device lost&amp;rdquo;. That is a DirectX 9 term for a different condition, such as a full-screen game losing focus. Microsoft&amp;rsquo;s &lt;a href="https://learn.microsoft.com/en-us/windows/uwp/gaming/handling-device-lost-scenarios" rel="noopener">device-removed walkthrough&lt;/a> explains that Direct3D 11 did away with it, and that the graphics adapter can still change or vanish under a game, which is what the device-removed errors report.&lt;/p>
&lt;h2 id="read-your-dialog">Read your dialog&lt;/h2>
&lt;p>Find the second code in this table. The definitions are Microsoft&amp;rsquo;s, from its &lt;a href="https://learn.microsoft.com/en-us/windows/win32/direct3ddxgi/dxgi-error" rel="noopener">DXGI_ERROR reference&lt;/a> and the device-removed walkthrough.&lt;/p>
&lt;div class="table-wrap">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th scope="col">Code&lt;/th>
&lt;th scope="col">Hex&lt;/th>
&lt;th scope="col">Microsoft&amp;rsquo;s definition&lt;/th>
&lt;th scope="col">What it points at for a player&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td data-label="Code">DXGI_ERROR_DEVICE_HUNG&lt;/td>
&lt;td data-label="Hex">0x887A0006&lt;/td>
&lt;td data-label="Microsoft&amp;rsquo;s definition">&amp;ldquo;The application&amp;rsquo;s device failed due to badly formed commands sent by the application.&amp;rdquo; The walkthrough adds that the driver &amp;ldquo;stopped responding&amp;rdquo;.&lt;/td>
&lt;td data-label="What it points at for a player">A GPU hang that Windows reset. The game, the driver, or clocks that cannot hold under load.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">DXGI_ERROR_DEVICE_REMOVED&lt;/td>
&lt;td data-label="Hex">0x887A0005&lt;/td>
&lt;td data-label="Microsoft&amp;rsquo;s definition">&amp;ldquo;The video card has been physically removed from the system, or a driver upgrade for the video card has occurred.&amp;rdquo; The walkthrough adds &amp;ldquo;turned off&amp;rdquo;.&lt;/td>
&lt;td data-label="What it points at for a player">A driver update mid-session, or the card dropping out. In every game, check power and seating.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">DXGI_ERROR_DEVICE_RESET&lt;/td>
&lt;td data-label="Hex">0x887A0007&lt;/td>
&lt;td data-label="Microsoft&amp;rsquo;s definition">&amp;ldquo;The device failed due to a badly formed command. This is a run-time issue.&amp;rdquo;&lt;/td>
&lt;td data-label="What it points at for a player">Epic reads it as likely a crash in a different application. Close other 3D apps.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">DXGI_ERROR_DRIVER_INTERNAL_ERROR&lt;/td>
&lt;td data-label="Hex">0x887A0020&lt;/td>
&lt;td data-label="Microsoft&amp;rsquo;s definition">&amp;ldquo;The driver encountered a problem and was put into the device removed state.&amp;rdquo;&lt;/td>
&lt;td data-label="What it points at for a player">The driver. Update it, or roll back if a new one started it.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Code">DXGI_ERROR_INVALID_CALL&lt;/td>
&lt;td data-label="Hex">0x887A0001&lt;/td>
&lt;td data-label="Microsoft&amp;rsquo;s definition">&amp;ldquo;The application provided invalid parameter data.&amp;rdquo;&lt;/td>
&lt;td data-label="What it points at for a player">The game&amp;rsquo;s own code. Update the game and report it to the developer.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;p>Two limits apply to that last column. Microsoft writes these definitions for developers, so &amp;ldquo;the application&amp;rdquo; is the game, never you. And Epic warns that reason codes &amp;ldquo;are not completely reliable&amp;rdquo;, even while it uses them to sort its own crashes. Use the code to pick a starting point. The scope test below decides the rest.&lt;/p>
&lt;p>One reading holds across every code. Microsoft&amp;rsquo;s &lt;a href="https://learn.microsoft.com/en-us/windows-hardware/drivers/display/timeout-detection-and-recovery" rel="noopener">TDR overview&lt;/a> says a well-written DirectX 10 or later app releases and re-creates its Direct3D device after a reset and keeps working. A game that shows this box and closes did not.&lt;/p>
&lt;h2 id="one-game-or-every-game">One game or every game?&lt;/h2>
&lt;p>This test does more than the code does. Run it before anything else.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>One game, or one game since its last patch, while others run clean at the same settings.&lt;/strong> Start with steps 1 to 3 below. The game or its pairing with your driver is the suspect.&lt;/li>
&lt;li>&lt;strong>Every game that uses DirectX, and the desktop flickers or goes black too.&lt;/strong> That is a system fault. Work steps 4 to 7.&lt;/li>
&lt;li>&lt;strong>It started the day a driver installed.&lt;/strong> Microsoft lists a driver upgrade as one of the four ways a device gets removed. Go to step 2.&lt;/li>
&lt;/ul>
&lt;p>Then check whether Windows logged a GPU timeout at the minute the game closed. Press the Windows key, type &lt;code>powershell&lt;/code>, press Enter, and paste:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-powershell" data-lang="powershell">&lt;span style="display:flex;">&lt;span>Get-WinEvent -FilterHashtable @{LogName=&lt;span style="color:#e6db74">&amp;#39;System&amp;#39;&lt;/span>; ProviderName=&lt;span style="color:#e6db74">&amp;#39;Display&amp;#39;&lt;/span>; Id=&lt;span style="color:#ae81ff">4101&lt;/span>} -MaxEvents &lt;span style="color:#ae81ff">5&lt;/span> | Format-List TimeCreated, Message
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Event 4101 is the one Microsoft&amp;rsquo;s &lt;a href="https://learn.microsoft.com/en-us/archive/technet-wiki/1462.event-id-4101-display-driver-timeout-detection-and-recovery" rel="noopener">archived Event ID 4101 page&lt;/a> gives, with the source Display, as &amp;ldquo;Display driver %1 stopped responding and has successfully recovered.&amp;rdquo; A 4101 at the time of the crash means the GPU hung and Windows reset it, which is the case Microsoft describes as &amp;ldquo;the graphics device stops responding and is reset.&amp;rdquo; The dialog is its second half. That archived page was written for Windows Vista and 7, and it still suggests raising the timeout in the registry; Microsoft&amp;rsquo;s current developer page overrides that, as the section on fixes to skip explains.&lt;/p>
&lt;p>If PowerShell answers in red with &amp;ldquo;No events were found that match the specified selection criteria&amp;rdquo;, no timeout was logged. On Windows 11 25H2 build 26200.9457, read on October 2, 2026, the command needs no administrator rights.&lt;/p>
&lt;h2 id="the-fix-order">The fix order&lt;/h2>
&lt;p>The order is mine, cheapest first, with the vendor behind each step named. Test the game after each one.&lt;/p>
&lt;h3 id="1-restart-and-close-other-3d-apps">1. Restart, and close other 3D apps&lt;/h3>
&lt;p>EA&amp;rsquo;s &lt;a href="https://help.ea.com/en/articles/battlefield/battlefield-6/error-codes/" rel="noopener">Battlefield 6 error-codes page&lt;/a> gives one instruction for DXGI_ERROR_DEVICE_HUNG: fully restart your system. Epic explains why other programs matter. A GPU timeout &amp;ldquo;invalidates all currently running contexts&amp;rdquo;, so another program&amp;rsquo;s GPU crash takes your game down with it. Close browsers with hardware acceleration, video encoders, overlays and any second game before you relaunch.&lt;/p>
&lt;p>If the crash never returns after a restart, you are done.&lt;/p>
&lt;h3 id="2-update-the-game-and-the-driver">2. Update the game and the driver&lt;/h3>
&lt;p>Epic tells anyone reporting a GPU crash to use the latest driver and not to rely on Windows Update or even vendor tools to say it is current. Get it from the AMD, Intel or NVIDIA site. EA&amp;rsquo;s advice for AMD driver errors in Battlefield 6 is the same, with one addition: remove the old drivers first.&lt;/p>
&lt;p>If the crash started with a new driver, roll it back instead. The clean removal, with AMD&amp;rsquo;s tools or DDU in Safe Mode, is &lt;a href="https://techfuelhq.com/articles/gpu-driver-crash-fix-2026/#1-do-a-ddu-clean-reinstall-in-safe-mode">step 1 of the GPU driver crash fix&lt;/a>. On a Radeon card with DX12 crashes in Apex Legends or War Thunder, read that page&amp;rsquo;s &lt;a href="https://techfuelhq.com/articles/gpu-driver-crash-fix-2026/#amd-timeouts-september-2026">September 2026 section&lt;/a> first, which collects what AMD said about those two games.&lt;/p>
&lt;p>Update the game too. INVALID_CALL, and a HUNG reason that only one game throws, both point at the game&amp;rsquo;s code by Microsoft&amp;rsquo;s definitions, and only a patch changes that.&lt;/p>
&lt;h3 id="3-try-the-games-directx-11-mode">3. Try the game&amp;rsquo;s DirectX 11 mode&lt;/h3>
&lt;p>AMD gave this workaround for one case: DX12 driver timeouts in Apex Legends and War Thunder on Adrenalin 26.8.1, as the &lt;a href="https://techfuelhq.com/articles/gpu-driver-crash-fix-2026/#amd-timeouts-september-2026">GPU driver crash fix records&lt;/a>. For other games it is my own suggestion. If the game offers DX11 beside DX12, switch for a session. A crash that stops in DX11 puts the fault in that game&amp;rsquo;s DX12 path or the driver&amp;rsquo;s handling of it, and you can keep playing while a patch arrives. The trade-offs between the two are in &lt;a href="https://techfuelhq.com/gaming/dx12-vs-dx11-fps-2026/">DX12 vs DX11&lt;/a>.&lt;/p>
&lt;h3 id="4-put-everything-back-to-stock">4. Put everything back to stock&lt;/h3>
&lt;p>Intel&amp;rsquo;s &lt;a href="https://www.intel.com/content/www/us/en/support/articles/000036362/graphics.html" rel="noopener">DXGI_ERROR_DEVICE_HUNG article&lt;/a> was written for one case, Prepar3D v4 on a laptop with Intel HD Graphics 620. After a driver update, its next step is to correct unstable overclocking by setting voltage and speed to the system&amp;rsquo;s specifications. Stock means all of it:&lt;/p>
&lt;ul>
&lt;li>any GPU overclock, and any undervolt, including one that ran clean for months&lt;/li>
&lt;li>a factory-overclocked card&amp;rsquo;s boost profile, if its software offers a stock or silent mode&lt;/li>
&lt;li>CPU overclocks, Precision Boost Overdrive and Curve Optimizer offsets&lt;/li>
&lt;li>the XMP or EXPO memory profile&lt;/li>
&lt;/ul>
&lt;p>I count an undervolt that passed a benchmark as unproven here, because the crash comes in one game&amp;rsquo;s scenes and not in the benchmark&amp;rsquo;s. If you tuned the card with one of our guides, the way back is in the &lt;a href="https://techfuelhq.com/articles/how-to-undervolt-gpu-2026/">undervolting guide&lt;/a>, the &lt;a href="https://techfuelhq.com/articles/rtx-5080-undervolt-guide-2026/">RTX 5080 undervolt guide&lt;/a> and the &lt;a href="https://techfuelhq.com/articles/rx-9070-xt-undervolt-2026/">RX 9070 XT undervolt guide&lt;/a>. Play at stock for a few days. If the crash stops, bring the tuning back one piece at a time.&lt;/p>
&lt;p>The same Intel article then caps the game at 60 FPS, tests the memory with a tool such as MemTest, and reinstalls the game as the last step. The frame cap is a cheap test on any game that crashes in its busiest moments.&lt;/p>
&lt;h3 id="5-laptops-pin-the-game-to-the-discrete-gpu">5. Laptops: pin the game to the discrete GPU&lt;/h3>
&lt;p>Microsoft&amp;rsquo;s list of ways a device gets removed includes a system that &amp;ldquo;changes from a power-saving graphics adapter to a performance graphics adapter&amp;rdquo;. That takes two GPUs in one PC, such as a laptop with integrated and discrete graphics. Microsoft&amp;rsquo;s &lt;a href="https://support.microsoft.com/en-us/windows/hardware/display-graphics/optimizations-for-windowed-games-in-windows-11" rel="noopener">windowed games page&lt;/a> gives the path. Open Start &amp;gt; Settings &amp;gt; System &amp;gt; Display &amp;gt; Graphics, select the game under Custom options for apps, choose Options, set Graphics preference to High performance, and select Save. Restart the game.&lt;/p>
&lt;h3 id="6-desktop-timeouts-and-blue-screens-go-to-the-tdr-page">6. Desktop timeouts and blue screens go to the TDR page&lt;/h3>
&lt;p>If the Event 4101 check above found timeouts outside games, or the PC blue-screens with VIDEO_TDR_FAILURE, the problem is no longer one game&amp;rsquo;s dialog. The &lt;a href="https://techfuelhq.com/articles/gpu-driver-crash-fix-2026/#the-fix-path-in-order">GPU driver crash fix&lt;/a> works that path from a clean driver install down, and this page does not repeat it.&lt;/p>
&lt;h3 id="7-removed-in-every-game-power-and-the-card-itself">7. REMOVED in every game: power and the card itself&lt;/h3>
&lt;p>Microsoft&amp;rsquo;s walkthrough describes DEVICE_REMOVED as a device &amp;ldquo;physically removed, turned off, or a driver upgrade has occurred.&amp;rdquo; When it is the reason in every game, at stock clocks, on a fresh driver, I treat it as the card losing power or contact. Shut down, switch the power supply off at its rear switch, unplug the power cord, and touch a bare metal part of the case to ground yourself. Then reseat the card and push every power connector home until it latches. After that, use &lt;a href="https://techfuelhq.com/articles/psu-failure-symptoms-2026/">PSU failure symptoms&lt;/a> to watch the 12V rail under load. If the card is vanishing from Device Manager afterwards, &lt;a href="https://techfuelhq.com/articles/graphics-card-not-detected-2026/">graphics card not detected&lt;/a> follows it from there, and corruption on screen before the crash goes to &lt;a href="https://techfuelhq.com/articles/gpu-artifacts-2026/">GPU artifacts&lt;/a>.&lt;/p>
&lt;p>Microsoft&amp;rsquo;s walkthrough says repeated device-removed errors &amp;ldquo;can also indicate a hardware failure or a bug in the graphics driver.&amp;rdquo; Steps 1 to 6 cover the driver and the settings. What is left is hardware.&lt;/p>
&lt;h2 id="two-fixes-to-skip">Two fixes to skip&lt;/h2>
&lt;h3 id="the-tdrdelay-and-tdrlevel-registry-edits">The TdrDelay and TdrLevel registry edits&lt;/h3>
&lt;p>Older fix pages lead with a registry edit under &lt;code>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers&lt;/code>. Microsoft&amp;rsquo;s &lt;a href="https://learn.microsoft.com/en-us/windows-hardware/drivers/display/tdr-registry-keys" rel="noopener">TDR registry key page&lt;/a> is written for driver developers, and it says &amp;ldquo;End users shouldn&amp;rsquo;t manipulate these registry keys.&amp;rdquo;&lt;/p>
&lt;p>TdrDelay is the timeout itself, 2 seconds by default. Raising it gives a hung GPU more time before Windows resets it, and the clock, driver or power fault that caused the hang is still there. Epic&amp;rsquo;s Unreal Engine guide does set TdrDelay and TdrDdiDelay to 60 seconds, but that guide is for developers whose engine sends long workloads while they build a game, and Epic says the change &amp;ldquo;will not resolve all crashes.&amp;rdquo;&lt;/p>
&lt;p>The TdrLevel edit is worse. In Microsoft&amp;rsquo;s table, TdrLevelOff (0) is &amp;ldquo;Detection disabled&amp;rdquo;. Windows stops looking for a hung GPU at all. The feature exists, in Microsoft&amp;rsquo;s words, &amp;ldquo;to prevent the entire system from becoming unresponsive&amp;rdquo;, so with it off, a hang that would have closed one game can freeze the whole PC instead.&lt;/p>
&lt;h3 id="reinstalling-directx">Reinstalling DirectX&lt;/h3>
&lt;p>Microsoft&amp;rsquo;s &lt;a href="https://support.microsoft.com/en-us/windows/hardware/display-graphics/how-to-install-the-latest-version-of-directx" rel="noopener">DirectX support page&lt;/a> says DirectX 11.3 and 12 ship with Windows 10 and later, that updates come through Windows Update, and that there is no stand-alone package. The &lt;a href="https://www.microsoft.com/en-us/download/details.aspx?id=35" rel="noopener">DirectX End-User Runtime&lt;/a> that fix pages link &amp;ldquo;does not change the version of DirectX&amp;rdquo;. It installs legacy libraries such as D3DX9 for older games. It cannot repair DirectX 12, and it does nothing for a device-removed error. Skip that download entirely.&lt;/p>
&lt;h2 id="why-the-advice-online-disagrees">Why the advice online disagrees&lt;/h2>
&lt;p>Four vendors explain this crash four ways.&lt;/p>
&lt;ul>
&lt;li>Microsoft blames DEVICE_HUNG on badly formed commands from the application, and adds that repeated removals can mean hardware or a driver bug.&lt;/li>
&lt;li>EA&amp;rsquo;s Battlefield 6 page says of DEVICE_HUNG, &amp;ldquo;This error happens when a background app is stuck.&amp;rdquo;&lt;/li>
&lt;li>Intel&amp;rsquo;s DEVICE_HUNG page, written for Prepar3D v4 on Intel HD Graphics 620, runs from a driver update to clocks, a frame cap and memory, and its steps are all on the player&amp;rsquo;s side.&lt;/li>
&lt;li>Epic&amp;rsquo;s list of GPU crash causes runs to content errors, engine bugs, driver bugs, overheating, running out of video memory and other apps.&lt;/li>
&lt;/ul>
&lt;p>They are each describing the slice they can see. Microsoft writes for developers, so the application is the obvious culprit. The other three write for people who cannot change the game&amp;rsquo;s code. Their steps are restarts and drivers first, then clocks. The fix order above follows the same split. The cheap player-side steps come first, a game update covers the developer&amp;rsquo;s side, and hardware comes last.&lt;/p>
&lt;h2 id="game-notes">Game notes&lt;/h2>
&lt;p>&lt;strong>Battlefield 6.&lt;/strong> EA&amp;rsquo;s error-codes page, updated August 11, 2026, says DirectX errors &amp;ldquo;can mean there&amp;rsquo;s an issue with your drivers&amp;rdquo;, asks you to check the game&amp;rsquo;s minimum requirements, and gives a full restart as the fix for DXGI_ERROR_DEVICE_HUNG.&lt;/p>
&lt;p>&lt;strong>Unreal Engine games.&lt;/strong> Epic&amp;rsquo;s guide shows the log line quoted at the top of this page and says the reason is a separate field from the error code. It is written for developers, but the reading carries over. A DEVICE_RESET reason in an Unreal game means, by Epic&amp;rsquo;s account, that another application probably crashed the GPU.&lt;/p>
&lt;p>&lt;strong>Apex Legends on Radeon.&lt;/strong> AMD&amp;rsquo;s statements about DX12 timeouts in Apex Legends and War Thunder are dated and linked in the &lt;a href="https://techfuelhq.com/articles/gpu-driver-crash-fix-2026/#amd-timeouts-september-2026">GPU driver crash fix&lt;/a>.&lt;/p>
&lt;p>For Baldur&amp;rsquo;s Gate 3, FiveM, Arc Raiders, Wuthering Waves and Monster Hunter Wilds, I found no publisher support page that addresses this error as of October 2, 2026. For those, the scope test and the fix order above are the route.&lt;/p>
&lt;h2 id="sources">Sources&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/windows/win32/direct3ddxgi/dxgi-error" rel="noopener">Microsoft Learn, DXGI_ERROR (Winerror.h) (page shows last updated March 15, 2021)&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/windows/uwp/gaming/handling-device-lost-scenarios" rel="noopener">Microsoft Learn, Handle device removed scenarios in Direct3D 11 (page shows last updated October 20, 2022)&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/windows/win32/api/d3d11/nf-d3d11-id3d11device-getdeviceremovedreason" rel="noopener">Microsoft Learn, ID3D11Device::GetDeviceRemovedReason (last updated February 22, 2024)&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/windows-hardware/drivers/display/timeout-detection-and-recovery" rel="noopener">Microsoft Learn, WDDM support for timeout detection and recovery&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/windows-hardware/drivers/display/tdr-registry-keys" rel="noopener">Microsoft Learn, TDR registry keys (last updated November 7, 2025)&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/archive/technet-wiki/1462.event-id-4101-display-driver-timeout-detection-and-recovery" rel="noopener">Microsoft Learn archive, Event ID 4101&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://support.microsoft.com/en-us/windows/hardware/display-graphics/how-to-install-the-latest-version-of-directx" rel="noopener">Microsoft Support, How to install the latest version of DirectX&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.microsoft.com/en-us/download/details.aspx?id=35" rel="noopener">Microsoft Download Center, DirectX End-User Runtime Web Installer&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://support.microsoft.com/en-us/windows/hardware/display-graphics/optimizations-for-windowed-games-in-windows-11" rel="noopener">Microsoft Support, Optimizations for windowed games in Windows 11&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://dev.epicgames.com/documentation/en-us/unreal-engine/dealing-with-a-gpu-crash-when-using-unreal-engine" rel="noopener">Epic Games, Dealing with a GPU Crash When Using Unreal Engine&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://help.ea.com/en/articles/battlefield/battlefield-6/error-codes/" rel="noopener">EA Help, Troubleshoot error messages in Battlefield 6 (updated August 11, 2026)&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.intel.com/content/www/us/en/support/articles/000036362/graphics.html" rel="noopener">Intel Support, How to Resolve Error Message DXGI_ERROR_DEVICE_HUNG (Prepar3D v4; last reviewed May 19, 2022)&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>FPS Calculator: Sourced Benchmark Results</title><link>https://techfuelhq.com/tools/fps-calculator/</link><pubDate>Fri, 02 Oct 2026 00:00:00 -0500</pubDate><author>LK Wood IV</author><guid>https://techfuelhq.com/tools/fps-calculator/</guid><description>&lt;h2 id="what-this-fps-calculator-does">What this FPS calculator does&lt;/h2>
&lt;p>I built this as a benchmark lookup. Its &lt;strong>197 measured rows across seven games&lt;/strong> stay inside two separately identified datasets:&lt;/p>
&lt;ul>
&lt;li>192 CPU-and-GPU scaling rows from &lt;a href="https://www.techspot.com/review/3017-ryzen-9800x3d-vs-7600x-cpu-scaling/" rel="noopener">TechSpot&amp;rsquo;s Ryzen 7 9800X3D versus Ryzen 5 7600X review&lt;/a>. Those rows cover four games, two CPUs, four GPUs, three resolutions, and two presets per game.&lt;/li>
&lt;li>Five first-party 4K rows from my &lt;a href="https://techfuelhq.com/data/gpu/rog-astral-rtx-5080-oc-2026-06-09/">ASUS ROG Astral RTX 5080 OC benchmark dataset&lt;/a>. Those rows cover Cyberpunk 2077, Alan Wake 2, and Black Myth: Wukong on one recorded test system.&lt;/li>
&lt;/ul>
&lt;p>Pick a setup that was tested, and the page returns the average FPS and 1% low from that exact row. It does not combine the two providers, scale a 1440p result into 4K, substitute a nearby GPU, or fill a missing setting with an estimate — and each result separates the benchmark test date from the source&amp;rsquo;s publication date, so a TechSpot row whose test date was not stated says it is unspecified.&lt;/p>
&lt;h2 id="how-to-use-it">How to use it&lt;/h2>
&lt;ol>
&lt;li>Pick the dataset first. This fixes the provider, test system, and source boundary.&lt;/li>
&lt;li>Choose the game, CPU, GPU, resolution, and preset from the remaining supported values.&lt;/li>
&lt;li>Read the average and 1% low together with the test date, scene, settings, and source link.&lt;/li>
&lt;li>Use &lt;strong>Copy result link&lt;/strong> to keep that exact six-key selection. &lt;strong>Reset&lt;/strong> returns to a supported default measurement.&lt;/li>
&lt;/ol>
&lt;p>The menus narrow after each choice. An unsupported shared link clears the form and shows no FPS. Choose &lt;strong>Reset&lt;/strong> to load the supported default, then select a measured setup.&lt;/p>
&lt;h2 id="why-the-dataset-selector-matters">Why the dataset selector matters&lt;/h2>
&lt;p>Benchmark numbers inherit the reviewer&amp;rsquo;s whole method. A different scene, patch, driver, memory kit, CPU power policy, warm-up path, or run length can change the result even when the game, CPU, and GPU names match, so provider separation keeps each number attached to the system and method that produced it.&lt;/p>
&lt;p>TechSpot&amp;rsquo;s results link to the review and original chart. The TechFuelHQ rows use the first-party dataset&amp;rsquo;s CC BY 4.0 license, which does not cover the TechSpot rows.&lt;/p>
&lt;h2 id="settings-are-stated-off-or-unspecified">Settings are stated, off, or unspecified&lt;/h2>
&lt;p>The result card does not turn missing documentation into an on/off claim. It uses three different ideas:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Specified on or specified off&lt;/strong> means the source explicitly establishes that state.&lt;/li>
&lt;li>&lt;strong>Specified&lt;/strong> means the source names a mode such as DLSS Quality, native resolution, Native TAA, or 100% render scale.&lt;/li>
&lt;li>&lt;strong>Unspecified by source&lt;/strong> means the available source record does not establish the setting. It does not mean disabled.&lt;/li>
&lt;/ul>
&lt;p>This distinction matters most for frame generation, ray tracing, and upscaling because a blank chart label is not enough evidence that a feature was off.&lt;/p>
&lt;h2 id="the-measured-scope">The measured scope&lt;/h2>
&lt;p>The current catalog has seven games: Rainbow Six Siege X, Kingdom Come: Deliverance II, Marvel Rivals, Warhammer 40,000: Space Marine 2, Cyberpunk 2077, Alan Wake 2, and Black Myth: Wukong. Each menu narrows to the hardware and settings present in its dataset.&lt;/p>
&lt;p>Unsupported hardware gets no universal FPS range. Find a benchmark that tests the same game version and settings, or measure the scene on your own system; the &lt;a href="https://techfuelhq.com/tools/pc-bottleneck-calculator/">CPU and GPU benchmark lookup&lt;/a> can compare separate component indexes, but it cannot supply game FPS. If your measured result is much lower than a matching benchmark, work through the &lt;a href="https://techfuelhq.com/articles/low-gpu-usage-2026/">low GPU usage checks&lt;/a> before treating a component swap as the answer.&lt;/p>
&lt;h2 id="bounded-formula-experiment">Bounded formula experiment&lt;/h2>
&lt;p>Before choosing exact lookup as the public behavior, I tested one pre-specified formula inside the TechSpot grid. For each chart, the formula predicted a lower-CPU/lower-GPU cell as the smaller of its CPU anchor and GPU anchor; across 24 charts it held out three target CPU×GPU cells per chart for 72 average-FPS and 72 1%-low comparisons, while each target GPU remained present in the separate higher-CPU anchor.&lt;/p>
&lt;div class="table-wrap">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th scope="col">Metric&lt;/th>
&lt;th scope="col" style="text-align: right">Median absolute relative error&lt;/th>
&lt;th scope="col" style="text-align: right">90th percentile&lt;/th>
&lt;th scope="col" style="text-align: right">Maximum&lt;/th>
&lt;th scope="col" style="text-align: right">Within 10%&lt;/th>
&lt;th scope="col" style="text-align: right">Within 15%&lt;/th>
&lt;th scope="col" style="text-align: right">Within 20%&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td data-label="Metric">Average FPS&lt;/td>
&lt;td style="text-align: right" data-label="Median absolute relative error">0.00%&lt;/td>
&lt;td style="text-align: right" data-label="90th percentile">2.44%&lt;/td>
&lt;td style="text-align: right" data-label="Maximum">10.44%&lt;/td>
&lt;td style="text-align: right" data-label="Within 10%">98.61%&lt;/td>
&lt;td style="text-align: right" data-label="Within 15%">100%&lt;/td>
&lt;td style="text-align: right" data-label="Within 20%">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Metric">1% low FPS&lt;/td>
&lt;td style="text-align: right" data-label="Median absolute relative error">0.60%&lt;/td>
&lt;td style="text-align: right" data-label="90th percentile">3.02%&lt;/td>
&lt;td style="text-align: right" data-label="Maximum">17.07%&lt;/td>
&lt;td style="text-align: right" data-label="Within 10%">98.61%&lt;/td>
&lt;td style="text-align: right" data-label="Within 15%">98.61%&lt;/td>
&lt;td style="text-align: right" data-label="Within 20%">100%&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;p>The &lt;a href="https://techfuelhq.com/data/fps-calculator/validation.v1.json" download type="application/json">full 72-row validation table&lt;/a> retains each prediction, actual value, signed error, absolute error, and source key. This was a bounded formula experiment on one provider&amp;rsquo;s two-CPU, four-GPU grid; it neither tests lookup accuracy nor supplies a confidence interval, and it provides no evidence that the formula works for another game, scene, provider, CPU, GPU, or setting. The public calculator therefore uses a measured row when one exists and returns no number otherwise.&lt;/p>
&lt;h2 id="compare-with-your-pc">Compare with your PC&lt;/h2>
&lt;p>Average FPS summarizes throughput. The 1% low helps expose slower frames that the average can hide. Compare both within the same source method; neither number guarantees what your own system will produce or describes every moment of gameplay.&lt;/p>
&lt;p>Match the game version and scene first. Then match the preset, resolution, render scale, upscaler, ray tracing, frame generation, CPU, GPU, and test conditions. If the source marks a field unspecified, leave it unknown instead of assuming a setting.&lt;/p>
&lt;p>The catalog records source dates and chart hashes so the transcription can be checked against the captured originals; the public page includes the structured numeric facts and citations, but not the third-party chart images.&lt;/p></description></item><item><title>Game Mode On or Off? The Windows 11 Answer (2026)</title><link>https://techfuelhq.com/gaming/game-mode-on-or-off-2026/</link><pubDate>Fri, 02 Oct 2026 00:00:00 -0500</pubDate><author>LK Wood IV</author><guid>https://techfuelhq.com/gaming/game-mode-on-or-off-2026/</guid><description>&lt;div class="verdict-card">
&lt;p class="callout-label">TL;DR · Game Mode on or off&lt;/p>
&lt;ul style="margin:0.25rem 0 0 0;padding-left:1.25rem;line-height:1.55;">
&lt;li>&lt;strong>Almost every Windows 11 gaming PC: on.&lt;/strong> It is the default, and the 2025 and 2026 tests put averages within about 5 percent either way.&lt;/li>
&lt;li>&lt;strong>Ryzen 9 7950X3D or 9950X3D: on.&lt;/strong> AMD's core parking runs inside Game Mode.&lt;/li>
&lt;li>&lt;strong>Discord or a browser open while you play: on.&lt;/strong> That is where the 1% lows improved most.&lt;/li>
&lt;li>&lt;strong>CPU-bound game that loses frames, or a CPU-encoded stream that stutters: test off&lt;/strong> for that session.&lt;/li>
&lt;li>&lt;strong>Where it lives:&lt;/strong> Settings > Gaming > Game Mode, a separate switch from HAGS, V-Sync and your power plan.&lt;/li>
&lt;/ul>
&lt;/div>
&lt;p>Leave it on. Windows Game Mode is on by default, it changes little on a PC that runs one game at a time, and on dual-die Ryzen X3D chips AMD&amp;rsquo;s own scheduling depends on it.&lt;/p>
&lt;p>The case for turning it off is narrow and real. Game Mode hands the foreground game priority over everything else, and in a game that already pins the CPU, or beside a stream encoded on the same CPU, that priority can take more than it gives. Those two cases are the reason to test it, and the table below gives the setting for the rest.&lt;/p>
&lt;p>This page is about the Windows setting. A TV or monitor picture mode called Game Mode is a different thing on the display&amp;rsquo;s own menu, and the &lt;a href="https://techfuelhq.com/articles/oled-tv-as-pc-monitor-2026/">OLED TV as a PC monitor&lt;/a> guide covers switching it on.&lt;/p>
&lt;h2 id="what-game-mode-does">What Game Mode does&lt;/h2>
&lt;p>Microsoft&amp;rsquo;s support article for the setting is short. When you&amp;rsquo;re running a game, Game Mode &amp;ldquo;prevents Windows Update from performing driver installations and sending restart notifications&amp;rdquo; and &amp;ldquo;helps achieve a more stable frame rate depending on the specific game and system.&amp;rdquo; It notes that Game Mode is turned on by default.&lt;/p>
&lt;p>Microsoft&amp;rsquo;s archived developer documentation, written for Windows 10 in 2018 and covering Game Mode APIs that were deprecated from Windows 10 version 1809, explains the second line. Game Mode works by &amp;ldquo;granting a game exclusive or priority access to hardware resources,&amp;rdquo; the game has to be in the foreground with focus first, and it works for most Windows games with no action from the player or the developer. The same page lists CPU core exclusivity and &amp;ldquo;increased GPU prioritization&amp;rdquo; among those resources, and it sets the expectation in one sentence: &amp;ldquo;The performance increase that comes from Game Mode is directly related to the number and impact of other activities running on the device.&amp;rdquo;&lt;/p>
&lt;p>A PC with nothing else running has little for Game Mode to take back. A PC with Discord, a browser and a stream running has plenty.&lt;/p>
&lt;h2 id="game-mode-on-or-off-by-pc-and-use">Game Mode on or off, by PC and use&lt;/h2>
&lt;div class="table-wrap">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th scope="col">Your PC or use&lt;/th>
&lt;th scope="col">Game Mode&lt;/th>
&lt;th scope="col">Why&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td data-label="Your PC or use">Typical gaming desktop or laptop, one game at a time&lt;/td>
&lt;td data-label="Game Mode">&lt;strong>On&lt;/strong>&lt;/td>
&lt;td data-label="Why">The default. The tests below show averages within about 5 percent either way.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Your PC or use">Ryzen 9 7950X3D or 9950X3D (two dies, V-Cache on one)&lt;/td>
&lt;td data-label="Game Mode">&lt;strong>On&lt;/strong>&lt;/td>
&lt;td data-label="Why">Tom&amp;rsquo;s Hardware lists Game Mode among the four things AMD&amp;rsquo;s thread placement needs, and IDC describes the 9950X3D&amp;rsquo;s parking as working &amp;ldquo;within the Windows Game Mode power profile.&amp;rdquo;&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Your PC or use">Ryzen 7 7800X3D or 9800X3D, or any single-die chip&lt;/td>
&lt;td data-label="Game Mode">&lt;strong>On&lt;/strong>&lt;/td>
&lt;td data-label="Why">One die, so nothing to park (see the &lt;a href="https://techfuelhq.com/reviews/ryzen-7-7800x3d-review-2026/">7800X3D review&lt;/a> and the &lt;a href="https://techfuelhq.com/articles/9950x3d-vs-9800x3d-gaming-2026/">9950X3D vs 9800X3D comparison&lt;/a>). The general case decides it.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Your PC or use">Discord, browser tabs or a launcher open during play&lt;/td>
&lt;td data-label="Game Mode">&lt;strong>On&lt;/strong>&lt;/td>
&lt;td data-label="Why">MakeUseOf&amp;rsquo;s Forza Horizon 5 run with Edge and Discord open went from a 48.2 to a 71.5 fps 1% low with it on.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Your PC or use">GPU-bound game at high settings&lt;/td>
&lt;td data-label="Game Mode">&lt;strong>On&lt;/strong>, and expect no change&lt;/td>
&lt;td data-label="Why">MakeUseOf&amp;rsquo;s Cyberpunk 2077 run moved from 82.4 to 82.9 fps. Game Mode cannot add GPU headroom.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Your PC or use">CPU-bound game that loses frames with it on&lt;/td>
&lt;td data-label="Game Mode">&lt;strong>Test off&lt;/strong> for that game&lt;/td>
&lt;td data-label="Why">MakeUseOf&amp;rsquo;s August Ryzen 5 5600 test lost average and 1% low frame rate in two CPU-bound games with it on.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Your PC or use">Streaming or recording with a CPU encoder&lt;/td>
&lt;td data-label="Game Mode">&lt;strong>On, then test off&lt;/strong> if the stream drops frames during play&lt;/td>
&lt;td data-label="Why">Game Mode favors the game over the encoder. PC Gamer&amp;rsquo;s 2017 runs showed a background video starved while the game held up.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Your PC or use">Laptop on battery&lt;/td>
&lt;td data-label="Game Mode">&lt;strong>On&lt;/strong>&lt;/td>
&lt;td data-label="Why">Microsoft says Game Mode can be engaged in any power slider mode. Battery life is the Power mode slider&amp;rsquo;s job, a separate setting.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Your PC or use">G-Sync, FreeSync or fixed-refresh monitor&lt;/td>
&lt;td data-label="Game Mode">&lt;strong>On&lt;/strong>&lt;/td>
&lt;td data-label="Why">Microsoft&amp;rsquo;s description of Game Mode says nothing about refresh or sync. That is the &lt;a href="https://techfuelhq.com/gaming/vsync-on-or-off-2026/">V-Sync&lt;/a> decision.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;p>The X3D row is the one with a real cost. Tom&amp;rsquo;s Hardware&amp;rsquo;s 7950X3D review lists the requirements as &amp;ldquo;a new chipset driver, updated BIOS, Windows Game Mode, and an updated version of the Xbox Game Bar,&amp;rdquo; and explains why Game Bar is on that list. Game Bar &amp;ldquo;detects games and triggers Game Mode&amp;rdquo; from a known-good list of titles, and AMD&amp;rsquo;s PPM Provisioning File Driver then parks the slowest cores &amp;ldquo;when Game Mode or Mixed Reality Mode is active,&amp;rdquo; which confines the game to the die with the extra cache. Turn Game Mode off on one of those chips and that parking has no trigger. The &lt;a href="https://techfuelhq.com/articles/9950x3d-vs-9800x3d-gaming-2026/">9950X3D vs 9800X3D comparison&lt;/a> covers the rest of that machinery, including AMD&amp;rsquo;s per-game compatibility list.&lt;/p>
&lt;p>If a game on a dual-die chip does not trigger the parking, Tom&amp;rsquo;s Hardware notes you can add a game or program to Game Bar&amp;rsquo;s list from Game Bar&amp;rsquo;s settings with a single click.&lt;/p>
&lt;h2 id="how-to-turn-game-mode-on-or-off">How to turn Game Mode on or off&lt;/h2>
&lt;p>Microsoft&amp;rsquo;s steps are Start, Settings, then Gaming &amp;gt; Game Mode, and turn the switch on or off. On Windows 11 Home 25H2 build 26200.9457, read on 2026-10-02, the page&amp;rsquo;s breadcrumb reads Gaming &amp;gt; Game Mode, the switch&amp;rsquo;s description reads &amp;ldquo;Optimize your PC for play by turning things off in the background,&amp;rdquo; and the only entry under Related settings is Graphics.&lt;/p>
&lt;p>That Graphics link is where hardware-accelerated GPU scheduling and Windows&amp;rsquo; variable refresh rate switch live. They are separate settings with their own answers, and Microsoft&amp;rsquo;s description of Game Mode mentions neither.&lt;/p>
&lt;p>Microsoft&amp;rsquo;s steps end at the switch and do not mention a restart. To test it, flip the switch, relaunch the game, and play the same scene both ways with nothing else changed.&lt;/p>
&lt;h2 id="what-the-tests-show">What the tests show&lt;/h2>
&lt;p>No benchmark was run for this page. These are other people&amp;rsquo;s numbers, each from one or two systems, and the oldest comes from Windows 10 in 2017.&lt;/p>
&lt;div class="table-wrap">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th scope="col">Publication, date&lt;/th>
&lt;th scope="col">Hardware&lt;/th>
&lt;th scope="col">Result with Game Mode on&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td data-label="Publication, date">PC Gamer, May 3, 2017&lt;/td>
&lt;td data-label="Hardware">Core i3-7100 with GTX 1050 Ti; Core i7-5930K with GTX 1080&lt;/td>
&lt;td data-label="Result with Game Mode on">Budget PC minimum fps &amp;ldquo;20-30 percent higher&amp;rdquo; in some of six games. A background 1080p60 YouTube video went to stop-motion on the i3 and stuttered and froze on the i7.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Publication, date">XDA Developers, November 18, 2025&lt;/td>
&lt;td data-label="Hardware">Ryzen 5 7600X, RTX 4070 Ti Super, 32 GB DDR5-6000, 1440p&lt;/td>
&lt;td data-label="Result with Game Mode on">Fortnite 165 to 170 fps, The Last of Us Part II 150 to 155, Hogwarts Legacy 183 to 188. Gains of 2.7 to 3.3 percent in averages.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Publication, date">MakeUseOf, July 12, 2026&lt;/td>
&lt;td data-label="Hardware">Core i7-13700H laptop, RTX 4060 Laptop 8 GB, 16 GB DDR5, Windows 11 Pro 25H2, CapFrameX&lt;/td>
&lt;td data-label="Result with Game Mode on">Cyberpunk 2077 82.4 to 82.9 fps. Counter-Strike 2 1% low 142.3 to 154.6. Forza Horizon 5 with Edge and Discord open, 1% low 48.2 to 71.5.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Publication, date">MakeUseOf, August 1, 2026&lt;/td>
&lt;td data-label="Hardware">Ryzen 5 5600, RX 5600 XT, 16 GB DDR4&lt;/td>
&lt;td data-label="Result with Game Mode on">007 First Light 64.6 to 61.8 fps (1% low 47.9 to 42.3). Assassin&amp;rsquo;s Creed Black Flag Resynced 52.4 to 49.8 (36.8 to 33.3). Warzone 106.5 to 107.2 (79.4 to 82.1).&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;p>Read together, they agree on the shape. Averages barely move. The 1% lows move when something else wants the CPU, and they can move in either direction.&lt;/p>
&lt;p>The two MakeUseOf pieces are a fair pair. The July laptop&amp;rsquo;s biggest gain came with Edge and Discord open beside the game. The August Ryzen 5 5600 desktop ran CPU-bound games with little to clear away, and its author concluded that Game Mode&amp;rsquo;s &amp;ldquo;reprioritization disrupted resource allocation on titles already maxing out CPU usage.&amp;rdquo; That is the one case where I would test off, game by game, rather than switch it off for everything.&lt;/p>
&lt;p>PC Gamer&amp;rsquo;s 2017 result is old, from the Creators Update version that had to be enabled per game through Game Bar. Its warning still matches what Microsoft documents. Priority for the game means less for whatever runs beside it. A YouTube tab losing frames is a nuisance. A CPU encoder losing frames is a broken stream.&lt;/p>
&lt;h2 id="how-it-interacts-with-the-other-switches">How it interacts with the other switches&lt;/h2>
&lt;p>&lt;strong>Hardware-accelerated GPU scheduling.&lt;/strong> Separate switch, separate page under Graphics. Leave &lt;a href="https://techfuelhq.com/gaming/hardware-accelerated-gpu-scheduling-on-or-off-2026/">HAGS on&lt;/a> for any card that shows it. Change one switch at a time, because changing both at once makes a stutter impossible to attribute.&lt;/p>
&lt;p>&lt;strong>Power plan and Power mode.&lt;/strong> Microsoft&amp;rsquo;s power slider documentation says Game Mode &amp;ldquo;operates independently of the Windows performance power slider, and can be engaged in any slider mode.&amp;rdquo; It is not a power plan, and switching it on does not move the slider. The &lt;a href="https://techfuelhq.com/gaming/ultimate-performance-power-plan-2026/">Ultimate Performance power plan page&lt;/a> explains why Balanced stays the plan for a gaming PC.&lt;/p>
&lt;p>&lt;strong>Xbox Game Bar and background recording.&lt;/strong> Game Bar is the overlay on Windows + G, and on a dual-die X3D chip it is part of how Game Mode knows a game is running. Background recording is a different switch. Xbox Support says the Record last option needs background recording turned on, from Game Bar&amp;rsquo;s settings or Settings &amp;gt; Gaming &amp;gt; Captures. If a game stutters, MakeUseOf&amp;rsquo;s July tester puts drivers, overlays and background recording ahead of Game Mode on the checklist, and so would I. The &lt;a href="https://techfuelhq.com/articles/pc-stuttering-in-games-2026/">stuttering guide&lt;/a> works through that list.&lt;/p>
&lt;p>&lt;strong>Xbox mode.&lt;/strong> A newer Settings &amp;gt; Gaming entry. Microsoft describes Xbox mode as &amp;ldquo;a console inspired, dedicated gaming experience&amp;rdquo; for Windows 11 version 24H2 and later, a controller-optimized full screen shell. It has its own page under Gaming, apart from the Game Mode switch.&lt;/p>
&lt;p>&lt;strong>Memory Integrity.&lt;/strong> A separate Windows security setting, and Microsoft&amp;rsquo;s description of Game Mode does not mention it. Its on-or-off decision has its own page: &lt;a href="https://techfuelhq.com/gaming/memory-integrity-on-or-off-2026/">Memory Integrity on or off&lt;/a>.&lt;/p>
&lt;h2 id="sources">Sources&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://support.xbox.com/en-US/help/games-apps/game-setup-and-play/use-game-mode-gaming-on-pc" rel="noopener">Xbox Support, Use Game Mode while gaming on your Windows device (what it does, on by default, the Settings path)&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/previous-versions/windows/desktop/gamemode/game-mode-portal" rel="noopener">Microsoft Learn, Game Mode (archived developer documentation: exclusive or priority access to hardware resources)&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://learn.microsoft.com/en-us/windows-hardware/customize/desktop/customize-power-slider" rel="noopener">Microsoft Learn, Customize the Windows performance power slider (Game Mode operates independently of the slider)&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://support.xbox.com/en-US/help/friends-social-activity/share-socialize/record-game-clips-game-bar-windows-10" rel="noopener">Xbox Support, Using Game Bar Widgets (background recording and Settings &amp;gt; Gaming &amp;gt; Captures)&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://support.microsoft.com/en-us/servicing/os/windows/docs/2025/10/windows-gaming-full-screen-experience" rel="noopener">Microsoft Support, Windows Gaming: Full screen experience (Xbox mode, October 20, 2025)&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.tomshardware.com/reviews/amd-ryzen-9-7950x3d-cpu-review" rel="noopener">Tom&amp;rsquo;s Hardware, AMD Ryzen 9 7950X3D Review (Paul Alcorn, March 5, 2023; Game Mode and Game Bar requirements)&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.idc.com/resource-center/blog/review-of-the-amd-ryzen-9-9950x3d/" rel="noopener">IDC, Review of the AMD Ryzen 9 9950X3D (April 22, 2025; parking within the Windows Game Mode power profile)&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.pcgamer.com/windows-10-game-mode-tested-good-for-minimum-fps-bad-for-multitasking/" rel="noopener">PC Gamer, Windows 10 Game Mode tested: good for minimum fps, bad for multitasking (Jarred Walton, May 3, 2017)&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.xda-developers.com/i-tested-multiple-pc-game-modes-heres-what-works-best/" rel="noopener">XDA Developers, I tested multiple PC game modes (Abhinav Raj, November 18, 2025)&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.makeuseof.com/i-tested-windows-game-mode-for-month-what-benchmarks-actually-showed/" rel="noopener">MakeUseOf, I tested Windows Game Mode on and off for a month (Afam Onyimadu, July 12, 2026)&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.makeuseof.com/disabled-game-mode-gained-back-cpu-performance-didnt-know-lost/" rel="noopener">MakeUseOf, Game Mode is tanking your gaming performance (Shaheer Khan, August 1, 2026)&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>GPU Hotspot Delta Census: Core-to-Hotspot Readings by Model</title><link>https://techfuelhq.com/data/gpu-hotspot-delta-census/</link><pubDate>Fri, 02 Oct 2026 00:00:00 -0500</pubDate><author>LK Wood IV</author><guid>https://techfuelhq.com/data/gpu-hotspot-delta-census/</guid><description>&lt;p>GPU core temperature is easy to find. The hotspot, sometimes labelled junction temperature, is the highest reading among sensors on the GPU die. The difference between those two readings is the hotspot delta.&lt;/p>
&lt;p>Forum posts usually show one card at one moment. They also mix simultaneous readings with session maxima, stock cards with repasted cards, and sensor tools whose Blackwell support arrived in different versions. This census keeps those distinctions in the row instead of flattening them into one threshold.&lt;/p>
&lt;p>The data, definition, validator and report form live in &lt;strong>&lt;a href="https://github.com/iBlessi/techfuelhq-census" rel="noopener">github.com/iBlessi/techfuelhq-census&lt;/a>&lt;/strong>. The CSV begins empty. Test fixtures exercise the validator and publication floors; they are never copied into the dataset.&lt;/p>
&lt;h2 id="what-this-census-measures">What this census measures&lt;/h2>
&lt;p>One row is one card under one sustained load. It records core and hotspot temperatures from software die sensors, either as a simultaneous snapshot or as both maxima from the same session. It does not accept infrared-camera, thermocouple, PCB or backplate temperatures as the hotspot.&lt;/p>
&lt;p>The delta is computed as hotspot minus core. A submitter never types that derived field. The validator rejects a negative result, a hotspot outside the documented 20-125 C range, a core outside its documented 20-100 C range, and a load shorter than ten minutes.&lt;/p>
&lt;h2 id="why-the-sensor-tool-and-version-are-required">Why the sensor tool and version are required&lt;/h2>
&lt;p>NVIDIA&amp;rsquo;s &lt;code>nvidia-smi&lt;/code> documentation exposes core temperature and a thermal-limit margin, but does not document a hotspot field. Third-party tools restored RTX 50 hotspot readings later: CPUID records an RTX 50 fix in HWMonitor 1.65.1. LACT&amp;rsquo;s v0.10.0 release notes say its Blackwell hotspot sensor now works through a Blackwell-specific path and list pull request 1122, which added that path.&lt;/p>
&lt;p>For that reason, every row names its tool and version. An RTX 50 submission from HWMonitor below 1.65.1 or LACT below 0.10.0 is rejected. A report from another tool is retained with an unverified-tool flag, but it cannot move either publication floor until a primary changelog establishes a supported version.&lt;/p>
&lt;h2 id="the-fixed-delta-bands">The fixed delta bands&lt;/h2>
&lt;p>Exact-model distributions use five bands: &lt;strong>0-9 C, 10-19 C, 20-29 C, 30-39 C, and 40 C or higher&lt;/strong>. These edges are part of dataset version 0.1.0. Moving an edge would make earlier and later distributions incomparable, so any change requires a new major version.&lt;/p>
&lt;h2 id="what-one-row-records">What one row records&lt;/h2>
&lt;p class="census-row">A row is one software sensor reading from one card under one sustained load. Of its 23 fields, you fill in 19, 2 are worked out from the row and the maintainer sets 2.&lt;/p>
&lt;details class="census-fields">
&lt;summary>All 23 fields of a row&lt;/summary>
&lt;div class="table-wrap table-wrap--stack census-table">
&lt;table>
&lt;thead>
&lt;tr>&lt;th scope="col">Field&lt;/th>&lt;th scope="col">Filled by&lt;/th>&lt;th scope="col">What it records&lt;/th>&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td data-label="Field">&lt;code>card_&lt;wbr>brand&lt;/code>&lt;/td>
&lt;td data-label="Filled by">You&lt;/td>
&lt;td data-label="What it records">Card brand&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Field">&lt;code>card_&lt;wbr>model&lt;/code>&lt;/td>
&lt;td data-label="Filled by">You&lt;/td>
&lt;td data-label="What it records">Card model&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Field">&lt;code>exact_&lt;wbr>sku&lt;/code>&lt;/td>
&lt;td data-label="Filled by">You, optional&lt;/td>
&lt;td data-label="What it records">Exact SKU. The full SKU from the card label, if it is handy.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Field">&lt;code>gpu_&lt;wbr>family&lt;/code>&lt;/td>
&lt;td data-label="Filled by">You&lt;/td>
&lt;td data-label="What it records">GPU family&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Field">&lt;code>core_&lt;wbr>temp_&lt;wbr>c&lt;/code>&lt;/td>
&lt;td data-label="Filled by">You&lt;/td>
&lt;td data-label="What it records">GPU core temperature (C)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Field">&lt;code>hotspot_&lt;wbr>temp_&lt;wbr>c&lt;/code>&lt;/td>
&lt;td data-label="Filled by">You&lt;/td>
&lt;td data-label="What it records">GPU hotspot temperature (C)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Field">&lt;code>delta_&lt;wbr>c&lt;/code>&lt;/td>
&lt;td data-label="Filled by">Worked out from the row&lt;/td>
&lt;td data-label="What it records">Hotspot minus core (C)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Field">&lt;code>reading_&lt;wbr>type&lt;/code>&lt;/td>
&lt;td data-label="Filled by">You&lt;/td>
&lt;td data-label="What it records">How the two temperatures were read&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Field">&lt;code>load_&lt;wbr>type&lt;/code>&lt;/td>
&lt;td data-label="Filled by">You&lt;/td>
&lt;td data-label="What it records">Load&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Field">&lt;code>load_&lt;wbr>minutes&lt;/code>&lt;/td>
&lt;td data-label="Filled by">You&lt;/td>
&lt;td data-label="What it records">Minutes under load&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Field">&lt;code>tool&lt;/code>&lt;/td>
&lt;td data-label="Filled by">You&lt;/td>
&lt;td data-label="What it records">Sensor tool&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Field">&lt;code>tool_&lt;wbr>version&lt;/code>&lt;/td>
&lt;td data-label="Filled by">You&lt;/td>
&lt;td data-label="What it records">Sensor tool version&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Field">&lt;code>blackwell_&lt;wbr>tool_&lt;wbr>unverified&lt;/code>&lt;/td>
&lt;td data-label="Filled by">Worked out from the row&lt;/td>
&lt;td data-label="What it records">RTX 50 tool verification flag&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Field">&lt;code>cooler_&lt;wbr>state&lt;/code>&lt;/td>
&lt;td data-label="Filled by">You&lt;/td>
&lt;td data-label="What it records">Cooler and thermal material&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Field">&lt;code>months_&lt;wbr>since_&lt;wbr>paste&lt;/code>&lt;/td>
&lt;td data-label="Filled by">You&lt;/td>
&lt;td data-label="What it records">Months since the thermal paste was applied. Use the age of the card if it has its factory paste.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Field">&lt;code>power_&lt;wbr>state&lt;/code>&lt;/td>
&lt;td data-label="Filled by">You&lt;/td>
&lt;td data-label="What it records">Power state&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Field">&lt;code>mount&lt;/code>&lt;/td>
&lt;td data-label="Filled by">You, optional&lt;/td>
&lt;td data-label="What it records">Card mount&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Field">&lt;code>ambient_&lt;wbr>c&lt;/code>&lt;/td>
&lt;td data-label="Filled by">You, optional&lt;/td>
&lt;td data-label="What it records">Room temperature (C)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Field">&lt;code>power_&lt;wbr>draw_&lt;wbr>w&lt;/code>&lt;/td>
&lt;td data-label="Filled by">You, optional&lt;/td>
&lt;td data-label="What it records">GPU power draw (W)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Field">&lt;code>fan_&lt;wbr>mode&lt;/code>&lt;/td>
&lt;td data-label="Filled by">You, optional&lt;/td>
&lt;td data-label="What it records">Fan control&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Field">&lt;code>notes&lt;/code>&lt;/td>
&lt;td data-label="Filled by">You, optional&lt;/td>
&lt;td data-label="What it records">Notes&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Field">&lt;code>submitted_&lt;wbr>date&lt;/code>&lt;/td>
&lt;td data-label="Filled by">The maintainer&lt;/td>
&lt;td data-label="What it records">The day the report was sent&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-label="Field">&lt;code>source_&lt;wbr>issue&lt;/code>&lt;/td>
&lt;td data-label="Filled by">The maintainer&lt;/td>
&lt;td data-label="What it records">The issue the row came from&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/details>
&lt;h2 id="how-to-take-a-reading">How to take a reading&lt;/h2>
&lt;ol>
&lt;li>Return the card to the power state you intend to report. Stock readings can count toward published baselines; undervolted, overclocked and raised-power-limit readings remain useful context but do not count toward them.&lt;/li>
&lt;li>Open a sensor tool that shows both GPU core and hotspot. Record its exact version.&lt;/li>
&lt;li>Run one game, FurMark, 3DMark stress test or another steady GPU load for at least ten minutes.&lt;/li>
&lt;li>Record both temperatures at the same moment, or record both maximum values from that one session. Do not combine a core maximum from one run with a hotspot maximum from another.&lt;/li>
&lt;li>Add the cooler state, months since the current paste was applied, and any room temperature, power draw, mounting or fan-control context you actually observed. Leave optional fields empty instead of estimating them.&lt;/li>
&lt;/ol>
&lt;p>If the temperatures are high and you want a diagnosis rather than a dataset form, use the &lt;a href="https://techfuelhq.com/articles/gpu-overheating-2026/">GPU overheating guide&lt;/a>. A fan controller reacting to a hidden sensor is covered in the &lt;a href="https://techfuelhq.com/articles/gpu-fans-stuck-at-100-percent/">GPU fans stuck at full speed guide&lt;/a>.&lt;/p>
&lt;h2 id="build-a-report">Build a report&lt;/h2>
&lt;section class="census-reader tool-panel" data-census="gpu-hotspot-delta" aria-label="Build a report">
&lt;p class="census-reader__lede">What you paste is read on this page, inside your browser. None of it is sent anywhere until you open the report on GitHub yourself.&lt;/p>
&lt;noscript>
&lt;p class="census-reader__lede">This builder needs JavaScript. Without it, &lt;a href="https://github.com/iBlessi/techfuelhq-census/issues/new?template=gpu-hotspot-delta.yml">the report form on GitHub&lt;/a> takes the same report written by hand, and &lt;a href="https://github.com/iBlessi/techfuelhq-census/tree/main/censuses/gpu-hotspot-delta">the census folder&lt;/a> lists every field.&lt;/p>
&lt;/noscript>
&lt;div class="census-reader__app" hidden>&lt;/div>
&lt;/section>
&lt;script src="https://techfuelhq.com/js/census/reader.a12a700459258b8db5825da52beb9fe499ee806f4acf29ec04673dbe690c4a6c.js" integrity="sha256-oSpwBFkli421gl2lK&amp;#43;uf5JnugG9KzynsBGc9vmkMSmw=" defer>&lt;/script>
&lt;p>Sending opens the public GitHub issue form and requires an existing GitHub account. The builder runs locally in the browser and makes no request with the values. It puts the finished report in a new-window action only after the visitor chooses to open it.&lt;/p>
&lt;h2 id="what-has-been-published">What has been published&lt;/h2>
&lt;p class="census-count">&lt;strong>Current count: 0 reports.&lt;/strong> No group has rows yet, so nothing is published.&lt;/p>&lt;p class="census-rollup-count">&lt;strong>GPU family rollup: 0 reports.&lt;/strong> No group has rows yet, so nothing is published.&lt;/p>
&lt;p>The primary table groups qualifying rows by exact card brand and model. A model publishes its fixed-band counts at five qualifying rows. The separate GPU-family rollup waits for twenty qualifying rows, then publishes the median and the observed Q1-to-Q3 interval.&lt;/p>
&lt;p>Q1 and Q3 use linear interpolation at rank &lt;code>(n - 1) × p&lt;/code>, with &lt;code>p&lt;/code> equal to 0.25 or 0.75. They describe the middle half of the submitted qualifying rows. They do not estimate the distribution of every card in a model or family.&lt;/p>
&lt;h2 id="limits-of-this-data">Limits of this data&lt;/h2>
&lt;ul>
&lt;li>Reports come from owners who chose to send them. Someone investigating a hot card is more likely to report than someone who never opened a sensor tool.&lt;/li>
&lt;li>A software label is not independent proof of a physical sensor. Tool and version requirements reduce that risk; they do not eliminate it.&lt;/li>
&lt;li>Game, stress-test, case airflow, room temperature and fan behavior differ. The row keeps that context, but this census is not a controlled comparison between coolers.&lt;/li>
&lt;li>Exact model names come from submitters. Normalized spelling keeps case and punctuation variants together; maintainer review still has to catch a genuinely different SKU described too loosely.&lt;/li>
&lt;li>Figures stay hidden below their stated floors. A listed collecting group is an intake count, not evidence for a verdict.&lt;/li>
&lt;/ul>
&lt;h2 id="use-the-data">Use the data&lt;/h2>
&lt;p>&lt;a href="https://raw.githubusercontent.com/iBlessi/techfuelhq-census/main/censuses/gpu-hotspot-delta/data/submissions.csv" rel="noopener">&lt;code>submissions.csv&lt;/code>&lt;/a> is the dataset under &lt;a href="https://creativecommons.org/licenses/by/4.0/" rel="noopener">Creative Commons Attribution 4.0&lt;/a>. Attribute reused data as &amp;ldquo;TechFuelHQ open census&amp;rdquo; with a link to this page. The &lt;a href="https://github.com/iBlessi/techfuelhq-census/tree/main/censuses/gpu-hotspot-delta" rel="noopener">census folder&lt;/a> holds the definition, generated JSON Schema, summary and intake form; repository code is under the &lt;a href="https://github.com/iBlessi/techfuelhq-census/blob/main/LICENSE-CODE" rel="noopener">MIT license&lt;/a>.&lt;/p>
&lt;p>The &lt;a href="https://techfuelhq.com/data/gpu-sag-census/">GPU sag census&lt;/a> measures card droop, and the &lt;a href="https://techfuelhq.com/data/coil-whine-database/">coil whine census&lt;/a> records owner-heard noise on a fixed scale. Both use published floors rather than verdicts from single reports.&lt;/p>
&lt;h2 id="change-log">Change log&lt;/h2>
&lt;ul>
&lt;li>0.1.0 (2026-10-02): field definition, fixed delta bands, exact-model floor, GPU-family rollup, validator, local report builder and header-only CSV. The census opened without seeded rows.&lt;/li>
&lt;/ul></description></item></channel></rss>