P0128 on a Subaru
Quick answer
On Subaru models with documented external head gasket seepage on the EJ25 engine, slow coolant warm-up and a resulting P0128 can be a secondary symptom of gradual coolant loss rather than a purely thermostat-only failure.
Severity 2 of 4. Yes, while you arrange a repair.
Fix soon · Safe to keep driving
| Code | P0128 |
|---|---|
| Standard name | Coolant Thermostat (Coolant Temperature Below Regulating Temperature) |
| Make | Subaru |
| Severity | Fix soon (2 of 4) |
| Safe to drive | Yes, while you arrange a repair |
| Tool needed | Scanner with live data |
TOPDON TopScan Lite OBD2 Scanner, Bidirectional Scan Tool, 8 Resets & AI
Adds live sensor streams and freeze frame, which is what turns a code into a diagnosis rather than a guess.
Coverage varies by tool and by model year, so check a specific tool against a specific vehicle before buying.
What is different about P0128 on a Subaru?
The same EJ25 head gasket history documented elsewhere on this site for catalyst-related codes can also show up as a slow-warm-up complaint tied to P0128.
Patterns documented on Subaru vehicles
Head gasket seepage lowering coolant level: On some generations of the EJ25 engine documented for external head gasket seepage, gradual coolant loss can affect how quickly the engine appears to reach operating temperature, contributing to a P0128 reading alongside other head gasket symptoms.
Thermostat wear following high mileage: Standard age-related thermostat wear is also documented separately on Subaru boxer engines and should be checked as a more straightforward cause before assuming a head gasket issue.
What to check first on a Subaru
The order below narrows the generic P0128 list down to what is worth checking first on this make. It is a starting order, not a diagnosis: patterns are generation specific and a vehicle outside those generations may have none of them.
Check in this order
- Check coolant level and look for signs of external head gasket seepage on EJ25-equipped models
- Inspect the thermostat for a straightforward stuck-open condition first
- Check actual engine warm-up time against expected time for the model
- Address any head gasket seepage before assuming a thermostat-only fix will resolve the code
The generic picture behind P0128
The computer expects coolant temperature to reach and hold near the thermostat regulating point within a certain time and driving pattern. This code sets when the engine coolant stays below that point for too long, which almost always means the thermostat is stuck open or missing.
Everything on the main P0128 page still applies here. This page narrows the cause list to the patterns documented on Subaru vehicles, it does not replace the underlying definition.
The generic version of this code
Tools that can diagnose P0128
Adds live sensor streams and freeze frame, which is what turns a code into a diagnosis rather than a guess.
- LJPXHHU
OBD2 Bluetooth Scanner Car Code Reader for iOS, Android and Windows
- wireless
$13.98 Check pricePrices change often - Veepeak
Veepeak Mini Bluetooth OBD2 Scanner Code Reader for Android (NOT for iOS)
- wireless
$14.99 Check pricePrices change often - MOCATEC
WiFi ELM327 OBD2 Adapter WiFi ELM 327 OBD Scanner for Universal 12V Vehicle
- wireless
$15.95 Check pricePrices change often - UMEIJA
OBD2 Scanner Diagnostic Tool, Car Scanner for iOS & Android, Bluetooth 5.4
- wireless
$29.99 Check pricePrices change often
Common questions
Can a Subaru head gasket leak cause a slow warm-up code?
On some generations of the EJ25 engine documented for external head gasket seepage, gradual coolant loss over time can affect how quickly the engine reaches expected operating temperature, which can contribute to a P0128 code alongside more direct head gasket symptoms.
Should I replace the thermostat first or check for a head gasket leak first?
It is reasonable to check the thermostat first since it is the more common and less costly cause generally, but on EJ25-equipped Subaru models with any documented signs of external coolant seepage, checking for a head gasket leak alongside the thermostat is worthwhile before assuming a thermostat replacement alone will fix the code.
