A print that stops dead halfway up the model, nozzle parked off to the side, heater still warm, waiting for you to do something, is almost never a random glitch. A printer that pauses itself randomly mid-print is doing exactly what it was told to do, either by a filament sensor that thinks the spool ran out or by a pause command sitting in the sliced file. Both halt motion and wait for input, which is why the machine looks frozen rather than crashed.
Quick Answer
The two causes are a filament-runout sensor firing a false trigger, or an M600 filament-change command baked into your G-code by the slicer. Disable or clean the runout sensor to test the first, and search the .gcode file for M600 to rule out the second. One of those two is the culprit in the vast majority of cases.
Why a runout sensor stops the print
Most filament-runout sensors work as a simple switch. A lever or optical gate sits in the filament path, and when the filament stops moving or runs out, the firmware sees the change and issues a pause so you can swap spools without ruining the print. The problem is that the same trigger fires when the filament is still present but the sensor is dirty, the lever is worn, or the filament is thin or slightly translucent and the optical gate misreads it.
A few practical checks: open the sensor housing, clear any ground-up filament dust, and feed the filament through by hand to watch whether the trigger state flips unexpectedly. If the pauses stop once you temporarily disable the sensor in the firmware menu, you have found it. The 3D printer lineup at Evetech lets you check which current machines come with dependable runout detection as standard.
When the pause lives in the G-code itself
If the sensor is clean and disabled and the print still pauses at the same layer every time, the cause is in the file, not the hardware. The M600 command is a deliberate filament-change instruction. It tells the printer to pause, retract, and wait, usually so you can switch colours partway through a model.
M600 ends up in your file in a few ways. You may have inserted a colour change in the slicer preview and forgotten about it. A downloaded G-code file may carry someone else's colour change. Some slicer profiles add a pause at a set layer for inserts like magnets or nuts. Open the .gcode in any text editor and search for M600. If it is there at the layer where your print stops, delete that line and re-slice or re-save.
Pause-at-layer and other slicer triggers
Beyond M600, slicers can inject M0, M1, or M25 commands, all of which pause and wait. PrusaSlicer, Cura, and OrcaSlicer each have a "pause at height" or "add pause" feature that writes one of these into the file. If you have ever used that tool, even by accident, the command stays in the profile until you remove it. Check your custom G-code sections and any height-based modifiers before blaming the printer.
Ruling out the rare causes
If neither the sensor nor the file explains it, look at power and connectivity. A loose USB cable or a marginal SD card can interrupt the data stream and stall a print, though that usually looks like a hard stop rather than a clean pause. A flaky power supply can also reset the board. These are less common than the two main causes, but worth a glance once you have cleared the obvious ones. Keeping a few spares of the consumables that wear out, like nozzles and PTFE tube, saves a lot of stop-start frustration, and browsing the top-selling accessories at Evetech quickly shows which parts print enthusiasts replace most often.
Frequently Asked Questions
How do I tell a sensor pause from an M600 pause?
A sensor pause is unpredictable and tied to filament movement, so it happens at different layers across prints. An M600 or pause-at-layer command stops at exactly the same point every single time, which is the giveaway that the cause is in the file.
Is it safe to disable the runout sensor?
Yes, for testing. You lose the safety net that stops a print when the spool empties, so re-enable it once you have confirmed it was the cause and cleaned or replaced the faulty part. Running permanently without it just means watching your filament level.
Can old filament cause false sensor triggers?
It can. Brittle or dusty filament sheds particles that clog optical and mechanical sensors, and very thin or warped filament can slip past a lever without registering as continuous feed. Clean storage and good filament reduce these false stops.
Will deleting M600 ruin my print?
No, deleting M600 simply removes the planned pause. If the command was there for a genuine colour change you wanted, you will lose that change, but for an accidental pause it is exactly the right fix. Re-slice afterwards to be safe.
Why does the printer stay hot during the pause?
The firmware keeps the hotend at temperature so you can resume cleanly without waiting for it to reheat or dealing with a cold-clogged nozzle. This is normal behaviour during any intentional pause, sensor or G-code.
Sorted the pause and ready for a printer that handles long runs without surprises? Browse the current lineup in the 3D printer range at Evetech and get a machine with dependable runout detection built in.