OBD-II Codes: What They Mean and How to Read Them

An OBD-II code is a five-character diagnostic trouble code, such as P0420, that a car’s computer stores when a system fails a self-test. The letter names the area (P powertrain, B body, C chassis, U network), the next digit says whether the code is generic or manufacturer-specific, and the rest pinpoints the fault. Below are 240 common generic codes explained.

Updated 2026-11-07 · By CarWhere Research · Code titles per SAE J2012 / ISO 15031-6

Most-searched codes

How to read an OBD-II code

PositionWhat it tells you
1st character (letter)Vehicle area: P = powertrain (engine, transmission, emissions), B = body (airbags, seats, climate), C = chassis (ABS, steering, suspension), U = network (communication between control modules).
2nd character0 = generic code with a definition set by SAE J2012 / ISO 15031-6, the same on every make. 1 = manufacturer-specific, defined by the automaker. 2 and 3 are split between further generic ranges and manufacturer-controlled ranges.
3rd characterSubsystem (for P0 codes): 0, 1 and 2 = fuel and air metering (2 = injector circuits); 3 = ignition and misfire; 4 = auxiliary emission controls (EGR, EVAP, catalyst); 5 = vehicle speed, idle control and auxiliary inputs; 6 = computer and output circuits; 7, 8 and 9 = transmission; A = hybrid propulsion.
4th & 5th charactersThe specific fault within that subsystem, e.g. P0420 = catalyst efficiency below threshold on bank 1, P0301 = misfire detected in cylinder 1.

Bank and sensor numbers: on V6, V8 and flat engines, bank 1 is the side with cylinder 1 and bank 2 is the other side; inline engines have only bank 1. Oxygen sensor 1 is upstream of the catalytic converter and sensor 2 is downstream.

How to check your codes

  1. Find the 16-pin diagnostic connector (data link connector). Federal rules require it within reach of the driver’s seat — usually under the dashboard near the steering column.
  2. Plug in an OBD-II scan tool or code reader and turn the ignition on (engine off or running, per the tool’s instructions). Many auto parts stores will also read codes at no charge.
  3. Read all stored, pending and permanent codes, plus the freeze-frame data — a snapshot of speed, temperature and load at the moment the code set.
  4. Write everything down before clearing anything. Clearing erases freeze-frame data and resets the readiness monitors used by emissions inspections.
  5. Look up each code below, start with the first code that set, and fix root causes (vacuum leaks, misfires, wiring) before replacing expensive parts.

All OBD-II codes we explain

Showing 240 of 240 codes

