Toyota Error Codes

Complete DTC Guide for Innova, Fortuner, Camry, Corolla and More

Toyota has a reputation for building cars that don’t throw codes lightly. In over two decades of ECU work, I’ve noticed it consistently: a Toyota ECU’s threshold for logging a fault is generally tighter and more deliberate than many other brands. When it does log a code, it usually means something has genuinely crossed a threshold worth investigating.

This also means that when Toyota owners ignore codes — because “the car still drives fine” — they tend to pay a heavier price down the line. The O2 sensor aging quietly, the CVVT getting sludgy, the timing chain stretching on a D-4ST engine. Toyota’s reliability is real, but it’s not unconditional. It requires the car to be maintained and the codes to be respected.

This guide covers the full Toyota lineup: Innova Crysta and Fortuner (India workhorse), Camry and Corolla (global fleet staples), Land Cruiser, and the hybrid platforms (Camry Hybrid, Vellfire).


Toyota Engine Families — Know Your Platform

  • 1NZ-FE / 2NZ-FE (older Corolla, Yaris): 1.3–1.5 NA petrol, Denso ECU
  • 2ZR-FE / 2ZR-FAE (newer Corolla, Vios): 1.6/1.8 Valvematic — dual VVT-i
  • 2GR-FE / 2GR-FKS (Fortuner petrol, Camry, Vellfire): 3.5 V6 — dual bank
  • 1GD-FTV (Innova Crysta diesel, Fortuner diesel, Hilux): 2.4 GD diesel — most common in India
  • 2GD-FTV (older Innova diesel): 2.4 also but older platform
  • 2AD-FHV (Corolla diesel — UK market): 2.0 D-4D diesel
  • 2AR-FXE / Hybrid (Camry Hybrid, Prius): Toyota Hybrid System (THS)

ECU suppliers: Denso almost universally for Toyota. The Denso ECU protocol requires a scanner with Toyota manufacturer-specific support for full depth beyond generic OBD2.


Complete Toyota DTC Code List

Petrol Engine Codes

Code Description Toyota-Specific Notes
P0010 VVT-i Oil Control Valve Circuit OCV clogged or failed — oil condition critical
P0011 Camshaft Timing Over-Advanced B1 VVT-i phaser, OCV, oil condition
P0012 Camshaft Timing Over-Retarded B1 Same system
P0013 VVT-i OCV Circuit B2 Exhaust cam OCV — V6 engines
P0014 Camshaft Timing Over-Advanced B2 V6 bank 2 cam timing
P0016 Cam/Crank Correlation Timing chain stretch — see below
P0100 MAF Circuit Malfunction MAF sensor — clean before replacing
P0101 MAF Range/Performance Common on 2GR-FE — MAF contamination
P0115 ECT Sensor Circuit Coolant sensor
P0130 O2 Sensor Circuit B1S1 Upstream wideband lambda
P0133 O2 Sensor Slow Response B1S1 Ageing upstream O2 — common after 80,000 km
P0136 O2 Sensor Circuit B1S2 Downstream O2
P0139 O2 Sensor Slow Response B1S2 Downstream O2 ageing
P0150 O2 Sensor Circuit B2S1 V6: bank 2 upstream
P0156 O2 Sensor Circuit B2S2 V6: bank 2 downstream
P0171 System Too Lean Bank 1 MAF, vacuum leak, fuel
P0172 System Too Rich Bank 1 Stuck injector, O2
P0174 System Too Lean Bank 2 V6: bank 2 lean
P0175 System Too Rich Bank 2 V6: bank 2 rich
P0300 Random Misfire Plugs, coils, injectors
P0301–P0306 Misfire Cylinder 1–6 V6 Fortuner/Camry goes to P0306
P0335 CKP Sensor Circuit CKP sensor or ring
P0340 CMP Sensor Circuit CMP sensor
P0351–P0356 Ignition Coil A–F Coil failure — common on older Corolla
P0420 Catalyst Efficiency B1 O2 sensor or cat — Toyota sets this tight
P0430 Catalyst Efficiency B2 V6 bank 2 cat
P0441 EVAP Purge Performance Purge solenoid
P0446 EVAP Vent Control Canister vent
P0455 EVAP Large Leak Fuel cap first
P0500 VSS Circuit Vehicle speed sensor
P0505 Idle Control System IACV on older engines
P0560 System Voltage Battery/alternator
P0604 Internal Control Module RAM ECU internal — check battery first

Toyota Manufacturer-Specific Codes (P1xxx)

Code Description Platform Notes
P1300 Igniter Circuit Malfunction Distributor-based ignition — older models
P1349 VVT-i System Malfunction VVT-i phaser not moving — oil pressure/OCV
P3190 Poor Engine Power THS hybrid system fault — Prius/Camry Hybrid
P3191 Engine Does Not Start Hybrid system — HV battery or starter
P0A80 Replace Hybrid Battery Pack HV battery capacity below threshold
P0A1F Battery Energy Control Module HV battery management

Diesel Engine Codes (1GD-FTV / 2AD)

