---
title: "Fanuc Alarm 010 Improper G-Code: Causes and Fixes"
description: "Fanuc alarm 010 means an improper G-code: a code that does not exist or is not enabled on your machine was commanded. Here are the common causes and how to find it."
url: https://gcodepractice.com/journal/fanuc-alarm-010-improper-g-code/
canonical: https://gcodepractice.com/journal/fanuc-alarm-010-improper-g-code/
author: "Lawrence Arya"
authorUrl: https://www.linkedin.com/in/vibecoding/
published: 2026-06-04
updated: 2026-06-04
category: "Guides"
tags: ["fanuc", "alarm", "g-code", "troubleshooting"]
lang: en
---

# Fanuc Alarm 010 Improper G-Code: Causes and Fixes

> **TL;DR** Fanuc alarm 010, IMPROPER G-CODE, means the control was given a G-code it cannot run: one that does not exist, has a typo, or needs an option your machine does not have. The alarm points at the offending block. Check that block against your machine's manual, fix the typo or the wrong code, or enable the missing option.

This is an educational explanation of a common Fanuc alarm, not operating instructions for your specific machine. Always follow your machine's manual and your supervisor when clearing an alarm and re-running a program.

Fanuc alarm 010, shown as **IMPROPER G-CODE**, means the control read a G-code it cannot run. Fanuc states the cause plainly: an unusable G-code, or a G-code for a function the machine does not have, was commanded. The good news is the alarm tells you the block where it choked, so this is a findable problem.

## What the alarm is really saying

Every control recognizes a specific set of G-codes. When the interpreter hits a code outside that set, it stops rather than guess. The valid set is documented per control, and a general reference like the [LinuxCNC G-code list](https://linuxcnc.org/docs/html/gcode/g-code.html) or the [Wikipedia G-code overview](https://en.wikipedia.org/wiki/G-code) shows how standard the core codes are and where machine-specific differences creep in. Alarm 010 is the control refusing to run something it does not understand.

## The common causes

| Cause | Example | Fix |
| --- | --- | --- |
| Typo / slipped digit | `G011` instead of `G01` | Correct the code |
| Code from another control | A Haas-only or Mazak-only code on Fanuc | Replace with the Fanuc equivalent |
| Missing software option | A canned cycle or macro the machine lacks | Enable the option or avoid the code |
| Wrong post-processor | CAM posted for the wrong machine | Re-post with the correct profile |

The [Fanuc alarm-code references](https://www.helmancnc.com/fanuc-alarm-codes-for-cnc-machines/) list 010 alongside its neighbors, and most real cases are the first two rows: a small typo or code that was written for a different machine.

## How to find and fix it

The alarm names the offending block, so the search is short:

1. Read the block number the alarm reports.
2. Look at the G-code on that line and compare it to your machine's manual.
3. If it is a typo, correct it. If it belongs to another control, swap in the Fanuc equivalent. If it needs an option you do not have, remove the code or have the option enabled.
4. Re-run from a safe starting point under supervision.

Reading the block correctly is the same skill as [reading any CNC program](/journal/how-to-read-a-cnc-program-for-beginners/), and knowing the valid set cold is just the [common G-codes for CNC beginners](/journal/common-g-codes-for-cnc-beginners/).

## Alarm 010 and its neighbors

Fanuc groups several program alarms close together, and they are easy to confuse (and not every halt is an alarm at all: a machine [parked waiting for the spindle](/journal/machine-stopped-waiting-for-spindle-but-it-s-on/) is enforcing a handshake, not raising an error):

| Alarm | Meaning |
| --- | --- |
| 007 | Illegal use of decimal point |
| 010 | Improper G-code |
| 011 | No feedrate commanded |

The decimal-point one is common enough to deserve its own walkthrough in [Fanuc illegal use of decimal point alarm](/journal/fanuc-illegal-use-of-decimal-point-alarm/). Recognizing which alarm is which, and why, is exactly what a practice routine on the [G-code practice hub](/g-code-practice/) reinforces.

## When it is the option, not a typo

If the G-code on the offending block is spelled correctly and you know it is a real Fanuc code, the cause is usually a missing software option. Higher canned cycles, custom macro (the `G65`/`G66` family), and some probing or coordinate-rotation codes are paid options, so a control without them throws alarm 010 even though the program is valid. The tell is simple: a typo is fixed in the editor, but an option-related 010 keeps alarming on a correctly written line. In that case you either remove the feature, rewrite it with codes the machine has, or have the option enabled. Confirm which option a code needs in the machine's parameter and option list before assuming the program is broken.

## Bottom line

Fanuc alarm 010 means an improper G-code: a code the control cannot run because it does not exist, is mistyped, or needs an option the machine lacks. Go to the block the alarm names, compare the code to the manual, fix the typo or wrong code, and re-run from a safe point.

## Sources

- [HelmanCNC: Fanuc alarm codes for CNC machines](https://www.helmancnc.com/fanuc-alarm-codes-for-cnc-machines/)
- [LinuxCNC G-code reference (valid G-codes)](https://linuxcnc.org/docs/html/gcode/g-code.html)
- [Wikipedia: G-code](https://en.wikipedia.org/wiki/G-code)

## Frequently asked questions

### What is Fanuc alarm 010?
It is a program alarm meaning IMPROPER G-CODE: the control was commanded a G-code it cannot run, usually one that does not exist on the control, a typo, or a code needing an option the machine does not have. The alarm names the block where it happened.

### What causes an improper G-code alarm?
A mistyped code, a code copied from a program posted for a different control, or a code that requires a software option such as certain canned cycles or macros that the machine does not have enabled.

### How do you fix Fanuc alarm 010?
Go to the block the alarm names, compare its G-code to your machine's manual, then correct the typo, replace the wrong code, or enable the missing option, and re-run from a safe point.

### What is the best way to learn G-codes to avoid alarms?
Drill them with active recall so valid codes are second nature. A free app like G-Code Sprint quizzes the everyday G-codes as quick timed questions and repeats whichever ones you miss.

*G-Code Sprint is a study and practice tool only. Always follow your instructor, employer, machine manual, and shop safety procedures.*

---

Source: https://gcodepractice.com/journal/fanuc-alarm-010-improper-g-code/
Author: Lawrence Arya — https://www.linkedin.com/in/vibecoding/
