P0125

  • Powertrain
  • Generic (SAE)
  • Emissions
SeveritySeverity level 3 of 5: Diagnose soon.

Diagnose soon

Nothing is in danger of failing suddenly. But the engine never leaves open-loop enrichment, so fuel economy drops noticeably, emissions rise, and the readiness monitors that need closed-loop operation will not complete — meaning a guaranteed emissions test failure. Running permanently cold also increases cylinder wear and dilutes engine oil with unburned fuel over time. It becomes more serious if the cause is low coolant, since that means a leak and a path toward overheating rather than under-heating.

Safe to drive
Generally safe to drive once you have confirmed, on a cold engine, that coolant level is correct and the temperature gauge behaves normally. Expect weak cabin heat and worse fuel economy, and repair before an emissions test or winter. If coolant is low, or the gauge climbs or swings, stop driving and find the leak first — the same code can be caused by coolant loss that ends in an overheat.
Standard definition

Insufficient Coolant Temperature for Closed Loop Fuel Control

In plain English

The engine has been running long enough that it should have warmed up and switched to normal closed-loop fuel control, but the coolant temperature never got high enough. A frequent reason is a thermostat stuck open, letting coolant circulate before the engine is ready.

The PCM will not enter closed-loop fuel control until coolant temperature reaches a calibrated enable threshold. It models expected warm-up from starting temperature, run time, engine load and accumulated airflow. P0125 sets when that modeled time elapses and coolant temperature is still below the threshold. The fault is either that the engine genuinely is not warming — a thermostat stuck open, over-cooling, low coolant — or that the sensor is under-reporting a temperature the engine has actually reached. This code is about closed-loop enable specifically, which distinguishes it from P0128, the more general below-regulating-temperature code.

How the car detected it

After startup, the PCM integrates run time and airflow to predict when coolant should cross the closed-loop threshold. If the threshold is not reached within that window, the code sets. Most strategies exclude very low ambient temperatures and extended idling, since either can legitimately slow warm-up, but a code that sets repeatedly in mild weather is a real fault.

A trouble code records what a control module measured. It does not identify which part failed. Test before replacing anything.

Can I keep driving?
Safe to drive
Generally safe to drive once you have confirmed, on a cold engine, that coolant level is correct and the temperature gauge behaves normally. Expect weak cabin heat and worse fuel economy, and repair before an emissions test or winter. If coolant is low, or the gauge climbs or swings, stop driving and find the leak first — the same code can be caused by coolant loss that ends in an overheat.
Urgency
Diagnose soon
Will it pass emissions
No
If ignored
Fuel consumption stays elevated and cabin heat stays weak, which matters in cold climates. Readiness monitors will not set, so the vehicle cannot pass an emissions inspection. Over the long term, an engine that never reaches operating temperature accumulates fuel in the oil and wears cylinder bores faster. If the underlying cause is low coolant rather than a thermostat, the situation can flip to overheating.
Check engine light
Solid
Clearing the light
A completed drive cycle is normally required before the monitor re-runs and the light can clear.
Likely causes

These are the causes this code can have. For the order to work through them in, see what to check first.

#CauseHow oftenComponent
1Thermostat stuck openVery common
2Coolant temp sensor reading lowCommon

Ordering reflects how often each cause is responsible in general, not a probability for your vehicle. Confirm by testing.

What to check first

In order. Each of these is cheaper or faster than what follows it, and each one can make the rest unnecessary.

  1. Coolant level, checked only on a cold engine

    Low coolant slows warm-up and can leave the sensor reading air rather than liquid. It is also the one cause that could turn into an overheat, so settle it before driving further. Never open a hot cooling system — it is pressurized above boiling and will spray scalding coolant.

  2. How much heat comes out of the cabin vents once warm

    Weak heat that never gets properly hot is the classic sign of a thermostat stuck open. Strong heat with the code set shifts suspicion toward the sensor instead.

  3. Actual coolant temperature on a scan tool after twenty minutes of driving

    Read the real value if you can. Most modern gauges are buffered to sit centered across a wide band of actual temperature, so a normal-looking needle does not rule out an engine running below the closed-loop threshold — which is exactly what this code reports. A needle that sits visibly low, or takes far longer than usual to rise, is meaningful; a normal-looking one proves nothing.

  4. Whether the cooling fans are running constantly

    Fans stuck on strip heat out of the radiator faster than the engine can make it. This produces the code with a perfectly good thermostat, and the fix is a relay or fan control repair instead.

  5. Whether a thermostat was recently replaced

    A thermostat with the wrong temperature rating, or one installed backwards or without its jiggle valve positioned correctly, reproduces this fault straight out of the shop.

