AutoLogicTools

OBD-II trouble code

P0059: HO2S Heater Resistance (Bank 2, Sensor 1)

A heater resistance fault on the upstream Bank 2 sensor. This is the one code in the family you can diagnose by comparison — the vehicle has an identical sensor doing an identical job on the other bank, and what that one reads is the most useful number you will get.

Medium severityPowertrainOxygen SensorDrivable short-term

Quick facts

System
Powertrain
Category
Oxygen Sensor
Severity
Medium severity
Drivable
Usually safe to drive short-term
Repair cost range
$0$620
DIY difficulty
Intermediate DIY

What does P0059 mean?

P0059 says the module measured the heater in the upstream oxygen sensor on Bank 2 and found its resistance outside the calibrated window. The circuit is not open and not shorted — the number is simply not what the calibration expects.

The useful property of this particular code is that it comes with a built-in control experiment. Bank 2 Sensor 1 has an exact counterpart: Bank 1 Sensor 1, monitored by P0053. Same part in the great majority of applications, same role, same age, same thermal history, and on most vehicles fed from the same fuse and often referenced to the same ground. That means the absence of the twin code is itself a measurement, and it is the first thing to read.

If P0059 is stored alone, with no P0053 alongside it, the shared parts of the circuit are almost certainly fine. A blown fuse, a failed relay, a bad common ground or a supply problem would not politely restrict itself to one bank. A solitary resistance code on one bank points at what is unique to that bank: the element itself, its connector, and the short run of wiring between them. That is a genuinely narrow list, and it is why this code is often solved faster than its siblings.

If P0053 and P0059 are stored together, invert the conclusion. Two identical elements do not drift out of specification on the same day. Simultaneous resistance codes on both banks argue for something common — a supply that has sagged, a shared ground that has corroded, or a module measurement reference that has shifted — and they argue against buying two sensors.

The comparison goes further than reading codes. When you cannot find a manufacturer's resistance specification for the exact part, measure the heater on the good bank and use it as your reference. Two things have to be true for that to be valid: the sensors must actually be the same part number, and both must be measured at the same temperature, because heater resistance rises as the element warms. Check the part numbers physically rather than assuming, because the upstream Bank 2 sensor is very often the second one a vehicle has had replaced over its life, and a mismatched substitute fitted years ago is a common reason for a resistance code with no other symptom.

Bank 2, by definition, is the bank without cylinder one, so this code only exists on an engine with two banks. Driveability is largely unaffected: the upstream sensor does control fuelling, so an out-of-specification heater usually means a longer stretch of open-loop running after cold starts, marginally worse short-trip economy, and higher cold-start emissions — but no misfire and no roughness.

Common causes

  • Aged heater element on the Bank 2 upstream sensor whose resistance has drifted out of the calibrated window
  • Mismatched replacement sensor fitted during an earlier repair, with a heater specification that differs from the original
  • Corroded terminal or connector adding resistance the module attributes to the element
  • Damaged or heat-affected wiring in the short run between the connector and the harness
  • Degraded repair splice from a previous wiring repair on that bank
  • Contaminated element on an engine that has consumed oil or coolant
  • Sagging supply voltage or a corroded shared ground, which typically sets the Bank 1 code as well
  • Failed heater driver or measurement circuit in the engine module, which is uncommon and concluded last

Symptoms

  • Check engine light with the vehicle driving essentially normally
  • Code stored on Bank 2 only, with no matching code on Bank 1
  • Longer open-loop running and slower fuel trim response on the Bank 2 side after a cold start
  • Fuel trims that differ between banks while warming up and converge once hot
  • Slightly worse fuel economy on short journeys
  • Failed emissions test on the stored code alone
  • Readiness monitors that will not complete before an inspection
  • History of a previous oxygen sensor replacement on that side

