Common Error Overview
This page is intended for quickly locating common Klipper errors. Please first find the complete error keyword in klippy.log, then proceed to the corresponding category page for handling.
Quick Index
| Error Type | Common Keywords | Troubleshooting Entry |
|---|---|---|
| Connection Issues | Unable to connect, Invalid CAN uuid, Lost communication, MCU Protocol error, /dev/serial/by-id, Unable to issue reset command, Got EOF when reading from device | This page's Connection Issues, MCU ID Configuration, CAN Network and ID Search |
| Configuration Issues | not valid, not a valid config section, must be specified, Unable to parse, SAVE_CONFIG, Option conflict, virtual_sdcard, pause_resume, display_status | Configuration Errors |
| Macro and Slicer Commands | Unknown command, Error evaluating 'gcode_macro, jinja2.exceptions.UndefinedError, dict object has no attribute | Configuration Errors |
| Motion Homing | Move out of range, Must home axis first, No trigger, Endstop still triggered, virtual_endstop, Unknown pin chip name, Homing failed due to printer shutdown | Motion, Endstop, and Bed Leveling Errors, Sensorless Homing Troubleshooting |
| G-code Parsing | Unable to parse move, Invalid speed, Machine does not support G20, G2/G3 | Motion, Endstop, and Bed Leveling Errors, Arc Fitting Recommendations |
| Probe Bed Leveling | Probe triggered, No trigger on probe, samples_tolerance, bed_mesh, BLTouch failed, Z_TILT, QUAD_GANTRY_LEVEL, no samples between time, SVD did not converge | Motion, Endstop, and Bed Leveling Errors, BLTouch Configuration and Troubleshooting |
| Temperature Heating | ADC out of range, not heating at expected rate, Verify heater, temperature, Thermocouple reader fault | Temperature, Heating, and Extrusion Errors |
| Extrusion Issues | Extrude below minimum temp, Extrude only move too long, Move exceeds maximum extrusion, Filament sensor, M600 | Temperature, Heating, and Extrusion Errors |
| Performance Timeouts | Timer too close, Missed scheduling, Stepper too far in past, Move queue overflow, stepcompress, Rescheduled timer, restarting too fast, SD busy, Unhandled exception during run, hard pwm event, Can't reset time when stepper active | System, Performance, and Service Errors |
| TMC Drivers | Unable to read tmc uart, Unable to write tmc spi, GSTAT, coil short circuit, tmcuart_response | TMC Error Troubleshooting |
| CAN Network | bytes_invalid, Network is down, No buffer space available, Invalid CAN uuid, USB CANBUS bridge, BUS-OFF | CAN Network and ID Search, CAN Error Troubleshooting |
| Sensor Peripherals | Invalid adxl345 id, No data, Insufficient axis, Eddy current sensor error, Invalid read data, load_cell_probe, START_READ_NACK, I2C, BUS_TIMEOUT | Accelerometer Testing and Calibration, EDDY Issue Collection, Load Cell Probe Troubleshooting, This page's I2C Communication Errors |
| Resonance Compensation and Pressure Advance | shaper_freq, input_shaper, pressure_advance, smooth_time, accel_chip, TEST_RESONANCES, SHAPER_CALIBRATE | Resonance Compensation and Pressure Advance |
Related Configuration Pages Quick Reference
| Error Direction | Recommended Reference |
|---|---|
| Configuration syntax, indentation, comments, duplicate pins | Configuration Modification Instructions |
| Homing direction, axis direction, forced movement | Homing and Direction Calibration Guide |
| Endstops, TAP, optical endstops, proximity switches | Endstop Related |
| Sensorless homing, virtual endstop sensitivity | Sensorless Usage |
| Heating, PID, slow heating, temperature protection | Heating Related, verify_heater Optimization, M109 Optimization |
| Fan configuration, driver fans, 7040 fans | Fan Reference Configuration |
| Extruder parameters, rotation distance, extrusion configuration | Extruder Reference Configuration, Machine Calibration |
| Start/end macros, pause/resume, bed leveling and mesh macros | Macro Introduction |
| Common debugging commands, probes, resonance compensation | Common Debugging Directives |
Connection Issues
MCU ID Configuration Description
The MCU ID in Klipper refers to the identification information used in the [mcu] or [mcu xxx] configuration section for connecting to the control board. Different communication methods have different formats:
| Connection Method | Configuration Item | Example |
|---|---|---|
| USB Firmware | serial: | serial: /dev/serial/by-id/usb-Klipper_xxxxxxxxxxxx |
| CAN Firmware | canbus_uuid: | canbus_uuid: xxxxxxxxxxxx |
| Host MCU | serial: | serial: /tmp/klipper_host_mcu |
Filling Rules:
- The mainboard defaults to using
[mcu], while tool boards or expansion boards use custom names like[mcu tool],[mcu toolboard], etc. - USB firmware only fills in
serial:, and CAN firmware only fills incanbus_uuid:; do not retain both items in the same[mcu]. - In multi-MCU machines, each
[mcu xxx]must use its own real ID; do not copy the same USB ID or CAN UUID. - The name of
[mcu xxx]affects the pin prefix; for example, a pin for[mcu tool]should be written astool:gpio13; keep the name case consistent. - The
xxxxxxxxin documentation examples cannot be used directly; it must be replaced with the actual searched ID.
Common Errors:
- Using a flashing mode ID (such as an ID containing
katapultorcanboot) as a Klipper firmware ID. - Configuring
canbus_uuid:in USB firmware, or retaining the oldserial:in CAN firmware. - Configuring a tool board as
[mcu], overwriting the mainboard MCU configuration. - Pin prefix inconsistency with the MCU name, for example, configuring
[mcu toolboard]but writing the pin astool:gpio13.
USB ID Query: For USB firmware, run
ls /dev/serial/by-id/*to obtain the ID.
CAN ID Query: CAN Network and ID Search
Tool Board Configuration: Tool Board MCU Addition and Cross-Board Configuration
mcu 'xxx': Unable to connect
Error message: The host cannot find or connect to the motherboard.
Common causes:
- The USB device ID is not filled in or is filled in incorrectly.
- The CAN UUID is not filled in, is filled in incorrectly, or the device is offline.
- UTOC, USB cable, CAN bridge firmware, or power supply is abnormal.
- CAN0 is not started, or the CAN network configuration is abnormal.
Troubleshooting steps:
-
Open
klippy.logand scroll to the bottom to confirm the specific error message. -
If
[Errno 2]appears, it usually means the discovered USB device ID has not been added toprinter.cfg.Loading... -
If
Serial connection closedappears, you usually need to re-search the CAN ID and check the CAN network.Loading... -
If
Unable to open CAN port: [Errno 19] No such deviceappears, it usually means a UTOC device, USB bridge CAN firmware, or CAN0 device is missing.Loading... -
If
[Errno 100] Network is downor[Errno 105] No buffer space availableappears, please re-check the CAN0 configuration according to CAN Network and ID Search.
mcu 'mcu': Invalid CAN uuid
Error message: The CAN UUID is invalid or cannot be recognized.
Cause of error: canbus_uuid: is filled in incorrectly, the device is offline, or the CAN network is not communicating properly.
Solution:
- Re-search the CAN UUID according to CAN Network and ID Search.
- Confirm that the UUID filled in
printer.cfgis the one actually discovered. - Confirm that both
serial:andcanbus_uuid:are not enabled simultaneously in the same[mcu]section. - Check CAN-H, CAN-L, termination resistors, power supply, and firmware CAN baud rate.
Option 'serial' in section 'mcu' must be specified
Error message: serial must be specified in the [mcu] configuration section.
Cause of error: serial: was not filled in for a USB firmware connection, or the [mcu] configuration section was accidentally deleted.
Solution:
- Re-search for the USB device ID.
- Fill in the
[mcu]configuration section inprinter.cfg:
[mcu]
serial: /dev/serial/by-id/actual_discovered_ID
- Save and restart Klipper.
If the current motherboard is flashed with CAN firmware, use canbus_uuid: and do not continue to fill in serial:.
USB ID not found / System service interference
Error message: Executing ls /dev/serial/by-id/* produces no output or prompts No such file or directory; Klipper reports mcu 'xxx': Unable to open serial port, [Errno 2] No such file or directory during connection, or the USB motherboard repeatedly disconnects and reconnects in the system.
Common causes:
- The motherboard is not running the Klipper firmware and is still in flashing modes such as Katapult / CanBoot / DFU.
- The USB cable, USB port, host power supply, or motherboard power supply is abnormal.
- Some versions of
udevon Debian 11 Bullseye have issues and may not generate the/dev/serial/by-id/device path. - Desktop Linux may have
ModemManagerorBRLttyinstalled, which may seize the serial port device, preventing Klipper from connecting to the motherboard stably.
Troubleshooting steps:
Before re-plugging the USB cable, checking the motherboard power wiring, or organizing the USB / CAN wiring harness, completely turn off the printer and disconnect the power supply. Do not organize interface wiring or touch terminals while the power is on.
- First, confirm that the motherboard has been flashed and is running the Klipper firmware. The USB ID should contain
usb-Klipper. Do not writekatapult,canboot,Bootloader, or DFU mode IDs intoprinter.cfg. - After powering off, replace the USB cable and host USB port with reliable ones. After powering back on, execute
ls /dev/serial/by-id/*again. - If using Debian 11 Bullseye, older versions of MainsailOS / FluiddPi / Armbian, or similar systems, run the following command to check the
udevversion:
apt-cache policy udev
- If the issue is confirmed to be a Debian 11
udevproblem, first prioritize upgradingudevthrough the system's normal update sources, or switch to a newer system image. - Check for services that may seize the serial port:
systemctl list-units --all | grep -Ei 'ModemManager|brltty'
- If these services are confirmed to be installed, and the current host does not require modem or braille terminal functionality, replace the full unit names shown in the previous command's output into the commands below, then stop, disable them, and reboot the system:
sudo systemctl disable --now ModemManager.service
sudo systemctl disable --now brltty.service
sudo systemctl disable --now brltty.path
- After completion, re-query the USB ID and confirm that the
serial:in the[mcu]section ofprinter.cfgmatches the actual output.
Related configuration reference: MCU ID Configuration.
Serial connection closed
Error message: mcu 'xxx': Serial connection closed, the serial connection between Klipper and the MCU has closed unexpectedly.
Common causes:
- The USB cable has poor contact or is of low quality.
- The CAN bridge device (UTOC, etc.) has unstable power supply or abnormal firmware.
- Power fluctuations on the motherboard cause the MCU to restart.
- Abnormal CAN network communication, causing the device to go offline.
Solution:
- After powering off, re-plug the USB / CAN cables and replace them with reliable connection cables.
- Check the power supply and firmware status of the CAN bridge device, and re-search the CAN ID if necessary.
- Confirm the motherboard power supply is stable, and avoid sharing the power circuit with high-power devices.
- If the problem persists, refer to CAN Error Troubleshooting and Lost communication with MCU for further investigation.
Lost communication with MCU
Error message: Communication between Klipper and the MCU is interrupted. The log may show Lost communication with MCU, Lost communication with mcu, or similar prompts.
Common scenarios: During homing or movement, the motherboard or toolboard goes offline as soon as the endstop is triggered; it can connect again after a power cycle.
Common causes:
- Incorrect endstop switch wiring, causing an abnormal short circuit between the signal pin and power or ground when triggered.
- When using three-wire endstops, optical endstops, or hall effect endstops, the power, ground, and signal wires are connected in the wrong order.
- The endstop wiring harness is damaged, pinched, or short-circuits during cable chain movement.
- The endstop trigger causes a power fluctuation on the motherboard, causing the MCU to restart or the USB / CAN communication to be interrupted.
- The USB / CAN communication lines between the MCU and the host pass near strong interference sources, making disconnections more likely when triggering endstops or during movement.
- The endstop pins in the configuration do not match the actual wiring, triggering the wrong interface.
Troubleshooting steps:
Before unplugging endstop wires, checking the wiring order, inspecting the cable chain harness, or using a multimeter to measure continuity/resistance, completely turn off the printer and disconnect the power supply. The multimeter resistance/continuity mode can only be used when the power is off. It is forbidden to measure resistance or perform short circuit tests while the power is on.
- After powering off, check the endstop switch wiring order, especially whether the
VCC,GND, andSignalof a three-wire endstop are connected incorrectly. - After powering off, temporarily unplug the corresponding endstop wire. After reassembling, power on the machine again to test whether the motherboard still goes offline.
- After powering off, use the multimeter's continuity/resistance mode to check for short circuits before and after the endstop is triggered, focusing on whether the signal pin is connected to power.
- Check the cable chain, connectors, and bending points of the wiring harness to make sure the wiring is not pinched or short-circuited during triggering or movement.
- Check the USB / CAN communication lines between the MCU and the host, and keep them away from motor wires, heater wires, heated bed wires, and power wires as much as possible.
- If the machine's enclosure, power supply, or shielding is not reliably grounded, it may also be more susceptible to interference; only confirm the grounding point and socket status provided by the manufacturer, and do not disassemble the power supply or modify the mains ground wire yourself.
- Confirm that the endstop pins in the configuration match the motherboard documentation and actual wiring.
- After the issue is fixed, run
QUERY_ENDSTOPSto confirm the endstop status can change fromopentoTRIGGEREDcorrectly. For related configuration, refer to: Limit-related, Power Wiring Instructions.
Unable to issue reset command on MCU
Error message: Unable to issue reset command on MCU 'xxx'. The log usually also contains webhooks client ...: Disconnected and Restarting printer.
Nature of the error: This error is generally not the first error to appear, but rather a subsequent notification when Klipper fails to send a reset command to the MCU after it has gone offline, lost power, or experienced a communication interruption. When troubleshooting, you should scroll up to find the first real error that occurred earlier (such as Lost communication with MCU, Timer too close, Verify heater, TMC errors, etc.).
Common causes:
- A preceding MCU went offline, USB/CAN communication was interrupted, or the firmware crashed, preventing the reset command from being delivered.
- Insufficient power supply to the mainboard, toolhead board, or peripheral MCU, causing a power loss during the reset process.
- Poor contact or damaged USB cables or CAN cables.
- The MCU was forcibly reset while executing a high-load task (such as heating or multi-point bed probing).
- Strong signal interference between the host and the MCU (motor wires or heater wires running close to communication wires).
Solutions:
Before re-plugging USB/CAN cables, inspecting wires, or organizing cable routing, completely shut down the printer and disconnect the power supply. Do not plug or unplug cable bundles or touch terminals while the printer is powered on.
- Open
klippy.log, find the first real error beforeUnable to issue reset command, and troubleshoot according to the corresponding category. - After powering off, re-plug the USB/CAN cables, replace them with reliable commercial-grade cables, and confirm the connections are secure.
- Check whether the power supply to the mainboard and toolhead board is stable, and avoid sharing an unstable power circuit with motors and high-power devices such as the heated bed.
- Confirm that USB/CAN communication cables are routed away from motor wires, heater wires, and heated bed wires.
- Execute
FIRMWARE_RESTART, and if necessary, power off the entire machine for 10 seconds before powering it back on. - If the problem recurs, continue troubleshooting by referring to Lost communication with MCU and CAN Error Troubleshooting.
Got EOF when reading from device
Error message: Got EOF when reading from device. In the log, this usually appears after Attempting MCU 'xxx' reset command, indicating that the serial/USB connection was already disconnected when the host attempted to reset the MCU.
Nature of the error: This is an error returned by the host operating system (Linux) layer. Klipper is merely relaying the end-of-file (EOF) marker read by pyserial. It indicates that the USB/serial link has been physically disconnected or the device has disappeared, rather than a configuration parameter issue.
Common causes:
- Poor quality USB cable, poor contact, or insufficient power from the USB port, causing the device to drop offline during the reset process.
- Power fluctuations on the mainboard or toolhead board, causing the MCU to reset or lose power, resulting in the device disappearing from the system.
- Abnormal host USB controller, faulty USB port, or system USB sleep policy.
- When a CAN toolhead board is connected via a USB bridge, the bridge device goes offline (in this case,
Unable to issue reset command on MCUmay also appear in the log).
Solutions:
Before re-plugging USB/CAN cables, inspecting power wires, or replacing cables, completely shut down the printer and disconnect the power supply.
- First, confirm which MCU is reporting the error, then check the corresponding USB/CAN connection link.
- After powering off, re-plug the USB cable, replace it with a high-quality USB cable, and try a different USB port on the host.
- Run
ls /dev/serial/by-id/*to confirm whether the device is still present in the system; if the device has disappeared, it indicates a power supply, cable, or MCU reset issue. - Check whether the power supply to the mainboard and toolhead board is stable, and confirm that the voltage drop on the power wires is normal (do not disassemble the power supply or modify mains wiring yourself).
- If
Unable to issue reset command on MCUalso appears in the log, refer to Unable to issue reset command as well. - If the issue is related to a CAN toolhead board, check the bus status according to CAN Error Troubleshooting.
- If the problem recurs, continue troubleshooting by referring to Lost communication with MCU.
Timeout on wait for 'xxx' response
Error message: Timeout on wait for 'neopixel_result' response, Timeout on wait for 'trsync_state' response, etc.
Common causes:
- Unstable CAN/USB communication link, where the MCU fails to respond to host requests in a timely manner.
- Excessive MCU load (e.g., high-speed printing + multi-axis motion + accelerometer queries running simultaneously).
- Too many Neopixel LEDs or poor data cable quality, causing
neopixel_resulttimeouts. - MCU firmware version mismatch with the host.
Solutions:
- Check whether the USB/CAN communication cables are securely connected, and keep them away from sources of interference such as motor wires and heater wires.
- If the timeout is Neopixel-related, reduce the number of LEDs or replace the data cable with a higher quality one, and confirm the
data_pinconfiguration is correct. - Confirm that all MCU firmware versions are consistent, and recompile and reflash if necessary.
- Reduce print speed and acceleration to observe whether the issue reproduces.
MCU Protocol error
Error message: MCU protocol error. The log may contain MCU Protocol error, Unknown command, or Command format mismatch.
Common causes:
- The host Klipper was updated, but the mainboard or toolhead board firmware was not recompiled and reflashed.
- Firmware version mismatch between peripheral MCUs (mainboard, toolhead board, EDDY, ADXL, etc.) and the host Klipper.
- Use of a custom system or third-party plugins, causing inconsistencies between the commands supported by the Klipper host and the MCU.
Solutions:
- Confirm whether Klipper, the system image, or plugins have been updated recently.
- Recompile and reflash the Klipper firmware for all MCUs.
- For peripheral MCUs such as toolhead boards, EDDY, and ADXL, update the corresponding peripheral firmware synchronously.
- If using a custom system, confirm that the system supports the current Klipper version.
- After flashing, execute
FIRMWARE_RESTARTand then reconnect for testing.
I2C Communication Error (START_READ_NACK / BUS_TIMEOUT)
Error message: MCU 'xxx' I2C request to addr 42 reports error START_READ_NACK, I2C request to addr 104 reports error START_READ_NACK, or I2C ... BUS_TIMEOUT.
Common causes:
- Incorrect I2C device address configuration, or no device exists at the corresponding address on the bus.
- Loose, broken, or reversed SDA/SCL I2C wiring.
- Missing pull-up resistors, or signal degradation due to an excessively long bus.
- Reading a sensor before it is ready (e.g., querying immediately after power-on).
- Address conflicts between multiple I2C devices.
Solutions:
Before inspecting I2C wiring, sensor modules, or pull-up resistors, completely shut down the printer and disconnect the power supply.
- After powering off, check whether the I2C wiring (SDA, SCL, VCC, GND) is secure and confirm that SDA and SCL are not reversed.
- Confirm that the configured I2C address matches the actual device. Common addresses: ADXL345 is
0x53(83) or0x1D(29), MPU6050 is0x68(104). - Check whether the I2C bus has pull-up resistors (typically 4.7kΩ); if the module has built-in pull-ups, no additional ones are needed.
- If the bus is long (over 30cm), try shortening the wiring or reducing the I2C speed.
- If the error occurs only once at startup, it may be a sensor initialization delay; observe whether it operates stably afterward.
- Confirm that no two devices on the same I2C bus are using the same address.
EDDY Probe I2C Error: If you encounter
BUS_TIMEOUTwith the EDDY eddy current probe, refer to EDDY Issue Collection.
Specialized FAQ
| Topic | Entry |
|---|---|
| Configuration conflicts, parameter parsing, SAVE_CONFIG | Configuration Errors |
| Unknown commands, macro templates, slicer start G-code | Configuration Errors |
| Motion, homing, limits, probes, mesh bed leveling | Motion, Limit & Leveling Errors |
| Sensorless homing, virtual_endstop, DIAG sensitivity | Sensorless Homing Troubleshooting, Sensorless Usage |
| Temperature, heating, extrusion, filament runout detection | Temperature, Heating & Extrusion Errors |
| Performance, timeouts, firmware, system services | System, Performance & Service Errors |
| G2/G3, arc fitting, slicer path precision | Arc Fitting Recommendations |
| TMC driver communication, overtemperature, coil issues | TMC Error Troubleshooting |
| CAN network, UUID, bytes_invalid | CAN Network & ID Search |
| Accelerometer and resonance testing | Accelerometer Testing & Calibration |
| EDDY eddy current probe | EDDY Issue Collection |
| Load Cell, pressure sensing probe | Load Cell Probe Troubleshooting |