• Main
  • Blog
  • CNC Error Codes: Complete Guide for All Brands (2026)
CNC Error Codes: Complete Guide for All Brands (2026)
This guide covers alarm code systems for every major CNC brand: Fanuc, Haas, Mazak, Siemens Sinumerik, DMG Mori, Heidenhain, Okuma, Mitsubishi, Mori Seiki, Brother, Makino, and Fagor. For each brand you'll find the most common codes, their causes, and the fastest resolution path.
mdcplus.fi
16 March 2026

CNC Error Codes: Complete Guide for All Brands (2026)

This guide covers alarm code systems for every major CNC brand: Fanuc, Haas, Mazak, Siemens Sinumerik, DMG Mori, Heidenhain, Okuma, Mitsubishi, Mori Seiki, Brother, Makino, and Fagor. For each brand you'll find the most common codes, their causes, and the fastest resolution path.

A CNC alarm code is your machine's way of telling you exactly what went wrong - and where. Understanding what these codes mean, and what to do when they fire, is the difference between a 10-minute fix and a four-hour production stop.

This guide covers alarm code systems for every major CNC brand: Fanuc, Haas, Mazak, Siemens Sinumerik, DMG Mori, Heidenhain, Okuma, Mitsubishi, Mori Seiki, Brother, Makino, and Fagor. For each brand you'll find the most common codes, their causes, and the fastest resolution path.

Jump to your brand:

Key stat: Unplanned CNC downtime costs manufacturers an average of $260,000 per year. Industry data consistently shows that 35–40% of unplanned stops stem from addressable alarm codes — faults that operators could resolve in under 15 minutes with the right reference.

How to read a CNC alarm code

Before diving into brand-specific lists, it helps to understand the logic behind how alarm codes are structured. Most CNC control systems use a consistent pattern: a prefix letter or number group that identifies the alarm category, followed by a numeric code that pinpoints the fault.

Alarm categories - what the prefix tells you

Across most brands, alarms fall into four main categories:

  • Program errors (P/S alarms on Fanuc, PS on Mazak) — Faults in the G-code program itself. Wrong syntax, out-of-range values, missing addresses. These are the easiest to fix: correct the program and re-run.
  • Servo / axis alarms — Problems with the drive system, encoder, or motor on a specific axis. Often caused by excess load, cable faults, or power supply issues.
  • Overtravel alarms (OT) — The machine axis hit a software or hardware travel limit. Usually caused by a wrong work offset or a runaway program command.
  • System alarms — Internal control faults, memory errors, communication failures. These require more investigation and sometimes a Fanuc/Siemens service call.

How to decode any alarm in three seconds

  1. Look at the prefix letter(s) — this tells you the category (servo, overtravel, program, system).
  2. Read the numeric code — look it up in the brand-specific section below or in the manufacturer's parameter manual.
  3. Check for an axis identifier — many alarms include X, Y, Z, or a spindle number. This tells you which axis is affected.

Example: Fanuc alarm SV0401 breaks down as SV (servo) + 401 (specific fault code). Combined with the axis label shown on the operator panel, you immediately know: servo amplifier fault, axis 1.

Fanuc CNC alarm codes

Fanuc is the world's most widely used CNC control system, found in machines from DMG Mori, Mazak, Haas (partly), Brother, and hundreds of OEM builders. Fanuc alarms are classified by prefix: PS (program/setting), SV (servo), SP (spindle), OT (overtravel), OH (overheat), DS (diagnosis), and SR (serial communication).

Alarm Description Most common cause
PS0010 Improper G-code Wrong or unsupported G-code for the active control variant
SV0401 Servo alarm: V-ready off Servo amplifier fault, power supply issue, or encoder cable damage
SV0411 Servo alarm: excess error Axis overloaded, wrong servo gain parameter, mechanical binding
OT0500 Overtravel + direction Axis commanded past hardware limit — check work offset or program start point
SP0741 Spindle alarm Spindle amplifier overheated or spindle encoder fault

See the full Fanuc alarm code list with 200+ codes, causes, and fix procedures →

Haas CNC alarm codes

Haas uses its own proprietary control (HMC), though it draws heavily on Fanuc conventions. Haas alarms are displayed on the operator screen with an alarm number and short description. Alarms are divided into two types: alarms (require a reset before the machine can continue) and messages (informational, no stop).

Alarm Description Most common cause
101 Door interlock Side door or front door not fully closed before cycle start
118 Spindle encoder fault Encoder cable damage, contamination, or failed encoder
132 Servo axis overload Axis motor overheated or drive fault — check for mechanical binding
156 Low air pressure Shop air below required threshold (typically 85 PSI minimum)
263 Tool not found ATC called a tool pocket that is empty or has wrong tool number loaded

