Check engine light on but no code found: pending codes, manufacturer codes, control unit not read

What you notice

The amber light is on on the dashboard. You plug in an OBD2 reader, or the garage plugs in theirs, and the verdict comes in: no codes. The light, however, is still there. This is not a contradiction: the OBD2 standard only gives access to part of what the control units store.

Possible causes, from most to least common

1. It is not the OBD check engine light

The official check engine light (the “MIL”) shows an engine block seen from the side. It normally comes on for a few seconds when the ignition is switched on, to test the bulbs, then goes off when the engine starts: this is not a fault. Other amber lights look like it or come on at the same time: glow plugs on a diesel, service (a spanner or “SERVICE”), “EPC” on some makes, automatic gearbox light, general warning light. Several of them are triggered by faults that standard OBD2 reading does not report. The car's manual settles it in a minute.

2. The reader only read the confirmed codes

The control unit sorts its codes into three groups:

  • confirmed: they turned on the light;
  • pending: the fault was seen once, but not yet confirmed;
  • permanent: they stay in memory, even after clearing, until the control unit has itself verified that the fault is gone.

Many basic readers only query the first group. The typical case: the light came on, went off by itself after a few trips, and the garage finds “nothing”. There is often a pending code or a permanent code left that tells the story.

3. Manufacturer codes outside the standard format

Standard codes (P0…, P2…) and some make-specific codes (P1…) are displayed with a normal OBD2 reading. But some engine control units also store faults in a format specific to the manufacturer, which the standard request does not return. Only a tool that queries the control unit in that format finds them. Their meaning is not officially published: it must be confirmed by a garage or a manufacturer tool.

4. The fault is in another control unit

Standard OBD2 reading queries the engine control unit and, depending on the car, the gearbox one. A fault in the automatic gearbox, the steering or the brakes can turn on an amber light that looks like the check engine light, or combine with it. The same problem arises with the ABS and ESP lights: see why a cheap adapter does not see ABS codes.

5. Communication failed, and the reader displayed “no codes”

A clone adapter that does not handle the car's protocol, or the ignition being off, can produce an empty reply. Some readers display it as “no fault codes”. If in doubt, see ELM327 connected but the car does not respond.

6. The light stays on just after clearing

On some cars, the light only goes off at the next ignition cycle. And if the fault is still there, it first reappears as a pending code, before turning the light back on.

What you can do right now

  1. Identify the light: symbol, colour, steady or flashing. If it flashes, stop as soon as possible.
  2. Read all three groups of codes, with the ignition on: in DiagAuto AI, “Read fault codes”, then the “Pending codes” and “Permanent codes”. The app distinguishes “No fault codes detected” from “The car is not responding”: you know whether the reading really took place.
  3. Look at the manufacturer codes: when the engine control unit provides them, the app displays them under “Manufacturer codes in the engine control unit”.
  4. Check the light status as seen by the control unit on the Sensors screen: “Engine warning light status (MIL)” and “Distance driven with warning light on”, if the car provides them. Light on on the dashboard but off for the engine control unit? The light comes from another system.
  5. Scan the other control units (Control units screen): the app shows which ones report faults and how many, and reads their codes on compatible control units.
  6. With no codes at all, “AI diagnosis with monitoring” follows the sensors for a few minutes and you can describe the symptom (noise, smoke, smell): the AI suggests leads to check, not a certain diagnosis. See the app's features.

When to go to the garage right away

  • Check engine light flashing, or accompanied by a red warning light (temperature, oil pressure, battery).
  • Loss of power, smoke, a smell of burning or fuel.
  • Light on, no code in the engine control unit, and no faulty control unit found: a garage equipped with the manufacturer's tool can query all the control units in their own format.

In other cases, a steady light with no symptoms leaves time to look calmly: see also check engine light on but the car drives fine.

Frequently asked questions

The light went off and the garage found no code: has the problem gone away?

Not necessarily. The light generally goes off after a few trips without the fault recurring, but the code often stays in memory for a while, and a permanent code can remain until the control unit has verified the repair. If the reader really finds nothing, note when the light comes on and under what conditions.

Can a €10 reader miss a code?

Yes. Some readers only read confirmed codes, ignore pending and permanent codes, or show “no codes” when communication has failed. A reader that clearly distinguishes “no codes” from “the car is not responding” avoids this confusion.