Chevrolet Engine Error Codes Explained (GM OBD-II Fault Codes)
When your Chevrolet or GM vehicle flags a check-engine light, the engine control module (ECM) stores a diagnostic trouble code (DTC) that pinpoints the system at fault. Most Chevrolet codes are generic OBD-II codes — they mean the same thing on any make — and the vast majority point to sensors, mixture, ignition or emissions parts rather than a dead engine. Reading the code with a scanner first saves you from throwing parts at the problem. If a diagnosis does confirm serious internal damage and replacement is the sensible call, you can compare options through Chevrolet engines for sale on the Engine Finder marketplace.
Key Takeaways
| Code | What it means | Typical fix |
|---|---|---|
| P0011 | Camshaft timing over-advanced/retarded (Bank 1) | VVT solenoid, oil level/quality, timing chain |
| P0171 | System too lean (Bank 1) | Vacuum leak, MAF sensor, fuel delivery |
| P0172 | System too rich (Bank 1) | Leaking injector, faulty O2 sensor, fuel pressure |
| P0300 | Random/multiple-cylinder misfire | Spark plugs, coils, leads, fuel or compression |
| P0420 | Catalyst efficiency below threshold (Bank 1) | Catalytic converter, O2 sensor, exhaust leak |
| P0507 | Idle RPM higher than expected | Vacuum leak, dirty throttle body, IAC |
| P2135 | Throttle/pedal sensor voltage correlation | Throttle body sensor, pedal sensor, wiring |
💡 A single vacuum leak can set several codes at once — P0171 (lean), P0300 (misfire) and P0507 (high idle) often show together.
⚠️ These are generic OBD-II definitions. Always confirm the exact code with a scan tool before buying parts — clearing a code without fixing the cause just brings the light back.
📩 Need a replacement engine or hard-to-find GM part? Request a quote through Engine Finder and get prices from used-engine suppliers and scrapyards across South Africa.
How to read a GM / Chevrolet trouble code
Every OBD-II code has five characters, and each one tells you something:
- First letter — the system: P = powertrain (engine/transmission), B = body, C = chassis, U = network/communication. Almost all engine faults start with P.
- First digit — 0 means a generic (SAE) code that means the same on every car; 1 means a manufacturer-specific (GM) code.
- Second digit — the sub-system: 1–2 = fuel & air metering, 3 = ignition/misfire, 4 = emissions (auxiliary), 5 = idle/speed control, 6 = computer/outputs, 7–8 = transmission.
- Last two digits — the specific fault.
So P0301 reads as: powertrain, generic, ignition/misfire, cylinder 1 misfire. You’ll need a basic OBD-II scanner (or a Bluetooth ELM327 dongle with a phone app) plugged into the 16-pin port under the dashboard to read and clear codes. Chevrolet vehicles have used OBD-II since the 1996 model year.
Camshaft timing & position codes (P0011, P0012, P0014, P0015) {#p0011-p0012-p0014-p0015-camshaft-timing}
These relate to variable valve timing (VVT) — where the ECM adjusts camshaft position on the fly. (Note: on Chevrolet/GM this is the VVT system — “VANOS” is BMW’s name for its own system, not a GM term.)
P0011 — “A” Camshaft Position, Timing Over-Advanced or System Performance (Bank 1). The ECM has commanded a camshaft position but the intake cam is more advanced than it should be. Common causes: a stuck or faulty VVT (oil control) solenoid, low or dirty engine oil, a clogged oil passage, or a worn timing chain. Because dirty oil is the number-one trigger, a fresh oil-and-filter service with the correct grade is the first thing to try.
P0012 — “A” Camshaft Position, Timing Over-Retarded (Bank 1). The mirror image of P0011 — the intake cam is lagging the commanded position. Same suspects: VVT solenoid, oil level/pressure, and timing components.
P0014 — “B” Camshaft Position, Timing Over-Advanced or System Performance (Bank 1). The same fault as P0011 but on the exhaust (“B”) camshaft. Check the exhaust VVT solenoid and oil supply.
P0015 — “B” Camshaft Position, Timing Over-Retarded (Bank 1). The exhaust cam is more retarded than commanded. Symptoms include rough idle, hard starting, a rattle from the timing area and reduced fuel economy. Suspect the exhaust VVT solenoid, oil condition, or a stretched timing chain.
Camshaft/crankshaft correlation & sensor codes (P0016, P0017, P0341, P0342, P0366) {#p0016-p0017-p0341-camshaft-correlation}
P0016 — Crankshaft Position / Camshaft Position Correlation (Bank 1, Sensor A). The crankshaft and camshaft positions don’t line up. This is often a mechanical timing issue (stretched/jumped timing chain, worn tensioner) rather than just a sensor — take it seriously, as a jumped chain can damage valves.
P0017 — Crankshaft Position / Camshaft Position Correlation (Bank 1, Sensor B). The same correlation fault referenced to the “B” (exhaust) camshaft. Check timing components, the cam/crank sensors and their wiring.
P0341 — Camshaft Position Sensor “A” Circuit Range/Performance. The cam sensor signal is out of its expected range. Usual causes: a failing camshaft position sensor, a damaged reluctor/tone ring, or wiring/connector faults.
P0342 — Camshaft Position Sensor “A” Circuit Low. The sensor’s signal voltage is lower than expected — typically a bad sensor, a short to ground, or a poor connection.
P0366 — Camshaft Position Sensor “B” Circuit Range/Performance (Bank 1). As P0341 but for the “B” camshaft sensor. Inspect the sensor, the tone ring and the wiring.
Air-fuel mixture codes (P0171, P0172, P2187, P2188, P2096) {#p0171-p0172-p2187-p2188-p2096-air-fuel-mixture}
These tell you whether the engine is running lean (too much air) or rich (too much fuel).
P0171 — System Too Lean (Bank 1). The mixture has too much air relative to fuel. The classic cause is an unmetered air (vacuum) leak — cracked intake hoses, a leaking intake manifold gasket or PCV plumbing — followed by a dirty/failing mass air flow (MAF) sensor, weak fuel pump or clogged injectors. Left unfixed, a lean mixture runs the engine hot and can cause misfires.
P0172 — System Too Rich (Bank 1). Too much fuel for the air. Common causes: a leaking or dripping fuel injector, high fuel pressure, a contaminated MAF sensor, or a lazy upstream oxygen (lambda) sensor over-fuelling the engine. Symptoms include black smoke, a fuel smell and poor economy.
P2187 — System Too Lean at Idle (Bank 1). A lean mixture that shows up specifically at idle. It points to a small vacuum leak, a dirty throttle body, a weak fuel supply or a faulty oxygen/MAF sensor — this is a fuel-trim code, not a “voltage” code.
P2188 — System Too Rich at Idle (Bank 1). A rich mixture at idle. Suspect a leaking injector, high fuel pressure, a stuck-open EVAP purge valve, or a faulty MAF/oxygen sensor.
P2096 — Post-Catalyst Fuel Trim System Too Lean (Bank 1). The downstream (post-catalytic-converter) oxygen sensor sees a mixture that is too lean after the catalyst. Common causes are an exhaust leak ahead of the rear O2 sensor, a failing downstream oxygen sensor, or an underlying lean condition. Fix any exhaust leak first, since it fools the sensor.
Misfire & ignition codes (P0300, P0301–P0304, P0352) {#p0300-p0301-p0304-p0352-misfires-ignition}
A misfire means a cylinder isn’t burning fuel properly — you’ll feel a shudder, lose power and may see the check-engine light flash.
P0300 — Random/Multiple Cylinder Misfire Detected. More than one cylinder is misfiring, or the misfire moves around. Causes span the whole combustion picture: worn spark plugs, tired ignition coils or leads, a vacuum leak, low fuel pressure, or low compression across cylinders.
P0301 / P0302 / P0303 / P0304 — Cylinder 1 / 2 / 3 / 4 Misfire Detected. The last digit is the cylinder number. Because the fault is isolated to one cylinder, start there: swap the spark plug and coil to that cylinder, check the lead and injector, and if the misfire follows the parts you’ve moved, you’ve found it. If it stays put, test compression on that cylinder.
P0352 — Ignition Coil “B” Primary/Secondary Circuit Malfunction. A fault in the ignition coil circuit for the “B” coil group (on many GM engines this is the coil serving cylinder 2). It is a single coil circuit — not “the second and third coils.” Check the coil, its connector and the primary wiring.
Catalytic converter codes (P0420, P0422) {#p0420-p0422-catalytic-converter}
P0420 — Catalyst System Efficiency Below Threshold (Bank 1). The catalytic converter isn’t cleaning the exhaust as well as it should — judged by comparing the upstream and downstream oxygen sensors. It’s often a worn catalytic converter, but a lazy downstream O2 sensor or an exhaust leak can trigger it too, so confirm before replacing the (expensive) cat.
P0422 — Main Catalyst Efficiency Below Threshold (Bank 1). A closely related catalyst-efficiency fault — the main catalyst’s performance is below the required threshold. Diagnose the same way: verify the oxygen sensors and check for exhaust leaks before condemning the converter.
Idle control code (P0507) {#p0507-idle-control}
P0507 — Idle Air Control System RPM Higher Than Expected. The engine idles faster than the ECM commands. The most common cause is a vacuum leak, followed by a dirty throttle body or a sticking idle air control (IAC) valve. Cleaning the throttle body resolves many P0507s.
Throttle & pedal codes (P0222, P2104, P2135, P2138) {#p0222-p2104-p2135-p2138-throttle-pedal}
P0222 — Throttle/Pedal Position Sensor/Switch “B” Circuit Low Input. The ECM sees a lower-than-expected voltage from the “B” throttle or accelerator pedal position sensor. This is a sensor-signal fault (low voltage), not a blown throttle motor — check the sensor, its 5V reference and signal wiring, and connectors for corrosion.
P2104 — Throttle Actuator Control System, Forced Idle. The ECM has detected a serious throttle-control fault and put the engine into a limp/forced-idle mode, so the throttle won’t respond. Causes include a failed throttle body (actuator), wiring faults or an ECM issue.
P2135 — Throttle/Pedal Position Sensor/Switch “A”/“B” Voltage Correlation. The two throttle (or pedal) position sensors disagree with each other. It usually triggers reduced-power/limp mode. Common culprits: a failing throttle position sensor inside the throttle body, a faulty accelerator pedal sensor, or wiring/connector faults between them.
P2138 — Throttle/Pedal Position Sensor/Switch “D”/“E” Voltage Correlation. As P2135 but on the “D”/“E” sensor pair — typically the accelerator pedal sensors. Suspect the pedal position sensor assembly or its wiring.
Cooling & thermostat codes (P0597, P0598) {#p0597-p0598-thermostat}
Both apply to vehicles fitted with an electronically-controlled (heated) thermostat.
P0597 — Thermostat Heater Control Circuit / Open. The circuit that heats the map-controlled thermostat is open. Usually a loose or corroded connector, damaged wiring, or a failed thermostat unit. Often no drivability symptoms beyond the warning light and possibly an odd temperature-gauge reading.
P0598 — Thermostat Heater Control Circuit Low. The same circuit reads a low voltage (short to ground or a wiring fault). Check the thermostat heater element, wiring and connections.
Frequently Asked Questions
Can I keep driving my Chevrolet with the check-engine light on? It depends on the code. A steady light for something like P0420 (catalyst) can often be driven on for a short while, but a flashing light — or misfire codes like P0300/P0301 — means active damage risk (raw fuel can destroy the catalytic converter). Get it diagnosed promptly and avoid hard driving.
Will clearing the code fix the problem? No. Clearing a DTC only switches off the light; if the underlying fault is still there, the code returns — often within a few drive cycles. Always fix the cause, then clear the code to confirm it stays gone.
Do I need a Chevrolet-specific scanner? For generic P0xxx codes (which is most engine faults), any OBD-II scanner or a cheap Bluetooth ELM327 dongle with a phone app will read and clear them. Manufacturer-specific P1xxx codes and deeper GM diagnostics may need a more capable tool.
Several codes came up at once — where do I start? Fix the most fundamental fault first. A vacuum leak, for example, can set lean (P0171), misfire (P0300) and high-idle (P0507) codes together — repair the leak and the others often clear. Work from causes to symptoms, not the reverse.
When is it cheaper to replace the engine than to repair? When you’re facing major internal damage — a jumped timing chain that bent valves, or low compression across multiple cylinders. At that point compare a repair quote against a good used replacement. You can get prices from suppliers and scrapyards through Chevrolet stripping for spares and used-engine listings on Engine Finder.
Sources
- AutoZone — P0011: “A” Camshaft Position, Timing Over-Advanced or System Performance (Bank 1)
- AutoZone — P2187: System Too Lean at Idle (Bank 1)
- AutoZone — P2096: Post Catalyst Fuel Trim System Too Lean (Bank 1)
- RepairPal — P0507: Idle Air Control System RPM Higher Than Expected
- Kelley Blue Book — P2135: Throttle/Pedal Position Sensor/Switch “A”/“B” Voltage Correlation
Related Articles
Explore more insights on similar topics

BMW B47 Engine Problems: EGR Recall & SA Repair Costs (2026)
BMW fixed the N47's chain-snap epidemic with the B47 — but the EGR cooler fire-risk recall, DPF clogging and carbon build-up became the new headaches. Symptoms, SA repair costs, and when a used engine wins.

Toyota Hilux Gearbox Problems: GD6, 4Y, Auto & Manual (SA Guide)
Toyota Hilux gearbox problems explained, manual & auto faults, clutch costs, GD6 vs older boxes, and how to compare Hilux gearbox prices in SA.

Ford Ranger 3.2 TDCi Engine Problems: Common Faults, Costs & Solutions (SA Guide)
Ford Ranger 3.2 TDCi (P5AT) engine problems include EGR cooler failure, turbocharger issues, injector faults, DPF clogging, and wet timing belt risks. Real SA repair costs and fixes.
Important Disclaimer
This content is for informational purposes only and is based on research from automotive industry sources. Engine Finder is not a certified automotive repair facility. Always consult with qualified automotive professionals before performing any repairs or maintenance. Improper repairs can result in personal injury, property damage, or vehicle malfunction. We assume no responsibility for actions taken based on this information.