Summary
P0125 means the engine coolant isn't reaching the temperature the PCM needs to enter closed-loop fuel control within a reasonable time. In open loop, the PCM runs a pre-programmed rich fuel mixture; in closed loop, it uses oxygen sensor feedback to fine-tune the mix. If the engine stays too cool, it stays in open loop, burning extra fuel. The dominant cause is a stuck-open thermostat (65%), with a faulty ECT sensor a distant second (20%). This code is closely related to P0128 and has a similar fix path.
Severity: Low to Moderate
Safe to drive: Yes — fuel economy and emissions suffer but no immediate danger
Repair cost: $10–$250 depending on cause
DIY difficulty: Moderate
What does P0125 mean?
Modern engines use two fuel control modes. During cold start, the PCM operates in open loop — it ignores the oxygen sensors and runs a predetermined rich fuel mixture to keep the cold engine running smoothly. Once the coolant temperature reaches a threshold (usually 150–170°F depending on the vehicle), the PCM switches to closed loop, where it actively reads the O2 sensors and adjusts the fuel mixture in real time for optimal combustion and emissions.
P0125 sets when the PCM determines that coolant temperature hasn't risen enough to enter closed loop within the expected time window. The PCM calculates this window based on ambient temperature at startup, engine load, and run time. If the coolant temperature is still too low when the window expires, the code is set.
The practical consequence: the engine stays in open loop longer than it should, running rich. You burn more fuel, produce more emissions, and the O2 sensor monitors can't run their self-tests, which means readiness monitors won't set for emissions testing.
This code is closely related to P0128 (coolant below thermostat regulating temperature). The difference is P0125 specifically focuses on the fuel control transition, while P0128 looks at the overall thermostat performance. In many cases, both codes appear together.