Code Description Toyota Diesel Notes
P0087 Fuel Rail Pressure Low Fuel filter — 10,000 km intervals on GD engine
P0088 Fuel Rail Pressure High Rail pressure regulator
P0089 Fuel Pressure Regulator FPRV on high-pressure pump
P0191 Rail Pressure Sensor Range Sensor accuracy issue
P0192 Rail Pressure Sensor Low Wiring or sensor
P0380 Glow Plug Circuit Glow plugs — check individual resistance
P0400 EGR Malfunction EGR system — 1GD-FTV is prone to carbon
P0401 EGR Flow Insufficient EGR valve carbon — Innova Crysta common fault
P0404 EGR Circuit Range EGR actuator
P2002 DPF Efficiency (BS6 variants) DPF soot load
P20EE SCR NOx Efficiency AdBlue/DEF system
P2BAD Reductant Level Low DEF tank
P2033 EGT Sensor 2 Circuit DPF temperature sensor

ABS / Chassis Codes

Code Description Notes
C0200 Right Front Speed Sensor ABS sensor
C0205 Left Front Speed Sensor ABS sensor
C0210 Right Rear Speed Sensor Rear ABS
C0215 Left Rear Speed Sensor Rear ABS
C1201 Engine Control System Malfunction Secondary ABS/VSC code — fix engine fault first
C1223 ABS Control System ABS actuator
C1300 Motor Relay Malfunction ABS hydraulic pump relay

The C1201 Trap — Don’t Chase the Wrong Code

C1201 is the Toyota code that confuses more customers than any other. The MIL light and ABS/VSC warning come on together. You scan, find C1201 — “Engine Control System Malfunction.” You look in the ABS system. You assume ABS hardware.

Wrong direction entirely.

Toyota’s VSC (Vehicle Stability Control) and ABS systems monitor the engine management for fault conditions. If the ECM/ECU has a confirmed fault, the VSC module sees this and logs C1201 as a secondary code, disabling stability control as a safety measure.

The rule is simple: scan the engine ECU first. Fix whatever primary engine code is there. Clear everything. C1201 will clear with it in most cases. I’ve seen workshops charge for ABS pump replacement when the real fault was a failing O2 sensor. C1201 never requires ABS work on its own.


P0420 on Toyota — Setting It Straight

Toyota’s catalyst efficiency monitoring is tight. The downstream O2 sensor monitors the switching frequency and amplitude of exhaust gases after the catalytic converter. When the catalyst is working correctly, the downstream sensor shows a stable, slow-moving signal. When it’s degrading, it starts mimicking the upstream sensor’s rapid switching.

On Toyota, P0420 arrives earlier than on many other brands — sometimes with a cat that would pass on a less demanding platform. Before replacing a catalytic converter:

  1. Check downstream O2 sensor age and response time (live data)
  2. Check for exhaust leaks between cat and downstream sensor
  3. Check for coolant in exhaust (head gasket) — unburnt coolant destroys cats quickly
  4. Run a bottle of quality fuel system cleaner and a 30-minute motorway drive before condemning

The downstream O2 sensor on a Corolla is a ₹1,200 part. The cat is ₹8,000–25,000 depending on model. Eliminate the sensor first.


VVT-i and CVVT — P0010 to P0016

Toyota’s VVT-i (Variable Valve Timing with intelligence) is oil-pressure actuated, just like Hyundai’s CVVT. The Oil Control Valve (OCV) regulates oil flow to the variable phaser on the camshaft.

P0011 / P0012 (over-advanced/over-retarded) and P0016 (cam/crank correlation) on VVT-i systems follow the same diagnostic logic:

  • Oil condition first — the OCV screen clogs with dirty oil
  • Oil level — low oil means low hydraulic pressure to the phaser
  • OCV resistance test — should be 6–8 ohms on most Toyota OCVs
  • Phaser mechanical wear — if the phaser slips under oil pressure testing, it’s worn

P0016 specifically — camshaft-to-crankshaft correlation — on high-mileage Corolla and Camry engines can indicate timing chain stretch. Toyota’s timing chains are generally excellent and last 150,000+ km with good oil. But skipped services with cheap oil accelerate wear.


Toyota 1GD-FTV Diesel — Innova and Fortuner

The 1GD-FTV is the 2.4-litre diesel that powers the Innova Crysta and Fortuner in India. It’s a robust engine, but it has specific maintenance requirements that directly affect fault codes:

EGR carbon buildup: This engine generates a lot of soot. EGR passages and valve clog up predictably between 60,000 and 100,000 km. P0401 (EGR flow insufficient) is almost universal on high-mileage Innova fleet vehicles. Toyota recommends EGR cleaning at 80,000 km intervals, but fleet usage — especially air-conditioned cab use with long idling — accelerates this.

Fuel filter interval: Toyota specifies 10,000 km for the 1GD fuel filter. Many fleet operators stretch this to 20,000 km. P0087 (low rail pressure) on an Innova with a stretched service interval is almost always the filter before it’s the pump.

