A pending code is a fault the car's computer has seen once but not confirmed. A stored (confirmed) code is a fault it has seen again and confirmed, which turns on the check engine light. A permanent code is a copy of a confirmed code that a scan tool or battery disconnect can't erase; only the car clears it, after the fault is gone.
Key takeaways
- Pending ($07): seen once, usually on a single drive. The light stays off. It's erased if the next drive where that test runs is clean.
- Stored or confirmed: seen again on the next drive. The light comes on.
- Permanent: a copy of the confirmed code kept in memory that survives clearing. The car erases it only after confirming the fault is gone.
- Clearing codes doesn't clear permanent ones. California's BAR says so plainly.
- Inspection: California's Smog Check fails 2010-and-newer cars with a permanent code, unless enough driving has happened since the last clear.
Three Lists, Three Requests
An OBD-II engine computer doesn't keep one list of codes. It keeps several, and a scan tool reads each with a separate standard request, called a mode or service:
| List | What it holds | Check engine light |
|---|---|---|
| Pending | Faults detected during the current or last drive, not yet confirmed (California's rule calls this request Mode $07) | Off |
| Stored (confirmed) | Faults that have been confirmed | On while the fault is active |
| Permanent | Confirmed codes kept in memory that can't be cleared | Usually on when first stored |
A separate request clears codes and stored values. It wipes the pending and stored lists. It does not touch the permanent list.
Good scan tools label which list a code came from. Basic readers sometimes show only stored codes, or mix the lists together, so it's worth checking your tool's labels. If you're new to the code format itself, read what a DTC is first.
Pending Codes ($07): Seen Once
California's OBD regulation defines a pending code as the code "stored upon the initial detection of a malfunction (e.g., typically on a single driving cycle) prior to illumination of the MIL."
In plain terms, the computer saw something wrong once and wrote it down, but it isn't sure yet. The light stays off.
What happens next depends on the next drive where that same self-test runs:
- The fault shows up again: the light comes on and the code becomes confirmed.
- The fault doesn't show up: the regulation says the pending code "shall be erased at the end of the driving cycle."
Pending codes are useful early warnings. They're also handy after a repair: if you fix something, clear codes and a pending code appears on the next drive, the fix didn't take.
Some monitors take longer to confirm. California's rule allows manufacturers, with approval, to use statistical protocols that take up to 12 driving cycles on average for the smallest EVAP leak, the kind behind codes like P0456.
Stored Codes: Confirmed
A confirmed code is, in the regulation's words, the code "stored when an OBD II system has confirmed that a malfunction exists (e.g., typically on the second driving cycle that the malfunction is detected)." At that point the check engine light comes on.
This is what most people mean by "the code": the thing a parts store reader shows, and what a federal OBD inspection reads with a standard request.
A stored code goes away in one of two ways:
- Cleared with a scan tool or by disconnecting the battery. This also turns the light off and resets the readiness monitors. See how to clear the check engine light.
- Erased by the car itself. The light goes out after three driving cycles without the fault, and the code is erased after 40 engine warm-up cycles without it. Until then you can have the light off with the code still stored, which is covered in check engine light off but code still there.
Permanent Codes: The Ones You Can't Clear
California's regulation defines a permanent code simply as "a confirmed fault code that is stored in NVRAM," meaning memory that survives losing power. California's Bureau of Automotive Repair (BAR) adds the part that matters to owners: permanent codes "cannot be erased by clearing the DTCs with a scan tool or by disconnecting the vehicle's battery."
The point of a permanent code is to stop a fault from disappearing just before an inspection. Clearing the light doesn't clear the evidence.
How a permanent code does clear. Only the car's computer erases it, and only after it confirms the fault is gone. The regulation describes two paths:
- If the light is on: the permanent code is erased when the light goes out on its own. That is, after the monitor that set it runs on three drives in a row without finding the fault.
- If someone cleared the codes: the permanent code is erased at the end of a drive where the monitor that set it runs and finds no fault. For some monitors, including misfire and fuel system, the rule adds extra driving conditions before that drive counts.
So the way to get rid of a permanent code is to fix the cause, then drive normally until the matching self-test runs and passes. There's no shortcut with a scan tool.
Which monitor matters? The permanent code tells you. A permanent P0420 clears when the catalyst test runs and passes; a permanent P0442 needs the EVAP test, which has narrow run conditions. The gas cap guide explains those conditions.
The Life of a Code, Start to Finish
Here's how one fault moves through the lists. Take a small EVAP leak as the example.
| Stage | Pending | Stored | Permanent | Light |
|---|---|---|---|---|
| Drive 1: test runs, leak found | Yes | — | — | Off |
| Drive 2: test runs, leak found again | Yes | Yes | Yes | On |
| Owner clears codes with a scan tool | — | — | Yes | Off |
| Next drive where test runs, leak still there | Yes | — | Yes | Off, then on again once confirmed |
| Leak repaired; test runs and passes | — | — | Erased | Off |
Two lessons come out of that table:
- Clearing doesn't reset the story. The permanent code stays, and an unrepaired fault comes straight back.
- The fix is confirmed by driving. Only a passing self-test removes the permanent code.
If you have several codes moving through these stages at once, the multi-code tool shows which is likely the primary one.
What This Means for Inspection
Rules vary by state, but the federal OBD inspection rule (40 CFR 85.2222) sets the baseline:
- Stored codes with the light on fail. The rule says codes "resulting in MIL illumination" mean the vehicle "shall fail."
- Not-ready monitors can fail too. 1996–2000 models may have two unset monitors and 2001-and-newer models one. Clearing codes resets monitors, and Ohio's E-Check program rejects cars that aren't ready.
California goes further. Since July 1, 2019, BAR has included permanent codes in Smog Check failure criteria for 2010-and-newer vehicles. There's one built-in allowance: BAR ignores a permanent code once the car "has completed at least 15 warm-up cycles and been driven at least 200 miles since its OBD information was last cleared."
What this means in practice:
- Fix the fault first.
- Drive normally, with a mix of conditions, until the monitors read ready and the permanent code clears. Check both with a scan tool.
- Then go for the test.
Clearing codes the morning of an inspection is the one approach that reliably doesn't work. For the bigger picture on the check engine light, see the check engine light guide.
Questions drivers ask
What's the difference between a pending and a stored code?
A pending code is stored the first time the computer sees a fault, usually on one drive, and the check engine light stays off. If it sees the fault again on the next drive where that test runs, the code becomes confirmed (stored) and the light comes on. If not, the pending code is erased.
Can you clear a permanent code with a scan tool?
No. California's Bureau of Automotive Repair says permanent codes can't be erased with a scan tool or by disconnecting the battery. The car's own computer erases one after the monitor that set it runs and finds the fault gone.
How do I get rid of a permanent code?
Fix the fault, then drive normally so the related self-test can run and pass. If the light was on, the permanent code clears along with the light. If you cleared codes with a scan tool, it clears at the end of a drive where that test runs and passes.
Do permanent codes fail a smog check?
In California, yes, for 2010-and-newer vehicles, since July 2019. BAR ignores a permanent code once the car has completed at least 15 warm-up cycles and 200 miles since its codes were last cleared. Other states set their own rules.
Should I worry about a pending code?
Take note of it. A pending code means the computer saw a fault once. It may be a one-off, or the start of a problem that will confirm on the next drive. Look up the code and watch whether the light comes on.
Sources & further reading
- law.cornell.edu — 13 CCR 1968.2 https://www.law.cornell.edu/regulations/california/13-CCR-1968.2 Open source ↗
- California Air Resources Board (CARB) — Attacha https://ww2.arb.ca.gov/sites/default/files/barcu/regact/obd02/attacha.pdf Open source ↗
- bar.ca.gov — Obd Test Reference https://www.bar.ca.gov/obd-test-reference Open source ↗
- bar.ca.gov — Permanent Diagnostic Trouble Codes https://www.bar.ca.gov/arsc/newsletters/newsletter/fall-2019/permanent-diagnostic-trouble-codes Open source ↗
- law.cornell.edu — 85.2222 https://www.law.cornell.edu/cfr/text/40/85.2222 Open source ↗
- govinfo.gov — CFR 2012 Title40 Vol20 Sec86 1806 05 https://www.govinfo.gov/content/pkg/CFR-2012-title40-vol20/pdf/CFR-2012-title40-vol20-sec86-1806-05.pdf Open source ↗
- dam.assets.ohio.gov — Readiness Fact Sheet https://dam.assets.ohio.gov/image/upload/epa.ohio.gov/Portals/27/echeck/docs/Readiness-fact-sheet.pdf Open source ↗