CodeDefinitionSeverity
P0010"A" Camshaft Position Actuator Circuit (Bank 1)Moderate
P0011"A" Camshaft Position - Timing Over-Advanced or System Performance (Bank 1)Moderate
P0012"A" Camshaft Position - Timing Over-Retarded (Bank 1)Moderate
P0013"B" Camshaft Position - Actuator Circuit (Bank 1)Moderate
P0014"B" Camshaft Position - Timing Over-Advanced or System Performance (Bank 1)Moderate
P0016Crankshaft Position - Camshaft Position Correlation (Bank 1 Sensor A)High
P0017Crankshaft Position - Camshaft Position Correlation (Bank 1 Sensor B)High
P0018Crankshaft Position - Camshaft Position Correlation (Bank 2 Sensor A)High
P0020"A" Camshaft Position Actuator Circuit (Bank 2)Moderate
P0021"A" Camshaft Position - Timing Over-Advanced or System Performance (Bank 2)Moderate
P0022"A" Camshaft Position - Timing Over-Retarded (Bank 2)Moderate
P0030HO2S Heater Control Circuit (Bank 1 Sensor 1)Low
P0036HO2S Heater Control Circuit (Bank 1 Sensor 2)Low
P0037HO2S Heater Control Circuit Low (Bank 1 Sensor 2)Low
P0038HO2S Heater Control Circuit High (Bank 1 Sensor 2)Low
P0050HO2S Heater Control Circuit (Bank 2 Sensor 1)Low
P0068MAP/MAF - Throttle Position CorrelationHigh
P0087Fuel Rail/System Pressure - Too LowHigh
P0088Fuel Rail/System Pressure - Too HighHigh
P0089Fuel Pressure Regulator 1 PerformanceModerate
P0100Mass or Volume Air Flow CircuitModerate
P0101Mass or Volume Air Flow Circuit Range/PerformanceModerate
P0102Mass or Volume Air Flow Circuit Low InputModerate
P0103Mass or Volume Air Flow Circuit High InputModerate
P0106Manifold Absolute Pressure/Barometric Pressure Circuit Range/PerformanceModerate
P0107Manifold Absolute Pressure/Barometric Pressure Circuit Low InputModerate
P0108Manifold Absolute Pressure/Barometric Pressure Circuit High InputModerate
P0110Intake Air Temperature Sensor 1 Circuit (Bank 1)Low
P0111Intake Air Temperature Sensor 1 Circuit Range/Performance (Bank 1)Low
P0112Intake Air Temperature Sensor 1 Circuit Low (Bank 1)Low
P0113Intake Air Temperature Sensor 1 Circuit High (Bank 1)Low
P0115Engine Coolant Temperature CircuitModerate
P0116Engine Coolant Temperature Circuit Range/PerformanceModerate
P0117Engine Coolant Temperature Circuit LowModerate
P0118Engine Coolant Temperature Circuit HighModerate
P0120Throttle/Pedal Position Sensor/Switch "A" CircuitHigh
P0121Throttle/Pedal Position Sensor/Switch "A" Circuit Range/PerformanceHigh
P0122Throttle/Pedal Position Sensor/Switch "A" Circuit LowHigh
P0123Throttle/Pedal Position Sensor/Switch "A" Circuit HighHigh
P0125Insufficient Coolant Temperature for Closed Loop Fuel ControlLow
P0128Coolant Thermostat (Coolant Temperature Below Thermostat Regulating Temperature)Low
P0130O2 Sensor Circuit (Bank 1 Sensor 1)Moderate
P0131O2 Sensor Circuit Low Voltage (Bank 1 Sensor 1)Moderate
P0132O2 Sensor Circuit High Voltage (Bank 1 Sensor 1)Moderate
P0133O2 Sensor Circuit Slow Response (Bank 1 Sensor 1)Low
P0134O2 Sensor Circuit No Activity Detected (Bank 1 Sensor 1)Moderate
P0135O2 Sensor Heater Circuit (Bank 1 Sensor 1)Low
P0136O2 Sensor Circuit (Bank 1 Sensor 2)Low
P0137O2 Sensor Circuit Low Voltage (Bank 1 Sensor 2)Low
P0138O2 Sensor Circuit High Voltage (Bank 1 Sensor 2)Low
P0139O2 Sensor Circuit Slow Response (Bank 1 Sensor 2)Low
P0140O2 Sensor Circuit No Activity Detected (Bank 1 Sensor 2)Low
P0141O2 Sensor Heater Circuit (Bank 1 Sensor 2)Low
P0150O2 Sensor Circuit (Bank 2 Sensor 1)Moderate
P0151O2 Sensor Circuit Low Voltage (Bank 2 Sensor 1)Moderate
P0152O2 Sensor Circuit High Voltage (Bank 2 Sensor 1)Moderate
P0153O2 Sensor Circuit Slow Response (Bank 2 Sensor 1)Low
P0154O2 Sensor Circuit No Activity Detected (Bank 2 Sensor 1)Moderate
P0155O2 Sensor Heater Circuit (Bank 2 Sensor 1)Low
P0156O2 Sensor Circuit (Bank 2 Sensor 2)Low
P0157O2 Sensor Circuit Low Voltage (Bank 2 Sensor 2)Low
P0158O2 Sensor Circuit High Voltage (Bank 2 Sensor 2)Low
P0160O2 Sensor Circuit No Activity Detected (Bank 2 Sensor 2)Low
P0161O2 Sensor Heater Circuit (Bank 2 Sensor 2)Low
P0171System Too Lean (Bank 1)Moderate
P0172System Too Rich (Bank 1)Moderate
P0174System Too Lean (Bank 2)Moderate
P0175System Too Rich (Bank 2)Moderate
P0191Fuel Rail Pressure Sensor "A" Circuit Range/PerformanceHigh
P0193Fuel Rail Pressure Sensor "A" Circuit HighHigh
P0201Injector Circuit/Open - Cylinder 1High
P0202Injector Circuit/Open - Cylinder 2High
P0203Injector Circuit/Open - Cylinder 3High
P0204Injector Circuit/Open - Cylinder 4High
P0205Injector Circuit/Open - Cylinder 5High
P0206Injector Circuit/Open - Cylinder 6High
P0207Injector Circuit/Open - Cylinder 7High
P0208Injector Circuit/Open - Cylinder 8High
P0217Engine Coolant Over Temperature ConditionSevere
P0218Transmission Fluid Over Temperature ConditionHigh
P0219Engine Overspeed ConditionHigh
P0220Throttle/Pedal Position Sensor/Switch "B" CircuitHigh
P0221Throttle/Pedal Position Sensor/Switch "B" Circuit Range/PerformanceHigh
P0222Throttle/Pedal Position Sensor/Switch "B" Circuit LowHigh
P0223Throttle/Pedal Position Sensor/Switch "B" Circuit HighHigh
P0234Turbocharger/Supercharger "A" Overboost ConditionHigh
P0299Turbocharger/Supercharger "A" Underboost ConditionModerate
P0300Random/Multiple Cylinder Misfire DetectedHigh
P0301Cylinder 1 Misfire DetectedHigh
P0302Cylinder 2 Misfire DetectedHigh
P0303Cylinder 3 Misfire DetectedHigh
P0304Cylinder 4 Misfire DetectedHigh
P0305Cylinder 5 Misfire DetectedHigh
P0306Cylinder 6 Misfire DetectedHigh
P0307Cylinder 7 Misfire DetectedHigh
P0308Cylinder 8 Misfire DetectedHigh
P0320Ignition/Distributor Engine Speed Input CircuitHigh
P0325Knock Sensor 1 Circuit (Bank 1 or Single Sensor)Moderate
P0327Knock Sensor 1 Circuit Low (Bank 1 or Single Sensor)Moderate
P0328Knock Sensor 1 Circuit High (Bank 1 or Single Sensor)Moderate
P0330Knock Sensor 2 Circuit (Bank 2)Moderate
P0332Knock Sensor 2 Circuit Low (Bank 2)Moderate
P0335Crankshaft Position Sensor "A" CircuitHigh
P0336Crankshaft Position Sensor "A" Circuit Range/PerformanceHigh
P0340Camshaft Position Sensor "A" Circuit (Bank 1 or Single Sensor)Moderate
P0341Camshaft Position Sensor "A" Circuit Range/Performance (Bank 1 or Single Sensor)Moderate
P0345Camshaft Position Sensor "A" Circuit (Bank 2)Moderate
P0351Ignition Coil "A" Primary/Secondary CircuitHigh
P0352Ignition Coil "B" Primary/Secondary CircuitHigh
P0353Ignition Coil "C" Primary/Secondary CircuitHigh
P0354Ignition Coil "D" Primary/Secondary CircuitHigh
P0355Ignition Coil "E" Primary/Secondary CircuitHigh
P0356Ignition Coil "F" Primary/Secondary CircuitHigh
P0365Camshaft Position Sensor "B" Circuit (Bank 1)Moderate
P0366Camshaft Position Sensor "B" Circuit Range/Performance (Bank 1)Moderate
P0400Exhaust Gas Recirculation FlowModerate
P0401Exhaust Gas Recirculation Flow Insufficient DetectedModerate
P0402Exhaust Gas Recirculation Flow Excessive DetectedModerate
P0403Exhaust Gas Recirculation "A" Control CircuitModerate
P0404Exhaust Gas Recirculation "A" Control Circuit Range/PerformanceModerate
P0405Exhaust Gas Recirculation Sensor "A" Circuit LowLow
P0410Secondary Air Injection SystemLow
P0411Secondary Air Injection System Incorrect Flow DetectedLow
P0420Catalyst System Efficiency Below Threshold (Bank 1)Moderate
P0421Warm Up Catalyst Efficiency Below Threshold (Bank 1)Moderate
P0430Catalyst System Efficiency Below Threshold (Bank 2)Moderate
P0431Warm Up Catalyst Efficiency Below Threshold (Bank 2)Moderate
P0440Evaporative Emission SystemLow
P0441Evaporative Emission System Incorrect Purge FlowLow
P0442Evaporative Emission System Leak Detected (Small Leak)Low
P0443Evaporative Emission System Purge Control Valve CircuitLow
P0446Evaporative Emission System Vent Control CircuitLow
P0449Evaporative Emission System Vent Valve/Solenoid CircuitLow
P0451Evaporative Emission System Pressure Sensor Range/PerformanceLow
P0452Evaporative Emission System Pressure Sensor Low InputLow
P0453Evaporative Emission System Pressure Sensor High InputLow
P0455Evaporative Emission System Leak Detected (Large Leak)Low
P0456Evaporative Emission System Leak Detected (Very Small Leak)Low
P0457Evaporative Emission System Leak Detected (Fuel Cap Loose/Off)Low
P0491Secondary Air Injection System Insufficient Flow (Bank 1)Low
P0492Secondary Air Injection System Insufficient Flow (Bank 2)Low
P0496Evaporative Emission System High Purge FlowModerate
P0497Evaporative Emission System Low Purge FlowLow
P0500Vehicle Speed Sensor "A"Moderate
P0501Vehicle Speed Sensor "A" Range/PerformanceModerate
P0505Idle Air Control SystemModerate
P0506Idle Air Control System RPM Lower Than ExpectedModerate
P0507Idle Air Control System RPM Higher Than ExpectedModerate
P0520Engine Oil Pressure Sensor/Switch "A" CircuitHigh
P0521Engine Oil Pressure Sensor/Switch "A" Range/PerformanceHigh
P0522Engine Oil Pressure Sensor/Switch "A" Circuit LowHigh
P0523Engine Oil Pressure Sensor/Switch "A" Circuit HighHigh
P0524Engine Oil Pressure Too LowSevere
P0530A/C Refrigerant Pressure Sensor "A" CircuitLow
P0532A/C Refrigerant Pressure Sensor "A" Circuit LowLow
P0562System Voltage LowHigh
P0563System Voltage HighHigh
P0571Brake Switch "A" CircuitModerate
P0600Serial Communication LinkModerate
P0601Internal Control Module Memory Check Sum ErrorHigh
P0603Internal Control Module Keep Alive Memory (KAM) ErrorModerate
P0604Internal Control Module Random Access Memory (RAM) ErrorHigh
P0605Internal Control Module Read Only Memory (ROM) ErrorHigh
P0606Control Module ProcessorHigh
P0607Control Module PerformanceModerate
P0641Sensor Reference Voltage "A" Circuit/OpenHigh
P0651Sensor Reference Voltage "B" Circuit/OpenHigh
P0700Transmission Control System (MIL Request)High
P0705Transmission Range Sensor "A" Circuit (PRNDL Input)High
P0706Transmission Range Sensor "A" Circuit Range/PerformanceHigh
P0710Transmission Fluid Temperature Sensor "A" CircuitModerate
P0711Transmission Fluid Temperature Sensor "A" Circuit Range/PerformanceModerate
P0712Transmission Fluid Temperature Sensor "A" Circuit LowModerate
P0713Transmission Fluid Temperature Sensor "A" Circuit HighModerate
P0715Input/Turbine Speed Sensor "A" CircuitHigh
P0716Input/Turbine Speed Sensor "A" Circuit Range/PerformanceHigh
P0717Input/Turbine Speed Sensor "A" Circuit No SignalHigh
P0720Output Speed Sensor CircuitHigh
P0721Output Speed Sensor Circuit Range/PerformanceHigh
P0722Output Speed Sensor Circuit No SignalHigh
P0725Engine Speed Input CircuitModerate
P0729Gear 6 Incorrect RatioHigh
P0730Incorrect Gear RatioHigh
P0731Gear 1 Incorrect RatioHigh
P0732Gear 2 Incorrect RatioHigh
P0733Gear 3 Incorrect RatioHigh
P0734Gear 4 Incorrect RatioHigh
P0735Gear 5 Incorrect RatioHigh
P0740Torque Converter Clutch Solenoid Circuit/OpenModerate
P0741Torque Converter Clutch Solenoid Circuit Performance/Stuck OffModerate
P0743Torque Converter Clutch Solenoid Circuit ElectricalModerate
P0745Pressure Control Solenoid "A"High
P0748Pressure Control Solenoid "A" ElectricalHigh
P0750Shift Solenoid "A"High
P0751Shift Solenoid "A" Performance/Stuck OffHigh
P0752Shift Solenoid "A" Stuck OnHigh
P0753Shift Solenoid "A" ElectricalHigh
P0755Shift Solenoid "B"High
P0756Shift Solenoid "B" Performance/Stuck OffHigh
P0758Shift Solenoid "B" ElectricalHigh
P0760Shift Solenoid "C"High
P0763Shift Solenoid "C" ElectricalHigh
P0765Shift Solenoid "D"High
P0780Shift ErrorHigh
P0841Transmission Fluid Pressure Sensor/Switch "A" Circuit Range/PerformanceModerate
P0868Transmission Fluid Pressure LowHigh
P0882TCM Power Input Signal LowHigh
P0894Transmission Component SlippingHigh
P0A80Replace Hybrid Battery PackHigh
P2002Diesel Particulate Filter Efficiency Below Threshold (Bank 1)Moderate
P2096Post Catalyst Fuel Trim System Too Lean (Bank 1)Low
P2097Post Catalyst Fuel Trim System Too Rich (Bank 1)Moderate
P2098Post Catalyst Fuel Trim System Too Lean (Bank 2)Low
P2099Post Catalyst Fuel Trim System Too Rich (Bank 2)Moderate
P20EESCR NOx Catalyst Efficiency Below Threshold (Bank 1)High
P2101Throttle Actuator "A" Control Motor Circuit Range/PerformanceHigh
P2111Throttle Actuator "A" Control System - Stuck OpenHigh
P2112Throttle Actuator "A" Control System - Stuck ClosedHigh
P2119Throttle Actuator "A" Control Throttle Body Range/PerformanceHigh
P2122Throttle/Pedal Position Sensor/Switch "D" Circuit LowHigh
P2135Throttle/Pedal Position Sensor/Switch "A"/"B" Voltage CorrelationHigh
P2138Throttle/Pedal Position Sensor/Switch "D"/"E" Voltage CorrelationHigh
P2177System Too Lean Off Idle (Bank 1)Moderate
P2187System Too Lean at Idle (Bank 1)Moderate
P2188System Too Rich at Idle (Bank 1)Moderate
P2195O2 Sensor Signal Biased/Stuck Lean (Bank 1 Sensor 1)Moderate
P2196O2 Sensor Signal Biased/Stuck Rich (Bank 1 Sensor 1)Moderate
P2270O2 Sensor Signal Biased/Stuck Lean (Bank 1 Sensor 2)Low
P2271O2 Sensor Signal Biased/Stuck Rich (Bank 1 Sensor 2)Moderate
P2279Intake Air System LeakModerate
P2459Diesel Particulate Filter Regeneration FrequencyModerate
P2463Diesel Particulate Filter Restriction - Soot Accumulation (Bank 1)High
P2BADNOx Exceedance - Root Cause UnknownHigh
U0073Control Module Communication Bus "A" OffHigh
U0100Lost Communication With ECM/PCM "A"High
U0101Lost Communication With TCMHigh
U0121Lost Communication With Anti-Lock Brake System (ABS) Control ModuleHigh
U0140Lost Communication With Body Control ModuleModerate
U0151Lost Communication With Restraints Control ModuleHigh
U0155Lost Communication With Instrument Panel Cluster (IPC) Control ModuleModerate

