Diagnostics guide
Light on, but the scanner says no codes
Your adapter probably is not broken. Most readers ask the engine computer and stop — and the engine computer is often not the one with something to say.
Why does my scanner say no codes when the warning light is on?
Usually because the scanner only asked the engine computer. A modern car runs several independent modules — transmission, ABS and stability control, body electronics, all-wheel drive, hybrid systems — and any of them can turn on a warning lamp while storing its code locally. A basic reader that queries the engine module and stops will report “no codes” quite truthfully, and be looking in the wrong place. The fix is to read every module that answers, not just the first one that replies.
A warning light is not always an engine light
Your car is not one computer. It is several, each responsible for its own systems and each keeping its own fault records — the engine module, the transmission controller, the ABS and stability-control module, body electronics, and on some cars all-wheel-drive and hybrid systems. Any of them can decide something is wrong and light a lamp on the dash.
A basic reader asks the engine module. If the engine module is fine, it answers “no codes” — and it is telling the truth. It was simply never asked the question you meant.
What reading “every module that answers” actually means
Kaiju Mechanic sends the standard request and reads back every module that responds, rather than taking the first reply and stopping. When a car reports which module a code came from, the app shows it, so a transmission or ABS code is visibly theirs instead of disappearing.
How much a given car exposes varies. Some answer from several modules; some answer only from the engine. That is a property of the vehicle, not of the app — and it is why this is worth checking rather than assuming.
What to check, in order
1.Check which lamp is actually on
A check engine light and an ABS, traction, or transmission warning are different systems. If the lamp is not the engine one, the engine module may genuinely have nothing to report — and a reader that only asks it will agree.
2.Read every module that answers, not just the first
Ask the car broadly rather than asking the engine and stopping. Modules that respond to the standard request identify themselves as they reply, so a code held by the transmission or the ABS controller shows up as belonging to that module rather than vanishing.
3.Look for pending codes as well as stored ones
A stored code is a confirmed fault; a pending code is one the car has seen once and not yet confirmed. An intermittent problem often sits in pending for a while before it becomes stored, which is exactly the window where a basic read looks empty.
4.Check permanent codes before you believe the light went away
Permanent codes are the set a scanner cannot clear — they stay until the car itself is satisfied the fault is gone. If the lamp went out on its own, that is the place to look for what caused it.
5.If every module really is clear, treat that as information
A genuinely codeless warning lamp is a real state, not a failure to find something. It points at a sensor reading that is out of range without having tripped a threshold, a wiring or ground fault, or a bulb-check quirk — and it is worth describing to someone rather than clearing and hoping.
The lamp going out does not mean the code went away
This catches people out constantly. A warning light can switch itself off once the condition stops repeating, while the record of it stays in the car. Stored codes, pending codes and permanent codes can all outlive the lamp.
Permanent codes are the strongest version of that: a scanner cannot clear them. They stay until the car has satisfied itself the fault is genuinely gone. So “it went off by itself” is a reason to read the car, not a reason to stop.
When there really is nothing to find
Sometimes every module that answers is genuinely clear and the lamp is still on. That is a real result rather than a failed search, and it narrows things usefully — a reading drifting out of range without tripping a threshold, a wiring or ground problem, or a fault in the warning circuit itself.
What this page does not cover: Some manufacturers expose extra modules through their own non-standard requests. That is a different capability from the standard read described here, and Kaiju Mechanic does not offer it today.
This page is general guidance. What a specific code means on your particular engine, with its mileage and symptoms, is a different question — look up a specific trouble code, or see why an emissions test can fail with no light on at all.
Ask the whole car, not just the engine
Kaiju Mechanic reads stored, pending and permanent codes from every module that answers, and shows which module each one came from. Reading is free — no subscription, no credits. You need a standard OBD-II adapter; the one you already have will do.
Setup is install the app, add your car, connect your adapter, then scan.
Ready?
Your car deserves better
than guessing.
Download Kaiju Mechanic free and start your first AI conversation in under a minute. No appointment. AI chat works without an adapter — live sensor reads use any standard ELM327 you bring. Just answers.