Errors & Codes

Thermal runaway

Thermal runaway is the firmware safety check that almost certainly saved your printer (and possibly your house). It detects the early signs of a heater going out of control — either heating the wrong thing or never reaching its target — and kills power before things get dangerous. If your printer just halted with a thermal runaway error, do not disable the check — find the cause and fix it.

7 min read Updated May 2026 PrintPal editorial
The 30-second answer

Thermal runaway means your heater and your temperature sensor have lost track of each other. Most common cause: the heater cartridge or thermistor has come loose from the heater block. Second most common: the part cooling fan is blowing directly on the heater block. Power off, let everything cool, then check the heater cartridge set-screw, the thermistor seating, and re-run PID auto-tune. Never disable the thermal runaway check — this is a fire-safety feature.

What thermal runaway actually is

The firmware monitors two things during heating:

  1. The hotend reaches and stays at the target temperature within a reasonable time.
  2. Once at temperature, the reading doesn't drift significantly away from target.

If either check fails, the firmware decides the temperature feedback loop is broken (either the heater isn't doing what's commanded, or the thermistor isn't measuring what it should be). It shuts off power to the heater and locks the printer until you acknowledge the error and restart.

Why the check exists (a brief history)

In 2014 and again in 2017, several 3D printer house fires were traced to firmware not detecting when a heater cartridge had fallen out of its heater block. The cartridge sat in open air, ran to maximum temperature trying to "reach target" (the thermistor was still in the block, reading normal), and ignited surrounding plastic. After these incidents, the Marlin team made thermal runaway protection mandatory and removed the option to disable it through the menu. Klipper, Prusa firmware, Bambu firmware, and other major implementations have similar mandatory protections. Prusa firmware (per their public notes) considers the heater to be in thermal runaway if temperature deviates by more than approximately 15 °C from target for 45 seconds during steady-state, or fails to reach target within ~30 seconds of heating.

Causes of thermal runaway

1. Loose heater cartridge (most common)

The set-screw or grub-screw holding the heater cartridge in the block has loosened. The cartridge dangles or sits poorly, so it heats up its own air pocket instead of the block. The thermistor (still tight) reads "cold" and the firmware drives the heater to 100%, eventually getting flagged for not reaching target.

Fix: power off, let the hotend cool, remove the silicone sock, check that the heater cartridge is fully inserted and the set-screw is firm. Don't over-tighten; you can crack the heater cartridge.

2. Loose thermistor

The thermistor bead has worked itself out of its hole in the block. It's now reading air temperature, not block temperature. The block heats up just fine, but the firmware never sees that — the thermistor reads low, drives the heater hard, and thermal runaway eventually triggers (or much worse, doesn't).

Fix: remove the sock, find the thermistor hole on the block, re-seat the bead. Many use a tiny set screw or thermal paste; some are bare. Make sure the bead is in solid metal contact with the block.

3. Part cooling fan blasting the heater block

The part cooling fan (the big one on the side) is over-cooling the heater block. The PID loop tries to compensate, gets confused, and the block oscillates wildly enough to trigger thermal runaway.

Fix: verify your silicone sock is in place and intact. Confirm the fan duct points at the print, not the block.

4. PID values wrong

After a hotend swap or large config change, the PID values for the heater are wildly miscalibrated. The heater overshoots, undershoots, and oscillates badly enough to trip the protection.

Fix: run PID auto-tune. Marlin: M303 E0 S210 C8 U. Klipper: PID_CALIBRATE HEATER=extruder TARGET=210. Prusa MK3/MK4: it's in the menu. Bambu: handled automatically by the firmware.

5. Print at edge of capability

Trying to print at 300 °C on a printer that runs out of heater headroom at 290. The firmware never reaches target and gives up.

Fix: reduce target temperature or upgrade to a higher-wattage heater cartridge (40W→50W).

6. Genuine heater MOSFET fault

Rare on quality boards. The MOSFET driving the heater has failed shorted, so the heater is on 100% regardless of what the firmware commands. The thermistor reads runaway temperatures, MAXTEMP/thermal runaway triggers.

Fix: replace the board. If the board has failed shorted-MOSFET, treat it as a fire hazard and stop using it.

Firmware threshold reference

Approximate defaults (subject to change with firmware version):

FirmwareSteady-state deviationPeriodHeat-up timeout
Marlin (hotend)5 °C45 s~20 s window
Marlin (bed)2 °C20 s~20 s window
Prusa Buddy~15 °C45 s~30 s
Klipper2 °C15 s (verify_heater)configurable
Bambubrand-definedbrand-definedbrand-defined

Recovery procedure

  1. Don't panic. Don't reset and retry. The error is telling you something real.
  2. Power off and let the printer cool completely.
  3. Remove the silicone sock from the hotend.
  4. Check the heater cartridge set screw. Snug, not tight.
  5. Check the thermistor mounting. Tight contact with the block.
  6. Inspect wires for damage, chafing, or melt marks.
  7. Re-install the sock. It's not optional; it stabilises temperature dramatically.
  8. Power on. Run PID auto-tune.
  9. Print a test cube and confirm temperatures are stable.
Never disable thermal runaway protection.

Some forum advice still suggests commenting out THERMAL_PROTECTION_HOTEND in Marlin to "make the error go away". This makes your printer a fire hazard. If you legitimately need to allow more deviation (e.g., enclosure printing of ABS), increase the deviation tolerance — don't disable the check.

Related articles

Sources & further reading