See the full Haas alarm code list with fix procedures →

Mazak CNC alarm codes

Mazak machines use either the Mazatrol or EIA/ISO (G-code) programming environment, and alarm codes differ slightly between them. Mazak controls are built on Mitsubishi CNC hardware — so some deeper servo-level alarms share codes with the Mitsubishi system. Alarms are shown in the Alarm/Warning display with a code, message, and axis reference.

Alarm Description Most common cause
001 Emergency stop E-stop button pressed, safety circuit open, or drive fault during power-up
010 Servo alarm (axis) Drive overcurrent, encoder failure, or amplifier fault on specified axis
021 Spindle alarm Spindle drive fault, orientation failure, or overtemperature
109 Program error Illegal command in Mazatrol program or G-code block
203 ATC arm fault Tool changer didn't complete sequence — check tool pot sensors

See the full Mazak alarm code list →

Siemens Sinumerik alarm codes

Siemens Sinumerik (800x, 840D, 828D) uses a structured alarm numbering system: alarms in the 0–9999 range are NC channel alarms, 10000–19999 are channel-specific, 25000–26999 are drive alarms (SINAMICS), and 380000+ are PLC alarms. Sinumerik is common in European precision machining centers, particularly DMG Mori machines.

Alarm Description Most common cause
1000 Channel not ready NCK not initialized — power cycle required
10630 Axis not ready Drive not enabled or axis limit active
25201 Drive fault SINAMICS drive hardware fault — check F-code on the drive display
26000 Encoder signal fault Encoder dirty, cable break, or wrong encoder parameter
380500 PLC alarm Machine-specific PLC logic triggered — check ladder diagram

See the full Siemens Sinumerik alarm code list →

DMG Mori CNC alarm codes

DMG Mori machines run either Siemens Sinumerik or Fanuc control systems — sometimes both on different machine lines. The alarm code structure depends entirely on which control is fitted. DMG-specific machine alarms (coolant, ATC, pallet changer) appear as PLC messages alongside the NC alarms.

Alarm type Description Resolution path
Fanuc SV (servo) Same as Fanuc SV series See Fanuc alarm reference above
Sinumerik 25xxx SINAMICS drive faults See Siemens Sinumerik reference above
PLC 7xxx Machine-specific faults Check DMG Mori machine manual for PLC alarm table
Thermal alarm Spindle or axis motor overheat Check cooling unit, clean filters, verify ambient temperature

See the full DMG Mori alarm code reference →

Since DMG Mori machines often run Siemens, also see: Siemens Sinumerik alarm codes →

Heidenhain TNC alarm codes

Heidenhain TNC controls (TNC 320, 530, 620, 640) are used in high-precision milling centers, particularly in die/mold machining and aerospace applications. Heidenhain uses a plain-text error messaging system: error messages appear in plain language on screen, often with an error number and a direct reference to the cause.

Error / Code Description Most common cause
DRIVE FAULT Axis drive not ready PWM module fault, motor cable issue, or E-stop condition
ENCODER FAULT Position encoder signal lost Encoder cable break, contamination on scale, or faulty encoder
FEED RATE = 0 No feed rate defined Missing F-word in program or active feed override set to 0%
TOOL NOT FOUND Called tool not in tool table Tool number not entered in tool table, or wrong tool call
CONTOUR ERROR Profile calculation error Incorrect contour definition in SL cycles — check geometry

See the full Heidenhain error code list →

Okuma OSP alarm codes

Okuma machines run the proprietary OSP (Open Systems Platform) control. Alarms are displayed with a two-letter prefix and a four-digit code. Key prefixes: AL (axis alarms), MC (machine alarms), NC (NC system alarms), SL (spindle alarms), TC (tool changer).

Alarm Description Most common cause
AL-001 X axis servo alarm Drive fault, encoder fault, or axis overload on X
AL-104 Overtravel Axis commanded past travel limit — check offset and restart position
SL-001 Spindle drive alarm Spindle inverter fault or overtemperature
MC-050 ATC fault Tool change sequence incomplete — check ATC sensors and air pressure
NC-100 Program error Invalid G or M code, or illegal parameter value in active block

See the full Okuma OSP alarm code list →

Mitsubishi CNC alarm codes

Mitsubishi M700, M800, and E70 series controls are used in their own machines and as OEM controllers in Mazak and other brands. Alarms use a numeric code prefixed by the alarm type: Y (servo), SP (spindle), OT (overtravel), PR (parameter), PG (program error).

