P0128: Coolant Temperature Below Thermostat Regulating Temperature
P0128 means the engine coolant is not warming up to the temperature the thermostat is designed to hold within the expected time. The most common cause is a thermostat stuck open, and the car is usually fine to drive for a short time, but it should be fixed to avoid extra fuel use and emissions problems.
You can drive, but get it checked soon
The code does not put the engine into limp mode, so short-term driving is usually possible. An engine that runs too cool burns more fuel and the check engine light stays on, and the underlying cause should be repaired soon. Watch the temperature gauge and stop if it climbs toward hot, since that would point to a different problem.
What it means
After a cold start the thermostat (a valve that controls coolant flow) stays closed so the engine warms up quickly. The engine computer checks whether the coolant reaches the expected temperature in a set time. It does this once per drive cycle, and the check needs two trips before the light turns on. GM vehicles estimate how much heat has gone into the engine and fail the test if coolant has not reached about 65 °C (55 °C in cold weather). Ford vehicles compare the measured temperature with a calculated one and typically fail below 78 °C with an 89 °C thermostat. The test pauses with a lot of idling or below about −7 °C. Usually the thermostat is stuck open. A coolant temperature sensor that reads too low is the other main suspect.
Likely causes
- Thermostat stuck open or opening too earlyVery likely
An open thermostat lets coolant circulate through the radiator from the start, so the engine warms too slowly or never reaches the expected temperature.
- Coolant sensor reading too low, or corrosion and resistance in its circuitPossible
If the sensor or its wiring reports a lower temperature than the real one, the computer concludes the engine is not warming up.
- Low coolant level or air in the systemPossible
Air pockets or too little coolant around the sensor can cause inaccurate readings and uneven warm-up.
- Radiator fan running constantly (relay stuck, wrong control)Less likely
A fan that never turns off pulls extra heat out of the coolant and slows warm-up.
- Driving pattern or conditions (much idling, extreme cold, strong heating)Less likely
Long idling, very cold weather or heavy cabin heater use can keep coolant from reaching the expected temperature in time.
What you may notice
- Check engine light on
- Temperature gauge stays low or drops while driving
- Heater does not get properly warm
- Higher fuel consumption
What to check, cheapest first
- 1Check the coolant level in the reservoir when the engine is cold, and top up with the correct coolant type if it is low. · you can do it
- 2Watch the temperature gauge during a drive. A gauge that stays low or drops points to a thermostat that is stuck open. · you can do it
- 3Notice whether the radiator fan runs constantly after a cold start, even when the engine is not hot. · you can do it
- 4Read the live coolant temperature with a scan tool and compare it with the gauge and with an infrared thermometer reading at the thermostat housing. · mechanic
- 5Inspect the coolant sensor connector and wiring for corrosion or high resistance, and test the sensor against its specification. · mechanic
- 6Replace the thermostat if it is stuck open, bleed air from the cooling system, clear the code and complete a drive cycle to confirm the fix. · mechanic
Related codes
Frequently asked questions
Can I drive with a P0128 code?+
Usually yes for a short time, since limp mode is not expected. Expect higher fuel use and a weak heater, and get it repaired soon.
Can a loose gas cap cause P0128?+
No. A gas cap relates to the fuel vapor system. P0128 is about engine coolant temperature.
Will P0128 pass an emissions test?+
Probably not. The check engine light is on and the code is emissions-relevant, so it should be repaired and the drive cycle completed before testing.
How much work is the repair?+
It is medium difficulty and can be a DIY job. The estimated time is 0.5 to 3 hours.
Written with the help of AI from the public OBDex definition (CC0). Each make may use the code differently. Updated: 2026-11-10