P0128 indicates the engine coolant temperature (ECT) sensor is reading below the thermostat's expected regulating temperature. This means the engine is not reaching normal operating temperature within the expected time after startup, often because the thermostat is stuck open or the coolant system has a fault.
The most common cause. A thermostat that fails to close properly keeps the coolant circulating through the radiator continuously, preventing the engine from reaching normal operating temperature.
Insufficient coolant reduces the system's ability to retain heat, causing the engine to run cooler than the thermostat rating.
The engine coolant temperature sensor may be reading incorrectly low, triggering the code even when the engine is actually at proper temperature.
An electric cooling fan that runs continuously (due to faulty fan clutch, relay, or wiring) can excessively cool the engine.
External leaks or trapped air in the cooling system can cause low coolant volume and improper temperature regulation.
A powertrain control module malfunction is extremely rare for this code and should only be considered after all other causes are ruled out.
The definition is universal; the diagnostics are engine-specific. Open your vehicle for the codes documented for it:
The vehicle can be driven short distances, but prolonged operation may result in poor fuel economy, increased emissions, and insufficient cabin heating. It should be repaired in a reasonable timeframe.
No. The powertrain control module is almost never the cause of P0128. The code is set based on temperature sensor input, and replacing the computer will not fix the underlying cooling system issue.
Costs vary significantly by vehicle and location. A thermostat replacement typically involves parts and labor; coolant service and sensor replacement have separate costs. This is a common repair that many independent shops can perform.
Yes, a faulty ECT sensor reading incorrectly low temperatures can trigger P0128. This is why proper diagnosis is important—the code indicates the temperature is too low, which could be due to either actual low temperature or a faulty sensor.