Pull up the code list on your scanner and you’ll see more than just codes: you’ll see codes labeled pending, stored (or confirmed), and permanent. If you’ve ever wondered why the same code shows up in three different places — or why one won’t clear no matter how many times you hit “erase” — this guide explains what each type is and what it means for your car.

The short version: these three labels describe how sure your car’s computer is that a problem is real. Pending is “maybe,” stored is “yes,” and permanent is “yes, and you can’t erase it with a scanner.” Here’s the full picture.

What a drive cycle is first

To understand the code types, you need to know what a drive cycle is. Your car’s computer doesn’t judge its systems on one instant of data — it runs tests, called monitors, while you drive, and each monitor needs specific conditions to run. A “drive cycle” is the sequence of driving conditions (cold start, idle, acceleration, steady cruise) that lets the monitors complete their tests.

When a monitor runs and the system fails the test, the computer starts the code-setting process. Whether a code ends up pending, stored, or permanent depends on how many times that failure repeats.

Pending codes: the “maybe” codes

A pending code is set the first time a monitor detects a problem. It’s the computer’s way of saying “I think something might be wrong, but I’m not sure yet — let me test again.”

Key things to know about pending codes:

  • They do not turn on the check engine light by themselves. The light only comes on when the problem is confirmed (see below).
  • They may be labeled “pending” or “inactive” on your scanner, and they’re sometimes listed separately from the main code list.
  • They disappear on their own if the system passes the next test — the computer simply forgets the one-time failure.
  • They can be cleared with a scanner, but if the problem is real, they’ll come back.

A pending code is useful for catching problems before they become expensive. If you see a pending P0300 (misfire) on a Monday, you have a warning that a confirmed misfire is probably coming — a good time to have the car looked at rather than waiting for the light.

Stored (confirmed) codes: the “yes” codes

When the same failure repeats on the next drive cycle (the exact rules vary by manufacturer — some require the failure on two consecutive trips, some require it a certain number of times), the pending code becomes a stored or confirmed code. This is the code that turns the check engine light on.

Stored codes are what most people think of as “the codes”:

  • They turn on and keep the check engine light illuminated.
  • They stay in the computer’s memory for many drive cycles, even if the problem stops happening.
  • They include freeze frame data — a snapshot of engine conditions at the moment the code set.
  • You can clear them with any scanner that has an erase function.

Clearing a stored code turns the light off, but it doesn’t fix anything. If the fault is still present, the light returns after the monitor fails again. If the fault was genuinely intermittent, the light may stay off for a long time — and the code stays in memory until it’s cleared or eventually aged out.

Permanent codes: the codes you can’t clear

A permanent code is the newest and least understood type. It was introduced for vehicles starting around the 2010 model year as part of stricter emissions testing rules. Here’s what makes it different:

  • You cannot erase a permanent code with a scanner. Press “clear” all you want — the permanent code stays. This is by design.
  • It clears only after the vehicle completes a set of successful drive cycles with the system passing its monitors — typically on the order of 20 to 40 warm-up cycles, though it varies by manufacturer.
  • The check engine light can go off while a permanent code is still present. If the light is off but a permanent code is stored, the system has started passing, and the code is just “counting down” until it clears itself.

Why does this exist? To stop people from clearing codes to pass an emissions test. In states that use OBD testing for inspection, some testers check for permanent codes to confirm the car’s systems have actually been running clean — erasing a code doesn’t erase a permanent code, so “clear it and hope” doesn’t work anymore. The EVAP system, which is a common inspection failure, is a good example of a system where a permanent code can linger after a simple fix like tightening a gas cap.

Side by side

Pending Stored (confirmed) Permanent
Set when First failed monitor test Failure repeats on later drive cycles A confirmed code on newer vehicles
Check engine light Off On Can be off or on
Can you clear it with a scanner? Yes Yes No — clears itself after clean drive cycles
What it means “Maybe a problem” “Confirmed problem” “Confirmed, and the system must prove it’s fixed”
Why it matters Early warning The code you diagnose from Emissions testing and proof of repair

What should you do with each type?

Here’s a practical playbook:

  • Pending code: Note it, and watch for the light. If it’s a cheap, common cause like a loose gas cap (often a pending P0455 or P0456 EVAP leak), tighten the cap and see if it goes away. If it becomes a stored code, treat it as real.
  • Stored code: This is what you diagnose. Look up the code (like P0171 for a lean condition), check the freeze frame data, and decide whether it’s a DIY job or a shop visit. Don’t just clear it and forget it — the light will be back.
  • Permanent code: There’s no point trying to clear it, so don’t pay anyone to. Fix the underlying problem, drive normally for a few weeks, and it will erase itself once the computer confirms the system is healthy. If you’re heading to an emissions test, make sure the fix is real and the system has had time to pass its monitors — that’s the only way the permanent code goes away.

The bottom line

Pending, stored, and permanent codes are simply three levels of the same diagnosis process: first failure, confirmed failure, and confirmed failure that has to be proven fixed. The labels tell you how much weight to give each code. A pending code is a heads-up, a stored code is a to-do, and a permanent code is a reminder that your car’s computer wants to see the fix work — not just hear that you cleared it.

Frequently asked questions

Why won’t my code clear even after I erase it? If it’s a permanent code, that’s normal — permanent codes can’t be cleared with a scanner and only erase themselves after the system passes a series of drive cycles. If it’s a stored code that keeps returning, the underlying problem is still there and needs an actual repair.

Can a pending code turn on my check engine light? No. Pending codes never turn on the light by themselves — they’re the first single failure, and the computer waits for a repeat before confirming and lighting the MIL. If the light is on, you have at least one stored (confirmed) code.

Do I need to worry about permanent codes? Only if you live in a state with OBD-based emissions testing, where permanent codes can affect whether you pass. Otherwise, treat a permanent code as confirmation that a stored code is real: fix the cause, drive normally, and let the computer clear it on its own schedule.