Diagnostic steps

  1. 1.Read every stored code and note specifically whether the Bank 1 counterpart is present, because a solitary code and a paired code point in opposite directions.
  2. 2.Treat a solitary code as evidence that fuse, relay, supply and shared ground are healthy, and concentrate on the element, connector and short harness run unique to Bank 2.
  3. 3.Treat a paired code on both banks as evidence against two failed sensors, and test supply voltage and the shared ground before buying any part.
  4. 4.Confirm which physical side is Bank 2 from the position of cylinder one in the service information, since this code cannot exist on an inline engine at all.
  5. 5.Physically read the part numbers on both upstream sensors and compare them, because a mismatched replacement fitted years ago sets this code with nothing else wrong.
  6. 6.Measure heater resistance on the good bank and use it as the working reference when the manufacturer's figure is not available, ensuring both sensors are at the same temperature.
  7. 7.Read the freeze frame temperatures and take your own measurements under comparable conditions, since heater resistance rises as the element warms.
  8. 8.Measure again from the module end of the harness to separate a drifted element from added resistance in the wiring or connector.
  9. 9.Clean and inspect the connector terminals, then re-measure, since terminal corrosion is indistinguishable from element drift in a single reading.
  10. 10.Clear the code, complete a full cold-start drive cycle and confirm the result rather than assuming a cleared light means the fault is gone.

Repair cost

$0$620

An upstream oxygen sensor is $60 to $220 as a part, and it is the access that decides the bill. On a longitudinal engine, or where Bank 2 faces the radiator, fitting is quick and totals commonly land at $190 to $340. Where Bank 2 is the harder bank to reach, the same part fitted can run $450 to $620. Connector cleaning or terminal repair is $70 to $200 and is a frequent outcome. If the two banks turn out to have mismatched sensors, the fix is the correct part number rather than any repair. Diagnosis is $90 to $150 and pays for itself here, because comparing the two banks often removes the expensive possibilities before any labour is authorised.

Estimate your repair

Run the numbers for your vehicle

Open the Repair Cost Estimator with oxygen sensor replacement preselected. Adjust labor rate and vehicle category to fit your situation.

DIY vs shop

This is an intermediate DIY job. It usually involves diagnostic steps, specialty parts, and some careful work in tight spaces. If you have the tools and a service manual or trustworthy video for your specific vehicle, it is achievable in a weekend. Otherwise, a competent independent shop will be faster.

Related codes

Frequently asked questions

I have P0059 but no code on Bank 1. Does that tell me anything?

It tells you a great deal. The two upstream sensors are usually the same part doing the same job, and on most vehicles they share a fuse and a ground. A supply problem, a blown fuse or a corroded common ground would affect both, so a code on one bank only rules those out and points squarely at what is unique to that side — the element, its connector and the short run of wire between them. That is a short list, and it is why a solitary resistance code is often quicker to solve than a paired one.

What if both P0053 and P0059 are stored?

Then be sceptical of the sensors. Two identical heating elements do not drift out of specification on the same day, so simultaneous resistance codes on both banks argue for something shared: supply voltage, a common ground splice, a fuse feeding both, or the module's measurement reference. Check those before buying two sensors. Paired codes are one of the clearest cases in this family where the cheap cause is the likely one.

I cannot find a resistance specification for my sensor. What do I compare against?

Use the other bank. Measure the heater on the sensor that is not throwing a code and treat that as your working reference. Two conditions have to hold for the comparison to mean anything: both sensors must be the same part number, which is worth confirming by physically reading them rather than assuming, and both must be measured at the same temperature, because a warm element reads higher than a cold one. Done properly this is a better reference than a generic range from a catalogue.

Can an inline four-cylinder set P0059?

No. Bank 2 is defined as the bank that does not contain cylinder one, which means the code can only exist on an engine whose cylinders are arranged in two banks — a V, flat or W layout. An inline engine has a single bank and no Bank 2 sensor. If this code has been read on a four-cylinder, check that the code was recorded correctly and that the scan tool was communicating with the right vehicle before anything is spent.

AutoLogicTools provides general automotive planning information. Trouble code interpretations, repair cost ranges, and DIY guidance vary by vehicle, model year, location, parts quality, and shop labor rate. Always verify a diagnosis with a scan tool and a qualified automotive professional before approving repairs.