OBD-II fault code

P0128: Coolant Thermostat Below Regulating Temperature

What it means

The module detects that coolant temperature has not reached the expected thermostat regulating temperature within the monitored conditions.

At a glance

  • Usually lights the check-engine light
  • Affects emissions; the car can fail an emissions test

How it works

The engine control module monitors coolant temperature as the engine warms and checks whether it reaches the expected thermostat regulating range under suitable conditions. P0128 sets when coolant warms too slowly or remains cooler than expected, often because the thermostat is stuck open.

Common causes

Most likely first.

  1. Thermostat stuck open
  2. Coolant sensor reading low

Symptoms

  • Check engine light on
  • Longer engine warm-up
  • Weak cabin heat
  • Reduced fuel economy

How to diagnose it

  1. Read freeze-frame data and compare coolant temperature with ambient temperature before starting a cold engine.
  2. Watch live coolant temperature as the engine warms to see whether it rises unusually slowly or remains low.
  3. Check coolant level when the engine is cold and look for leaks that could affect temperature readings or warm-up.
  4. Compare the coolant temperature reading with other available temperature information to identify a sensor or wiring fault.
  5. If readings support slow warm-up, test the thermostat and temperature sensor using the manufacturer's procedures.

Common fixes

  • Repair coolant leaks and restore the correct coolant level.
  • Repair a damaged coolant temperature sensor connector or wiring.
  • Replace the coolant temperature sensor if testing confirms it reads incorrectly.
  • Replace a thermostat that testing confirms is stuck open.

Can I keep driving?

You can usually drive if coolant level is correct and the temperature gauge stays in its normal range, but expect weak cabin heat and reduced fuel economy. Stop if the engine overheats or coolant is leaking, since either condition can cause serious engine damage.

A code shows where the control module detected a fault, not always which part failed. Check the causes in order and confirm with a test before replacing parts. Have several codes? Check them together

This is a generic code: it means the same on every make. The car’s maker may add more detail in its own service information.

Nearby codes