How a shop diagnoses this
  1. Read freeze frame and any companion codes

    Tools Scan tool with freeze frame

    Note the ambient temperature, run time, and coolant temperature at the moment the code set. Also look for P0116, P0128 or coolant sensor circuit codes stored alongside it, which change the priority of what you test first.

    Expected

    Freeze frame showing normal run time with coolant temperature well short of the closed-loop threshold, in mild ambient conditions

  2. Time a full warm-up while logging coolant temperature

    Tools Scan tool with data logging

    From a cold start, log coolant temperature through idle and then driving. Note the time to reach a stable plateau and what that plateau value is. Most engines reach normal operating temperature within roughly ten to fifteen minutes of driving; a plateau well below normal or no plateau at all is the finding.

    Expected

    A steady climb to a normal operating plateau within roughly ten to fifteen minutes, then a stable temperature

  3. Check whether the engine entered closed loop

    Tools Scan tool

    Watch the fuel system status parameter through the warm-up. If it never leaves open loop, confirm whether coolant temperature actually crossed the threshold. This separates a sensor problem from a real warm-up problem.

    Expected

    Fuel system status switching to closed loop once operating temperature is reached

  4. Test the thermostat with an infrared thermometer

    Tools Infrared thermometer

    From cold, measure the upper radiator hose temperature at intervals during warm-up. A working thermostat keeps the hose relatively cool until it opens, then the hose heats quickly. A hose that warms steadily from the first minutes means coolant is circulating through the radiator the whole time, which is a thermostat stuck open.

    Expected

    A distinct step change in hose temperature when the thermostat opens, not a gradual rise from cold

  5. Cross-check the coolant sensor against a physical measurement

    Tools Infrared thermometer, scan tool

    With the engine warm, compare the scan tool coolant reading against an infrared reading taken on bare metal at the thermostat housing. A large offset means the sensor is under-reporting and the engine may actually be at correct temperature.

    Expected

    Scan tool and physical readings reasonably close to each other

  6. Verify cooling fan behavior

    Tools Scan tool, visual inspection

    With a cold engine and the A/C off, confirm the fans are not running. Then confirm they switch on at the expected temperature and switch off again. Fans stuck on, whether from a welded relay, a failed control module or a wiring fault, over-cool the engine continuously.

    Expected

    Fans off on a cold engine with A/C off, cycling on and off correctly once warm

  7. Inspect the thermostat physically if it remains the suspect

    Tools Hand tools, pot of water, thermometer

    Remove the thermostat and check that it is closed at room temperature. Heat it in water while measuring temperature and confirm it opens at its rated value. Verify the rating stamped on it matches what the vehicle calls for — the correct rating is vehicle-specific.

    Expected

    Fully closed when cold, opening at its stamped rating, with the correct rating for this vehicle

  8. Confirm the repair with a cold-start drive cycle and monitor check

    Tools Scan tool

    After the repair, let the vehicle cool fully, then drive a complete warm-up cycle. Confirm coolant reaches and holds normal operating temperature, the system enters closed loop, and the readiness monitors begin to set.

    Expected

    Normal operating temperature reached, closed loop entered, no return of the code, and monitors progressing toward complete

Possible repairs and what they cost
RepairOnly after you confirmTypical costWho
Replace the thermostat with one of the correct temperature ratingAn upper radiator hose that warms gradually from cold start rather than stepping up, or a thermostat found open at room temperature during a bench test$190–$650DIY
Replace the engine coolant temperature sensorA persistent offset between the scan tool reading and an infrared measurement at the thermostat housing, with the engine actually reaching normal temperature$90–$280DIY
Correct coolant level and bleed the cooling systemLow coolant or trapped air found, with warm-up time returning to normal once refilled and bled$90–$300DIY
Repair a cooling fan circuit that runs continuouslyFans running with a cold engine and A/C off, traced to a stuck relay or fan control fault, with the engine warming normally after repair$150–$650DIY
Repair the cooling system leak causing the low coolant levelA leak located by pressure test or dye, with the level holding afterward$150–$1,200DIY
Repair coolant sensor wiring or ground circuit resistanceMeasurable voltage drop on the ground path or high resistance in the signal circuit that resolves when repaired$110–$400DIY

Thermostat cost varies more than most people expect. A standalone thermostat in an accessible housing is a modest job; on many modern engines it comes only as a sealed housing assembly with the sensor and hose ports built in, and may sit under the intake or behind the timing cover. Always confirm which design the vehicle uses before comparing quotes.

Common mistakes with this code
  • Replacing the coolant temperature sensor first. The thermostat is a more common cause of this specific code, and it is easy to distinguish with an infrared thermometer before spending anything.
  • Checking coolant level on a hot engine. The system is pressurized above boiling and will spray scalding coolant when opened.
  • Trusting the dash temperature gauge to rule out a cold-running engine. Most modern gauges are damped to read centered across a wide band, so they hide exactly the condition this code reports — read the scan tool value.
  • Installing a thermostat with the wrong temperature rating, or installing it backwards, which reproduces the fault immediately.
  • Blaming the thermostat during a genuine deep cold snap with lots of idling. Extended idling in extreme cold can slow warm-up legitimately — look for the code repeating in mild weather before condemning parts.
  • Missing cooling fans that run continuously. The thermostat can be perfect and the engine still never warms up.
  • Clearing the code and expecting monitors to be ready immediately. Closed-loop-dependent monitors need a full drive cycle after the repair before an emissions test will pass.
Components involved
Sources
Definition
Generic code set (SAE J2012 / ISO 15031-6) via the OBDexopen database, dedicated to the public domain under CC0-1.0.
Diagnostic guidance
Written and reviewed in-house. See our editorial policy.
Review status
Reviewed

Found something wrong? Tell us — we publish corrections.