Injector service: At 200,000+ km, injector return rate testing becomes relevant. Worn injectors affect rail pressure, cause P0087, and reduce fuel economy. Injector test and cleaning is worth doing at this mileage before condemning the pump.


Hybrid System Codes — Camry Hybrid, Prius

Toyota’s THS (Toyota Hybrid System) adds a whole additional layer of fault codes that don’t exist on conventional vehicles.

P3190 (poor engine power) and P3191 (engine doesn’t start) are THS-level codes. They often appear when the HV battery state of charge is outside limits, or when the MG1/MG2 inverter has a fault.

P0A80 (replace hybrid battery) is the code that hybrid owners dread. It means individual cells in the high-voltage battery pack have degraded below Toyota’s threshold. In India, where Camry Hybrid resale is significant, this code affects value. Options: replace individual modules (third-party battery shops in major cities), replace the full pack (Toyota dealer — expensive), or continue driving with reduced EV range if the degradation is mild.

For UK market readers: the Prius Gen 2 and Gen 3 are very common on UK roads and have well-documented HV battery degradation patterns. P0A80 on a Prius Gen 2 (2004–2011) is extremely common above 150,000 miles. Hybrid battery reconditioning services exist in the UK at reasonable prices.


Workshop Story: The Fortuner That Went Rich on the Highway

A 2016 Fortuner 2.7 petrol (2TR-FE) came in with a P0172 — system too rich, bank 1. Owner complained of poor fuel economy (was getting 6 km/l on highway — should be 9+) and occasional rough idle.

I pulled live data on my Autel MaxiCOM MK808. Upstream O2 switching normally. MAF readings within range. But STFT (Short Term Fuel Trim) at idle was -12% — the ECU was pulling 12% fuel out to correct a rich condition. At cruise it improved to -5%.

Checked injector pulse width — normal. Checked fuel pressure — normal. Then I checked the downstream O2 sensor live reading. It was reading 0.8V flat — fixed high. A downstream sensor reading fixed high at 0.8V means it’s stuck rich or it’s dead.

Replaced the downstream O2 sensor. Fuel trims normalised. Fuel economy back to 9.2 km/l on the highway.

The stuck downstream O2 was feeding wrong closed-loop data. The ECU believed it was always running rich and compensated — but because the upstream sensor was fine, the real mixture was actually correct. The downstream sensor was the liar.

Code said rich. Fix was a sensor. Diagnosis required live data.


FAQ

My Innova Crysta diesel shows P0401 — does the EGR need replacing?
Replacement is rarely needed. EGR cleaning is almost always the fix. A fully blocked EGR valve can be cleaned ultrasonically or with a combination of chemical soak and mechanical cleaning. Full replacement is warranted only if the valve seat or actuator is damaged. Get a quote for cleaning first.

My Camry Hybrid shows P0A80 — should I sell the car?
Not necessarily. P0A80 means some cells are below threshold, but the car typically remains drivable with reduced electric range. Get the HV battery tested module by module. If only a few modules are bad, selective replacement or reconditioning is a cost-effective option. Full pack replacement from Toyota is expensive; third-party module replacement is viable on older platforms.

Toyota shows C1201 and my workshop says I need a new ABS actuator — is that right?
Almost certainly not, unless you have specific ABS fault codes (C0200, C1223) alongside C1201. C1201 is a secondary code triggered by engine management faults. Fix the engine fault first.

My Corolla has P0133 — slow O2 response — does this affect performance?
Indirectly yes. A slow upstream O2 sensor means the ECU’s closed-loop fuel correction is sluggish. You may notice slightly rough idle, marginally increased fuel consumption, and potential for P0420 to follow as the slow sensor data affects catalyst monitoring. Replace the upstream O2 sensor — it’s a straightforward job.

Can I use a generic ELM327 scanner on Toyota or do I need a Toyota-specific tool?
Generic codes (P0xxx) come through fine on any scanner. For manufacturer-specific codes, VVT-i actuation tests, injector compensation values, and hybrid battery data, you need a scanner with Toyota/Denso protocol. Techstream (Toyota’s OEM software with a J2534 interface) gives full depth. Among aftermarket tools, the Autel MaxiCOM MK808 and Launch X431 CRP429C both cover Toyota manufacturer functions well at workshop-friendly prices.


The Verdict

Toyota’s reliability reputation is earned, but it comes with a condition: these cars need proper maintenance and their codes need to be taken seriously.

A Toyota that throws a code is not failing — it’s communicating. The VVT-i is asking for clean oil. The DPF is asking for a highway run. The O2 sensor is asking for replacement before it takes the catalytic converter down with it.

Read the codes. Read the live data. Respect the thresholds Toyota set, because they set them for good reason.


Babuu has been working in automotive electronics since 2002 and opened HT ECM Solutions in Bachupally, Hyderabad in 2017 — a professional ECU repair and vehicle diagnostics workshop.


Related reads:

🔧 Recommended OBD2 Scanner to Read Toyota Error Codes:

The Launch CRP129E is the tool we recommend for reading and clearing these Toyota fault codes. It supports all standard OBD2 protocols used by Toyota vehicles and provides full system diagnostics.

Leave a Comment