Seeing a number flash on your VanMoof? You're not alone. Here's every documented error code from 0 to 60 — battery, motor, Bluetooth, SIM, mechanical — with the meaning and most common fix. The most common ones are Error 44 (e-shifter), 45 (motor cable), and 46 (motor overcurrent).
If you ride a VanMoof S3 or X3, Moofment connects directly over Bluetooth and reads diagnostic codes as they happen — with plain-language explanations and fixes. No servers, no accounts, no guessing.
Get MoofmentBattery protection and communication errors. Many relate to temperature, voltage, or charge limits.
| Code | Name | Description |
|---|---|---|
| Error 0also: Err 0 | BAT_SCP | Short circuit protection (main battery) Full explainer → |
| Error 1also: Err 1 | BAT_MOTP | MOSFET over temperature protection Full explainer → |
| Error 2also: Err 2 | BAT_PDSCP | Pre-discharge short circuit protection Full explainer → |
| Error 3also: Err 3 | BAT_PDOCP | Pre-discharge overload circuit protection Full explainer → |
| Error 4also: Err 4 | BAT_UVP2 | Under voltage protection 2 — try charging longer Full explainer → |
| Error 5also: Err 5 | BAT_UVP1 | Under voltage protection 1 Full explainer → |
| Error 6also: Err 6 | BAT_OVP2 | Over voltage protection 2 Full explainer → |
| Error 7also: Err 7 | BAT_OVP1 | Over voltage protection 1 Full explainer → |
| Error 8also: Err 8 | BAT_COCP1 | Charge over current protection 1 Full explainer → |
| Error 9also: Err 9 | BAT_COCP2 | Charge over current protection 2 Full explainer → |
| Error 10also: Err 10 | BAT_DOCP2 | Discharge over current protection 2 Full explainer → |
| Error 11also: Err 11 | BAT_DOCP1 | Discharge over current protection 1 Full explainer → |
| Error 12also: Err 12 | BAT_CUTP | Charge under temperature — too cold to charge Full explainer → |
| Error 13also: Err 13 | BAT_COTP | Charge over temperature — too warm to charge Full explainer → |
| Error 14also: Err 14 | BAT_DUTP | Discharge under temperature — too cold to ride Full explainer → |
| Error 15also: Err 15 | BAT_DOTP | Discharge over temperature — too hot to ride Full explainer → |
| Error 16also: Err 16 | BAT_FP | Permanent fail (fuse burn) — likely socket short circuit Full explainer → |
| Error 17also: Err 17 | BATTERY_NO_DSG | Could not set discharge mode Full explainer → |
| Error 18also: Err 18 | BATTERY_MISSING | Battery not recognized or absent Full explainer → |
| Error 19also: Err 19 | BATTERY_COMM | Battery communication error (Modbus) Full explainer → |
| Error 20also: Err 20 | BATTERY_NO_OUTPUT | Sudden battery shutdown — may briefly appear after a reset (normal) Full explainer → |
| Error 21also: Err 21 | NO_CHARGE_CURRENT | Charger cable not recognised — try unplugging and reinserting it Full explainer → |
Internal chip communication errors, over-the-air update failures, and flash programming issues.
| Code | Name | Description |
|---|---|---|
| Error 22also: Err 22 | MOTOR_COMM | Motor chip communication error (SSP TI) Full explainer → |
| Error 23also: Err 23 | BLE_COMM | Bluetooth chip communication error (SSP BLE) Full explainer → |
| Error 24also: Err 24 | OAD_ABORT | Over-the-air update transfer aborted Full explainer → |
| Error 25also: Err 25 | OAD_CRC | OTA image CRC checksum error Full explainer → |
| Error 26also: Err 26 | OAD_TRANSFER | OTA file transfer took too long Full explainer → |
| Error 27also: Err 27 | OAD_PACK | No or invalid file in firmware pack Full explainer → |
| Error 28also: Err 28 | ICF_TIMEOUT | Timeout during flash programming Full explainer → |
| Error 29also: Err 29 | ICF_HEADER | Flash header not found Full explainer → |
| Error 30also: Err 30 | ICF_NO_FILES | No files in firmware pack Full explainer → |
| Error 31also: Err 31 | ICF_ERASE | Flash erase error Full explainer → |
| Error 32also: Err 32 | ICF_WRITE | Flash write error Full explainer → |
| Error 33also: Err 33 | ICF_CRC | File in pack has CRC error Full explainer → |
| Error 34also: Err 34 | PGM_MOTORWARE | Motor controller programming failed Full explainer → |
| Error 35also: Err 35 | PGM_BATTERYWARE | BMS controller programming failed Full explainer → |
| Error 36also: Err 36 | PGM_SHIFTERWARE | Shifter controller programming failed Full explainer → |
| Error 37also: Err 37 | PGM_BLEWARE | BLE controller programming failed Full explainer → |
| Error 38also: Err 38 | INTERNAL_BATTERY | Module battery read error Full explainer → |
| Error 39also: Err 39 | READ_LIGHT_SENSOR | Light sensor I2C read error Full explainer → |
Button stuck errors and mechanical shifter errors. Error 44 is the most common.
| Code | Name | Description |
|---|---|---|
| Error 40also: Err 40 | STUCK_HORN | Bell button pressed too long — possible water or short circuit Full explainer → |
| Error 41also: Err 41 | STUCK_BOOST | Boost button pressed too long — possible water or short circuit Full explainer → |
| Error 42also: Err 42 | KL_COIL_MISSING | Kick Lock coil not detected Full explainer → |
| Error 43also: Err 43 | SHIFTER_NOT_IN_GEAR | Gear not reached after 10 attempts Full explainer → |
| Error 44also: Err 44 | SHIFTER_COMM | E-shifter communication error — most common VanMoof error. Full explainer → |
Motor-related errors including cable issues, over-current, and controller failures.
| Code | Name | Description |
|---|---|---|
| Error 45also: Err 45 | MOTOR_CABLE | Motor cable not connected / motor not recognized Full explainer → |
| Error 46also: Err 46 | MOTOR_OVER_CURRENT | Motor over temperature or over current detected Full explainer → |
| Error 47also: Err 47 | — | Driver error detected with the motor Full explainer → |
| Error 48also: Err 48 | MOTOR_CONTROLLER | Motor controller error — may require motor replacement Full explainer → |
| Error 49also: Err 49 | MOTOR_CURRENT_ERR | Current offset calculation deviates from default Full explainer → |
| Error 50also: Err 50 | MOTOR_VOLTAGE_ERR | Voltage offset calculation error Full explainer → |
| Error 51also: Err 51 | MOTOR_DERATING | Max current limited due to high temperature Full explainer → |
| Error 52also: Err 52 | MOTOR_TORQUE_FAIL | Torque sensor failed Full explainer → |
| Error 53also: Err 53 | MOTOR_NOT_READY | Motor not ready during motor test Full explainer → |
Internal SIM card and cellular modem errors. These affect cloud connectivity only — your bike still works locally via Bluetooth.
| Code | Name | Description |
|---|---|---|
| Error 54also: Err 54 | NO_SIMCARD | SIM card not detected Full explainer → |
| Error 55also: Err 55 | I2C3_FAIL | I2C bus 3 communication error on startup Full explainer → |
| Error 56also: Err 56 | CCID_SIMCARD | SIM card has wrong CCID number Full explainer → |
| Error 57also: Err 57 | READ_SIMCARD | SIM card detected but no communication Full explainer → |
| Error 58also: Err 58 | GSM_MODEM | Modem startup sequence failed — often resolves after reset Full explainer → |
Less common codes that appear in special circumstances.
| Code | Name | Description |
|---|---|---|
| Error 60also: Err 60 | FACTORY_MODE | Factory firmware is loaded — bike needs production firmware Full explainer → |
Hold the power button for 10 seconds. Many errors (40, 44, 58) resolve after a clean reset.
For battery errors (0–21), charge the bike completely. Error 4 often clears after a full charge cycle.
Errors 12–15 mean the bike is too hot or cold. Let it reach room temperature before riding or charging.
Connect via Bluetooth with Moofment to read live error codes and diagnose issues without needing servers.
Motor errors (45–53) and the permanent fail (16) typically require opening the bike and may need parts replaced.
Errors 54–58 affect cellular connectivity only. Your bike still works locally via Bluetooth with Moofment.
Error 44 (SHIFTER_COMM) is the most common VanMoof error. It means the bike can't communicate properly with the e-shifter. Try resetting the bike by holding the power button for 10 seconds. If it persists, the e-shifter cable may be loose or damaged and may need service.
Error 45 (MOTOR_CABLE) means the motor cable isn't connected or the motor isn't recognized. This usually requires opening the bike to check the motor cable connection.
Error 46 (MOTOR_OVER_CURRENT) indicates overcurrent or overtemperature in the motor. Let the bike cool down for at least 30 minutes and try again. If it persists, the motor may need service.
Hold the power button for 10 seconds until you hear the shutdown sound. Wait a few seconds, then turn the bike back on. Many error codes (40, 44, 58) resolve after a clean reset.
Error codes appear on the matrix display of your VanMoof S3/X3 as a two-digit number. You can also read them via Bluetooth using the Moofment app, which provides more detail than the on-bike display.
These codes apply to VanMoof Series 1 through Series 5. Series 6 uses a different diagnostic system. The most common codes (battery 0–21, motor 45–53) are consistent across earlier series.
If you ride an S3 or X3, Moofment reads live error codes over Bluetooth — with plain-language explanations and fixes. Stop guessing.