Seeing a light, not a code?

Check engine, traction control, ABS, oil pressure and 20+ other dashboard symbols explained, with what each color means and whether to keep driving: dashboard warning lights guide →

Frequently asked questions

What is an OBD-II code?

An OBD-II code (diagnostic trouble code, or DTC) is a five-character code the engine or transmission computer stores when a monitored sensor, circuit or system fails one of its self-tests. Every car and light truck sold in the US since the 1996 model year has OBD-II, and a serious enough fault also turns on the check engine light.

Are OBD-II codes the same for every car?

Generic codes (a 0 as the second character, such as P0420) have the same standard definition on every make under SAE J2012. Manufacturer-specific codes (such as P1xxx) are defined by each automaker, and even generic codes can have make-specific test conditions, so factory service information is the final word.

Does a code tell me which part to replace?

No. A code tells you which circuit or condition failed a check, not which part is bad. An oxygen-sensor code can be caused by wiring, an exhaust leak or a fuel problem; testing confirms the cause before parts are replaced.

Can I just clear the code?

You can clear codes with a scan tool, but if the fault is still there the code and the light come back. Clearing also resets the readiness monitors, so the car can fail an emissions inspection until it has been driven enough for the monitors to rerun. Write down the codes and freeze-frame data first.

What is the difference between pending, confirmed and permanent codes?

A pending code means a fault was seen once and the computer is waiting to see it again. A confirmed (stored) code has met the conditions to turn on the check engine light. On newer vehicles a permanent code cannot be erased with a scan tool; it clears itself only after the computer re-tests the system and it passes.

Is a flashing check engine light different from a steady one?

Yes. A steady light means a fault has been stored and should be diagnosed soon. A flashing light means a misfire severe enough to damage the catalytic converter is happening right now; reduce speed and load and stop driving as soon as you safely can.

Related research

Sources

General information, not a diagnosis of your vehicle. Confirm with factory service information for your year, make and model.