P0128 — Coolant Thermostat Below Regulating Temperature — 6.7 Cummins (SCR / DEF)

Engine coolant does not reach the expected operating temperature in the expected time on 6.7L Cummins SCR/DEF 2013–present.

Updated October 15, 2026

What it means

The PCM monitors engine coolant temperature rise and steady-state temperature. P0128 sets when coolant stays below the calibrated regulating temperature for a calibrated time/distance under normal load and ambient conditions. On this platform the thermostat is a conventional wax-element mechanical unit and the engine uses a mechanical thermostat, gear-driven timing, CP3 (2013–2018, 2021+) / CP4.2 (2019–2020), in-tank lift pump, VGT with electric actuator, MAP-based fueling, grid heater, DOC/DPF/SCR/DEF.12

Most likely causes

  1. Thermostat stuck open / failing to regulate — A mechanical wax thermostat that remains open prevents the engine from reaching normal operating temperature, causing prolonged warm-up and P0128. Coolant degradation/sediment can contribute to thermostat and heater-core failures on this vintage.13
  2. Coolant temperature sensor drift / inaccurate reading — Erroneous low coolant-temperature signal can make the PCM think the engine is not reaching regulating temperature even if the thermostat is functional.1
  3. Low coolant level / air pocket in cooling system — Insufficient coolant or trapped air reduces heat transfer and delays warm-up, leading to below-regulating temperature detection.1
  4. Excessive cooling from high airflow / winter front missing — Unrestricted airflow through the radiator in cold ambient conditions can keep coolant below target during normal driving.1
  5. PCM calibration / false detection after recent cooling-system service — Recent coolant flush or component replacement can introduce air or change warm-up characteristics, causing a temporary P0128 until the system stabilizes.3
  6. Coolant contamination / degraded coolant causing flow restriction — Degraded coolant can form sediment that plugs heater core/EGR cooler and affects thermostat operation on 2013+ Rams where coolant formulation changed.3

How to diagnose

  1. Verify freeze-frame and live data: confirm coolant temperature rise rate and steady-state temp vs. ambient and load.
  2. Inspect coolant level, condition, and for contamination/sediment; check for proper fill and bleed of air pockets.
  3. Command a controlled warm-up drive and log ECT vs. time; compare to expected regulating temperature for the platform.
  4. Check thermostat operation by monitoring ECT behavior at idle and under load; a thermostat stuck open typically shows ECT well below normal and slow rise.
  5. Test coolant temperature sensor accuracy against a known-good reference/ scan tool data.
  6. Inspect cooling system components for external leaks, radiator airflow blockage, and proper winter-front operation if equipped.

Parts and tools you may need

Tools you’ll need

Rough cost and difficulty

Likely repairPartsShop laborWho usually does it
Temperature or pressure sensor (coolant, intake air, oil, fuel temp)$30–$1500.3–1.5 hrsEasy DIY
Thermostat$50–$1501–3 hrsDIY with tools and a manual
Coolant hose or leak repair$20–$2000.5–3 hrsDIY with tools and a manual
Fan clutch / fan drive$200–$6001–2 hrsDIY with tools and a manual

Typical US independent-shop figures; labor runs about $120–$180 per hour (dealers charge more). Confirm the diagnosis before buying parts.

When to see a pro

If diagnosis points to internal cooling-system contamination, heater-core blockage, or EGR cooler restriction, have a qualified diesel shop perform a full cooling-system evaluation and flush per OEM procedure. Do not attempt high-pressure fuel or emissions-system service.

Check for recalls

Recalls are tied to your truck’s VIN, so check yours directly: enter the VIN at NHTSA’s recall lookup. Open safety recalls are repaired free at a dealer.

Sources


  1. Curated DTC seed — 6.7 Cummins (SCR / DEF) (curated) ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  2. Curated DTC seed — 6.7 Cummins (SCR / DEF) (curated) ↩︎

  3. NHTSA owner report 11511506 ↩︎ ↩︎ ↩︎