Alarm Description Most common cause
Y01 Servo axis abnormal current Motor or amplifier fault — check drive unit LED codes
Y32 Encoder error Encoder cable disconnected, damaged, or incorrect encoder spec
OT01 Hardware overtravel Axis physical limit switch tripped — check axis position and limit setting
SP01 Spindle alarm Spindle drive fault — check drive unit fault code independently
PR01 Invalid parameter Parameter value out of allowed range after edit

See the full Mitsubishi CNC alarm code list →

Mazak machines use Mitsubishi hardware — see also: Mazak alarm codes →

Mori Seiki CNC alarm codes

Mori Seiki machines (pre-2013 merger with DMG) run Fanuc or Mitsubishi controls depending on the machine series and year. NT, NL, and NMV series typically run Fanuc; MSX series ran Mitsubishi. After the DMG Mori merger, newer machines increasingly use Siemens or the proprietary CELOS interface on top of Fanuc.

Control variant Alarm structure Reference
Fanuc 31i/32i (NT, NL series) Standard Fanuc SV/PS/OT codes See Fanuc reference
Mitsubishi MSX series Standard Mitsubishi Y/SP/OT codes See Mitsubishi reference
Machine PLC alarms Mori Seiki-specific 4-digit codes Check machine-specific PLC alarm table in maintenance manual

See the full Mori Seiki alarm code reference →

Also relevant: DMG Mori alarm codes →

Brother CNC alarm codes

Brother Speedio tapping and machining centers use a Fanuc-compatible control with Brother-specific extensions. The control displays alarms with a numeric code and short message. Because Brother machines are primarily high-speed tapping centers, tool life and spindle-related alarms appear more frequently than on general machining centers.

Alarm Description Most common cause
PS0001 TH parity error Program input error — incorrect format in data block
SV0360 Serial pulse coder: battery alarm Absolute encoder battery low — replace before position data is lost
SV0401 Servo alarm: V-ready off Same as Fanuc — drive amplifier or power module fault
OT0500 Overtravel Axis exceeded travel limit in positive direction
SP1002 Spindle error Spindle orientation failed or spindle encoder fault

See the full Brother CNC alarm code list →

Brother uses Fanuc-compatible codes — also see: Fanuc alarm codes →

Makino CNC alarm codes

Makino machining centers run Fanuc-based controls with Makino-specific Pro 5 or Pro 6 interfaces. Alarm codes follow standard Fanuc prefix conventions (SV, PS, OT, SP) but Makino adds its own layer of machine-level alarms for pallet systems, coolant management, and tool management.

Alarm Description Most common cause
SV0411 Servo excess deviation Axis overloaded or wrong gain parameter — common after crash
SP0741 Spindle alarm Spindle amplifier fault — check amplifier LED indicator code
OT0500 Positive overtravel Program or fixture setup error — verify datum and tool length
M-series PLC Pallet or coolant alarm Pallet clamp sensor, coolant level, or chip conveyor fault

See the full Makino alarm code list →

Fagor CNC alarm codes

Fagor controls (8055, 8065, 8060) are found primarily in Spanish and European machine tool brands (Danobat, Soraluce, Bost). Fagor uses a structured error code system with separate categories for operator errors, program errors, system errors, and servo errors. Error numbers in the range 1–499 are typically operator/program related; 500–999 are system-level.

Alarm Description Most common cause
001 Memory error CNC internal memory fault — try a cold reboot first
006 SERCOS communication error Drive communication ring broken — check SERCOS fiber optic cables
028 Emergency stop active E-stop circuit open — check all E-stop buttons and safety relays
104 Incorrect G code G code used in wrong modal group or not supported in active mode
501 Axis position error Following error exceeded — check drive, encoder, and mechanical load

See the full Fagor CNC error code list →

Step-by-step: what to do when a CNC alarm fires

Alarm codes tell you what happened. This workflow tells you what to do with that information.

The 5-step alarm response procedure

  1. Read and record the full alarm display. Write down the exact code, axis letter, and any message text. On Fanuc and Siemens this also appears in the alarm history log. Don't just reset and continue — if the fault returns, you'll need this information.
  2. Identify the alarm category. Is it a program error (fix the G-code), a servo fault (check the drive/axis), an overtravel (check position and offsets), or a system fault (may need service)? The prefix tells you which direction to look.
  3. Check for a secondary indicator. Most drives have their own LED fault codes or diagnostic displays — a Fanuc servo amplifier will show a two-digit code that gives more detail than the CNC alarm alone. Always check both.
  4. Run the appropriate diagnostic. On Fanuc, use the Diagnosis screen (System → Diagnose). On Siemens, use Service → Drive diagnostics. On Haas, use Diagnostic Data. These screens show axis load, following error, and signal states in real time.
  5. Log the incident. Record the alarm code, time, machine, and your resolution. Over time this data reveals patterns — if the same servo alarm fires every two weeks, you have a degrading component, not a random fault. See how to track machine downtime in Excel with a free template →

