When a ControlLogix or CompactLogix controller loses an I/O module, Logix Designer shows a fault code such as 16#0204 or 16#0203. The code tells where to look. This article lists what the common I/O and connection codes mean and what to check, using Rockwell Automation's own descriptions.
Where the fault shows
- The controller's I/O status indicator flashes, and a yellow warning symbol appears on the module in the I/O Configuration tree of Logix Designer (1756-PM014O, chapter 3, "Indications of I/O faults").
- The fault code and its description are shown on the Connection tab of the module's properties (same chapter).
- On a ControlLogix 5580 controller the status display shows messages in the form "I/O Fault Local:3 #0107 Connection Not Found"; with several I/O faults the controller indicates the first fault reported (1756-UM543, "Fault Messages").
- A lost module stops the controller (major fault) only if the module is configured to raise a major fault when its connection fails; otherwise the controller keeps running with the module faulted (1756-UM543). In that case the "Major Faults" tab shows Type 03 Code 16 (the connection to a required module failed) — see Logix major fault codes: reading Type and Code.
Reading the code: 0x0204, 16#0204 and #0204 are the same
The same code can be written three ways:
- The 1756-RD001 spreadsheet ("IO" tab, column "Fault Code (I/O Map Object)") writes it as 0x0204.
- Logix Designer shows the full 16#0204 on the Connection tab.
- Some places, such as the 5580 status display, show only the last characters, #0204 (1756-PM014O, chapter 3).
All three are the same hexadecimal number. When searching 1756-RD001, type the 0x0204 form and set the search to the whole workbook, not just the open tab.
16#0204 — Connection request timed out
Rockwell describes this code as the target module not responding, and also appearing to be missing from the backplane or network (Logix Designer help, "Module Faults: 16#0200 – 16#02ff"). The checks Rockwell lists:
- The module has not been removed, is still working and is receiving power.
- The correct slot number is specified in the I/O configuration.
- The module is properly connected to the network.
- For FLEX I/O, the correct terminal base is in use.
16#0203 — Connection timed out
Here the controller does see the module on the network or backplane, but the module stops responding as expected; when this fault occurs the controller usually tries to remove and remake the connection continuously (same help page). Rockwell's example is Ethernet multicast packets that do not come back, so check the network path between the controller and the module: cables, connectors and switch ports.
Common I/O and connection codes
Explained from the "IO" tab of 1756-RD001 (September 2025) and, for the keying codes, from the Logix Designer help pages cited below; the last column is what to check first.
| Code | Display text / meaning | Usual causes | Check |
|---|---|---|---|
| 16#0204 | Connection request timed out | Module not answering, as if absent | Power, slot, network cable (section above) |
| 16#0203 | Connection timed out | Module is seen but data does not come back | Network path, switch, multicast (section above) |
| 16#0800 | Network link in path to module is offline | A bridge module on the way to the target is disconnected or cannot forward | The intermediate communication module, its cable and link indicator |
| 16#0302 | Out of communication bandwidth | A module in the path has run out of bandwidth | Increase the RPI, spread the load over another bridge; on ControlNet, reconfigure with RSNetWorx |
| 16#0301 | Out of buffer memory | A module in the path is out of memory, or a consumed tag is not produced / has too few consumers allowed | Reduce the number or size of connections through that module; check the produced tag setup |
| 16#0002 | Resource unavailable | No connections left in the controller, communication module or target module; or I/O memory exceeded | Connections in use, number of controllers connected to the module |
| 16#0106 | Module owned and configured by another controller | Ownership conflict, typically on output modules; a Unicast owner blocks other connections | Which controller is the owner; set both owner and Listen Only to Multicast |
| 16#0110 | Module not configured | A Listen Only connection is opened before any owner has configured the module | Whether the owner controller is running and connected |
| 16#0107 | Target connection not found | Physical module differs from the I/O tree (even after passing Compatible or Disabled keying); or Unicast to a producer that does not support it | Physical module against the I/O tree |
| 16#0117 | Invalid connection point | The first owner connected with a different Communications Format; or the produced tag does not exist | Match the owner's Comm Format; tag name in the producing controller |
| 16#0114 / 16#0115 | Electronic keying: product code, vendor ID or product type mismatch | Wrong catalog number fitted compared with the project | Module catalog number in the slot against the I/O tree |
| 16#0116 | Electronic keying: Major/Minor revision | Module revision differs from the configured one | Correct Major and Minor Revision, or adjust electronic keying |
| 16#0009 | Module configuration rejected: parameter error | Invalid configuration, possibly changed in the Data Monitor or by the program | The additional hex code on the Connection tab points to the wrong parameter; look it up in the module manual |
| 16#0205 / 16#0206 | Invalid parameter / Requested size too large | Physical module differs from the one in the I/O configuration | Module type and configuration in the I/O tree |
| 16#031F | Tag not published | The consumed tag is not set up as produced at the target | Tag name spelling on both sides |
| 16#0801 | Incompatible multicast RPI | A multicast connection already exists at a different RPI | Same RPI for all multicast consumers, or switch to Unicast |
| 16#0340 | Network mode mismatch | The two devices use different network modes, e.g. DLR versus PRP | Set the same network mode on both sides |
| 16#FE0E / 16#FE10 | Automatic Firmware Update in progress / firmware file not found | FE0E is information only; FE10: the SD card lacks the firmware revision the project needs | Copy the right firmware to the SD card, update manually, or change the revision in the project |
Checks in order
- Write down the code and any extra information on the Connection tab before changing anything. For 16#0009 an additional hex code points to the wrong configuration parameter; for 16#0109 and 16#0117 the extra information is the tag name of the failed connection (1756-RD001).
- One module or a group? If several modules behind the same communication module fault together, check that module and its network path first (16#0800, 16#0203, 16#0302) before suspecting each I/O module.
- Fault right after a module swap or a new download points to keying and configuration mismatch (16#0114, 16#0116, 16#0107, 16#0205).
- Controller-to-controller (produce/consume) connections: check tag names, data types, number of consumers and RPI (16#031F, 16#0117, 16#0801).
- Fault that comes and goes: look at the network first — cables, connectors, switch ports, load.
Clearing the fault safely
For connection faults the controller keeps trying to reconnect; Rockwell states this explicitly for 16#0203. So as soon as the module is refitted, the cable reconnected or the configuration corrected, the module can receive output data again and the machine can start moving at once. Before working on it, isolate the affected equipment under the site's lockout and permit-to-work rules.
If the module is configured to raise a major fault, the controller stops on Type 03 Code 16; clearing the major fault and switching to Run restarts the program. For Type 03 Code 23 (a required connection not established before going to Run), 1756-RD001 advises waiting for the controller's I/O indicator to turn green before switching to Run.
When it is hardware
Most codes in the table are configuration or connection problems, not a failed module. A few codes in 1756-RD001 point directly at hardware:
- Type 03 Code 20 or 21: ControlBus chassis information cannot be read and the chassis may be bad — not recoverable, replace the chassis.
- 16#0336: the module cannot read its removable terminal block (RTB) information — replace the RTB.
- 16#FE12: automatic firmware update failed — check the status indicators and troubleshoot the module.
If 16#0204 persists while the module has power, the right slot and the right network, try a spare of the same catalog number and revision (if available): if the fault follows the module, the module needs testing or repair through Rockwell's channels.
The full list
Rockwell publishes every Logix 5000 fault code in the Logix 5000 Controller and I/O Fault Codes spreadsheet, 1756-RD001 (referenced in 1756-PM014O and 1756-UM900). Its "IO" tab (September 2025) holds almost 150 codes with corrective actions.
Before calling for help
Note the exact fault code and text from the Connection tab (including any extra information), the module catalog number and slot, the controller and Logix Designer versions, whether the fault is permanent or comes and goes, and whether one module or a group is affected. A copy of the project file and a photo of the rack and network switch help TDL engineers find the cause faster.
Need an engineer on site: request support.
Frequently asked questions
What is fault 16#0204 on ControlLogix?
16#0204 (Connection request timed out) means the target module is not responding and appears to be missing from the backplane or network. The checks Rockwell lists: the module has not been removed, is still working and is receiving power; the correct slot number is in the I/O configuration; the module is properly connected to the network; for FLEX I/O, the correct terminal base is in use.
How is fault 16#0203 different from 16#0204?
With 16#0203 (Connection timed out) the controller does see the module on the network or backplane, but the module stops responding as expected, and the controller usually keeps removing and remaking the connection. So check the network path between the controller and the module: cables, connectors and switch ports.
Are 0x0204, 16#0204 and #0204 the same fault?
Yes, all three are the same hexadecimal number. The 1756-RD001 spreadsheet writes 0x0204, the Logix Designer Connection tab shows 16#0204 and the 5580 status display shows only #0204; when searching 1756-RD001, type the 0x0204 form and search the whole workbook.
Does losing an I/O module stop a ControlLogix controller (major fault)?
Only if the module is configured to raise a major fault when its connection fails; the "Major Faults" tab then shows Type 03 Code 16. Otherwise the controller keeps running with the module faulted.
Where is the full list of Logix 5000 I/O fault codes?
In the Logix 5000 Controller and I/O Fault Codes spreadsheet, 1756-RD001. Its "IO" tab (September 2025) holds almost 150 codes with corrective actions.
Sources
- Rockwell Automation, 1756-PM014O-EN-P, Major, Minor, and I/O Faults, 09/2024 — chapter 3 "I/O Fault Codes"
- Rockwell Automation, 1756-UM543, ControlLogix 5580 and GuardLogix 5580 Controllers User Manual — "Fault Messages"; "Controller Diagnostics with the Logix Designer Application"
- Rockwell Automation, 1756-RD001F-EN-P, Logix 5000 Controller and I/O Fault Codes (spreadsheet), 09/2025 — "IO" tab and "Logix 5000 Controllers" tab (Type 03)
- Rockwell Automation, 1756-UM900, ControlLogix 5590 Controller User Manual
- Rockwell Automation, Studio 5000 Logix Designer 38.02 help: "Module Faults: 16#0100 – 16#01ff"; "Module Faults: 16#0200 – 16#02ff" (rockwellautomation.com)
Read 24 October 2026 (Logix Designer help) and 25 October 2026 (1756-RD001). This article paraphrases the sources and does not quote them; read the original documents before designing or working on a system. Links open the latest edition in Rockwell's literature library; page numbers refer to the edition cited.