Common mistakes when responding to alarms

  • Resetting without investigating. A reset clears the alarm display but not the underlying fault. On intermittent faults this is how you miss the window to catch a failing component.
  • Looking up only the alarm number. The same alarm number can have three different root causes. Always cross-reference with the axis letter, the time of day, and what was running when it happened.
  • Ignoring alarm history. Every modern CNC control stores alarm history. Before calling a service engineer, check whether this exact alarm has fired before — and what was done to resolve it.

From reactive to proactive: preventing CNC alarms before they happen

The troubleshooting workflow above is reactive — you're responding after a stop has already happened. Most high-performing machine shops run a parallel proactive system: monitoring trends so faults are caught before they become alarms.

What proactive alarm management looks like in practice

Reactive monitoring: operator sees an alarm, looks up the code, calls maintenance, machine sits idle for 40–90 minutes.

Proactive monitoring: the control system tracks servo load trends over 30 days. When axis load starts climbing — before it crosses the alarm threshold — maintenance is alerted. Bearing gets replaced during a scheduled stop. Zero unplanned downtime.

The difference comes down to data visibility. A few practical starting points:

Understanding alarm codes is the first step. Eliminating the conditions that produce them is the goal. Both start with data.

Frequently asked questions about CNC alarm codes

What is a CNC alarm code?

A CNC alarm code is a numbered fault signal generated by the CNC control system when the machine detects a condition it cannot continue operating under safely. Each code corresponds to a specific type of fault — a servo axis error, a program error, an overtravel condition, or a system fault — and is displayed on the operator panel with a description and usually an axis reference.

What is the difference between a CNC alarm and a CNC warning?

An alarm stops the machine — the cycle cannot continue until the alarm is acknowledged and cleared. A warning (called a "message" on Haas or an "operator message" on Fanuc) is informational: it displays on screen but does not interrupt the running program. Common warnings include coolant level low, tool life approaching limit, and oil lubrication interval due.

How do I reset a CNC alarm?

On most controls: press the Reset button on the operator panel. On Fanuc, this is the dedicated RESET key. On Haas, it is the RESET button in the control panel. On Siemens Sinumerik, press the Alarm Cancel key (ACK). Important: resetting an alarm clears the display but does not fix the underlying fault. If you reset without resolving the cause, the alarm will return — often immediately.

Why does the same alarm code keep coming back?

A recurring alarm almost always indicates an unresolved mechanical or electrical issue: a degrading bearing that is increasing axis load, a cable with intermittent continuity, a cooling fan that is no longer working, or a drive that is approaching end of life. Check the alarm history to see how frequently it is firing — if the interval is shortening, the fault is progressing.

What causes Fanuc servo alarm SV0401?

Fanuc alarm SV0401 (servo alarm: V-ready off) is triggered when the servo amplifier's V-ready signal is not received by the CNC. The most common causes are: servo amplifier hardware fault (check the amplifier's own LED code), power supply issue in the servo cabinet, E-stop relay not releasing fully, or a failed FSSB (serial servo bus) communication between the CNC and drive. Check the amplifier first — it will display its own fault code independently of the CNC alarm.

Can I connect my CNC machine to monitor alarm history automatically?

Yes. Most modern CNCs support MTConnect (Fanuc, Haas, Mazak, DMG Mori) or OPC-UA (Siemens) — open protocols that allow external software to read alarm history, axis data, and program status in real time. You can start with a free setup using your existing machine connection.

See the brand-specific monitoring guides: Fanuc →  Haas →  Heidenhain →

 

About MDCplus

Our key features are real-time machine monitoring for swift issue resolution, power consumption tracking to promote sustainability, computerized maintenance management to reduce downtime, and vibration diagnostics for predictive maintenance. MDCplus's solutions are tailored for diverse industries, including aerospace, automotive, precision machining, and heavy industry. By delivering actionable insights and fostering seamless integration, we empower manufacturers to boost Overall Equipment Effectiveness (OEE), reduce operational costs, and achieve sustainable growth along with future planning.

 

Ready to increase your OEE, get clearer vision of your shop floor, and predict sustainably?

Copyright © 2026 MDCplus. All rights reserved