P0128 on 2013-2014 Subaru Legacy 2.5L: Causes and Fixes for Low Coolant Temperature
The P0128 code on a 2013-2014 Subaru Legacy almost always points to a faulty thermostat that is stuck open. Replacing the thermostat and gasket is the most common fix. Expect to pay around $20-$40 for an aftermarket part or $40-$60 for the updated OEM part (21210AA211), which is highly recommended.
- P0128 on your 2013-2014 Legacy means the engine is running too cold, not overheating.
- The most likely cause by a wide margin is a thermostat that is stuck in the open position.
- Subaru released an updated thermostat (Part No. 21210AA211) to fix this exact problem, so using the OEM part is strongly advised to avoid repeat repairs.
- This is a manageable DIY repair for those with basic tools, but requires draining and refilling some coolant and careful bleeding of the system.
- Do not ignore this code; it will negatively impact your fuel mileage, increase emissions, and disable systems like cruise control.
What's Unique About the 2013-2014 Subaru Legacy
For this specific generation of Subaru Legacy with the 2.5L FB25 engine, Subaru issued a Technical Service Bulletin (TSB 09-56-13) regarding the P0128 code. The TSB indicates that in some cases, coolant could seep into the thermostat's internal piston during a cold soak, causing it to open at a lower temperature than specified, which directly leads to this code. This confirms a known weakness in the original-spec part (21210AA210), making thermostat failure a very high-probability cause and the updated countermeasure part (21210AA211) the recommended fix. Manufacturer TSB Bulletin #09-56-13 explicitly notes that if coolant enters the internal piston, the thermostat may open at a temperature lower than specified, causing DTC P0128 to be stored in the ECM memory.
Symptoms You May Notice
- Check Engine Light is on
- Flashing cruise control light and illuminated traction control light (a common Subaru behavior when the Check Engine Light is on).
- Temperature gauge on the dashboard reads lower than normal, takes a very long time to move, or drops at highway speeds.
- Heater blows lukewarm air or takes much longer than usual to produce hot air.
- A noticeable drop in fuel economy.
- Replacing the coolant temperature sensor when the thermostat is the actual problem. Always diagnose the thermostat's physical operation before replacing sensors.
- Assuming a new aftermarket thermostat is good. Many owners report having to replace a new aftermarket part with an OEM one to finally resolve the code.
Most Likely Causes
- Failing or Stuck-Open Thermostat 🔴 High Probability → Shop Integrated Thermostat Housing Assembly This is the most frequent cause for P0128 on any vehicle. For this specific Subaru, a TSB (09-56-13) was issued for a faulty thermostat design that could cause it to open prematurely, making this the primary suspect. The failure mode is typically the thermostat getting stuck in the open position.
How to confirm: After the engine has warmed up, feel the upper and lower radiator hoses. If the upper hose is hot and the lower hose is also warming up at the same time shortly after a cold start, the thermostat is likely stuck open, allowing coolant to circulate constantly through the radiator when it shouldn't be. A properly functioning thermostat would keep the lower hose cool until the engine reaches operating temperature.
Typical fix: Replace the thermostat and its gasket. It is highly recommended to use the OEM countermeasure part (Subaru Part No. 21210AA211) to prevent recurrence. Refill with Subaru Super Coolant (blue) and properly bleed the system to remove air pockets.
Est. part cost: $20-$60 - Faulty Engine Coolant Temperature (ECT) Sensor ⚪ Low Probability → Shop Engine Coolant Temperature Sensor While less common than the thermostat, a faulty ECT sensor can send incorrect readings to the ECM, causing the P0128 code. This is not a common failure point on this platform but is a possibility.
How to confirm: Use an OBD-II scanner to monitor the live coolant temperature data. If the reading is erratic, nonsensical (e.g., reads -40°F from a cold start), or clearly doesn't match the engine's actual temperature (which can be verified with an infrared thermometer on the thermostat housing), the sensor is likely bad. A faulty ECT sensor will often trigger other codes like P0117 or P0118.
Typical fix: Replace the engine coolant temperature sensor. The OEM part number is typically 22630AA140 for this model year.
Est. part cost: $25-$75 - Low Engine Coolant Level / Air in System ⚪ Low Probability
How to confirm: Visually inspect the coolant overflow reservoir and the radiator (when the engine is cold). If the level is low, it can cause air pockets to form, especially around the ECT sensor, leading to inaccurate readings. This is a common issue after a coolant service if the system was not bled properly.
Typical fix: Top off the coolant and bleed the system to remove any air pockets. If the level drops again, find and repair the leak. A proper bleed procedure for a Subaru involves using a spill-free funnel and running the engine at an angle or with the front end raised.
Est. part cost: $20-$30 for coolant
Rare But Worth Checking
- Cooling Fan Stuck On: → Shop Engine Cooling Fan Blade If the electric cooling fans run constantly, even when the engine is cold, it can prevent the engine from warming up properly. This is usually caused by a failed fan relay or a short in the wiring and is considered a rare cause for this code.
- Aftermarket Thermostat Issues: → Shop Integrated Thermostat Housing Assembly Owner forums frequently report that aftermarket thermostats, even new ones, can be faulty out of the box or fail quickly, causing the P0128 code to return. Sticking with the OEM part is strongly advised to avoid repeat repairs.
Diagnosis Steps
- Check for TSBs: Confirm TSB 09-56-13 applies to your vehicle's VIN. The TSB confirms a known issue with the original thermostat.
- Check Coolant Level: Ensure the coolant level in the overflow tank and radiator (when cold) is correct. Low coolant can cause air pockets and temperature reading issues.
- Scan Tool Live Data: Connect an OBD-II scanner and monitor the Engine Coolant Temperature (ECT) reading as the car warms up from a cold start. The temperature should steadily climb to around 190-200°F (approx. 88-93°C) and stabilize.
- Observe Temperature Behavior: If the temperature rises slowly at idle but drops significantly while driving at highway speeds, this strongly indicates a thermostat stuck open, as the constant airflow over the radiator is over-cooling the engine.
- Physical Hose Check: Once the car should be at operating temperature, carefully feel the upper and lower radiator hoses. The upper hose should be hot. If the lower hose is also hot or warming up prematurely, the thermostat is likely stuck open.
- Inspect ECT Sensor Reading: If the live data from the scanner is erratic, shows impossible values (like -40°F), or jumps around, the sensor or its wiring is the likely culprit. Compare sensor resistance to a temperature chart for a definitive test.
- If all other causes are ruled out, replace the thermostat and gasket with the updated OEM part (21210AA211). This is the most probable fix.
Parts You'll Likely Need
- Engine Coolant Thermostat
(OEM #21210AA211)— This is the most common failure part for code P0128. A specific countermeasure part was released by Subaru to fix a known defect where coolant could seep into the thermostat piston. This part number supersedes the original, problematic part 21210AA210.
Trusted brands: Subaru (OEM), Motorad, Gates
OEM price range: $40-$60
Aftermarket price range: $20-$40 - Subaru Super Coolant 50/50 Pre-mixed
(OEM #SOA868V9270)— The cooling system must be partially drained to replace the thermostat, requiring a refill and bleeding. Using the correct OEM coolant is highly recommended to prevent corrosion and ensure system longevity.
Trusted brands: Subaru (OEM)
OEM price range: $25-$35 per gallon - Thermostat Gasket
(OEM #Included with OEM Thermostat)— A new gasket is required to ensure a leak-free seal. The OEM thermostat part number 21210AA211 includes the gasket.
Trusted brands: Subaru (OEM)
OEM price range: $5-$10 if purchased separately
Aftermarket price range: $2-$5
Technical Service Bulletins (TSBs) & Recalls
- 09-56-13R: Countermeasure Thermostat Availability for DTC P0128.
- TSB Bulletin #11-111-12R: Provides diagnostic guidance for P0128, defining it as the engine coolant temperature remaining below the thermostat regulating temperature.
Platform-Specific Known Issues
- Subaru Technical Service Bulletin 09-56-13R was released for the 2013-2014 Legacy 2.5L FB engine, specifically addressing DTC P0128. It announces a 'countermeasure thermostat' (Part No. 21210AA211) designed to prevent an issue where coolant could enter the thermostat's internal piston during a cold soak, causing it to open at too low a temperature.
Mechanic-Grade Diagnostic Values
- Engine Coolant Temperature (ECT) Sensor Resistance — expected: Approximately 2,200 - 3,000 Ω at 68°F (20°C) and 250 - 350 Ω at 176°F (80°C).. Failure: Readings that are infinite (open circuit), near zero (short circuit), or do not decrease smoothly as the sensor warms up indicate a faulty sensor.
- Engine Coolant Temperature (ECT) Sensor Voltage (Signal Wire to Ground) — expected: Approximately 3.0 - 3.5V on a cold start (~68°F/20°C), dropping to around 1.0 - 1.3V at normal operating temperature (~176°F/80°C).. Failure: Voltage that is stuck high (near 5V) or low (near 0V), or does not change with temperature, points to a sensor or wiring issue.
Hidden / Shadow Codes Worth Checking
- Thermostat Malfunction Flag: → Shop Integrated Thermostat Housing Assembly This is not a standard DTC but a specific status flag within the live data parameters. It indicates the ECM's internal logic has specifically identified a thermostat performance issue, adding confidence to the diagnosis. (see via Viewable in the "Current Data Display" on the Subaru Select Monitor (SSM) or some high-end professional scan tools.)
Scan Tool Commands That Help
- Subaru Select Monitor (SSM): Cooling Fan Relay ON/OFF — This bidirectional control is used to test the function of the cooling fan circuit. It can force the fans to turn on, confirming the fan motors, wiring, and relays are working. This helps to quickly rule out the rare possibility of a 'cooling fan stuck on' condition causing the P0128 code.
Wiring & Ground Locations
- GE1 / GE2 — Bolted to the top center rear of the engine block, near the intake manifold.. The ECM and its sensors, including the ECT sensor, rely on a clean ground path through the engine block. A corroded or loose connection at these primary engine grounds can cause erratic or incorrect readings from the ECT sensor, potentially leading to a P0128 code even if the sensor and thermostat are good.
- Engine Coolant Temperature (ECT) Sensor Connector — Screwed into a coolant passage on the engine, typically near the thermostat housing at the front of the engine.. This 2-pin connector provides the signal and ground reference to the ECM. The plastic can become brittle from heat cycles, leading to a poor connection. Wiggling this connector while monitoring live data can reveal an intermittent connection. One pin is the signal wire to the ECM, the other is a sensor ground provided by the ECM.
Real Owner Repair Stories
- legacygt.com & subaruoutback.org forum members (2013 Subaru Outback 2.5L (platform mate)) — P0128 code returned one week after replacing the original thermostat with an aftermarket part.
❌ Tried (didn't work) Clearing the code., Replacing the thermostat with a new aftermarket unit.
✅ What actually fixed it The owner replaced the aftermarket thermostat with the updated OEM Subaru thermostat (part no. 21210AA211). The code did not return, confirming the aftermarket part was either faulty or not meeting the precise specifications required by the Subaru ECM. - Various Subaru DIY forum threads (2013-2014 Subaru Legacy/Outback 2.5L) — P0128 code appeared immediately after replacing the thermostat and coolant.
❌ Tried (didn't work) Assuming the new thermostat was bad and replacing it again.
✅ What actually fixed it The cooling system had an air pocket trapped near the ECT sensor, causing false low readings. The issue was resolved by properly bleeding the cooling system. This involves using a spill-free funnel, parking the vehicle on an incline (nose up), and running the engine with the heater on high to purge all air. Additionally, ensuring the new thermostat's 'jiggle pin' was installed in the 12 o'clock position was critical for allowing trapped air to pass.
When the Usual Fixes Don't Work
- While the vast majority of P0128 codes on this vehicle are fixed by replacing the thermostat with an OEM part, a recurring theme in owner forums is the code returning after the repair. In nearly all of these cases, the root cause was not a different component failing, but rather one of two things: the use of an aftermarket thermostat that did not meet the ECM's strict warm-up parameters, or an incomplete air bleeding procedure after the coolant was refilled. This reinforces that the 'common fix' is correct, but the execution of the repair is critical and a frequent point of failure for both DIYers and some professional shops.
OEM Part Supersession History
21210AA210→21210AA211— The original part was prone to failure due to coolant seeping into the internal piston, causing it to open at a lower temperature. The updated part is a countermeasure to correct this design flaw, as noted in TSB 09-56-13R.
Heads up: While the original part will physically fit, it is known to be defective and should not be used. The 21210AA211 kit includes the required rubber gasket.
Diagnostic Flowchart
Real Owner Stories
Aggregated from forums and TSBs cited above. Mileages and costs reflect what owners reported in those sources.
2012 Subaru Legacy — ~110000 miles
Symptoms: Triggered a P0128 code after passing the 100k mile mark.
What fixed it: Replaced the thermostat with an OEM Subaru unit. The owner specifically advised DIYers to go to a dealer for the OEM part, noting that aftermarket thermostats are 'hit and miss'.
Source hint: Reddit r/subaru & r/MechanicAdvice
2013-2014 Subaru Outback 2.5L
Symptoms: Experienced the P0128 code accompanied by flashing dash lights (cruise control/traction control).
What fixed it: Successfully resolved the issue by replacing the faulty thermostat with the OEM Subaru replacement.
Source hint: subaruoutback.org
2011 Subaru Outback
Symptoms: Dealt with a recurring P0128 code that would not go away permanently.
What fixed it: Was advised by other forum members that the recurring code was likely due to a defective aftermarket thermostat that had been installed previously.
Source hint: subaruoutback.org
Related OBD-II Codes
Frequently Asked Questions
Does TSB 09-56-13R apply to my 2013-2014 Subaru Legacy 2.5L?
Why are my cruise control and traction control lights flashing along with the Check Engine Light?
Should I use an aftermarket thermostat to fix P0128 on my Legacy?
What type of coolant should I use when replacing the thermostat on my FB25 engine?
How can I tell if my thermostat is stuck open while driving?
Could a bad Engine Coolant Temperature (ECT) sensor cause P0128 on this car?
Helpful Videos
We Have This Part in Stock
The information in this article is provided for general reference and educational purposes only. Vehicle specifications, procedures, and part compatibility can vary by production date, trim level, and region. Always consult your vehicle's factory service manual and verify part numbers before purchasing or performing repairs. Safety-critical components such as airbags, seat belts, and braking systems should be installed by a qualified professional.
- Subaru Legacy:
- 🧭 Diagnostic Flowchart
- 🎬 Helpful Videos
- 🛍️ Shop This Part
- What's Unique About the 2013-2014 Subaru Legacy
- Symptoms You May Notice
- Most Likely Causes
- Rare But Worth Checking
- Diagnosis Steps
- Parts You'll Likely Need
- Technical Service Bulletins (TSBs) & Recalls
- Platform-Specific Known Issues
- Mechanic-Grade Diagnostic Values
- Hidden / Shadow Codes Worth Checking
- Scan Tool Commands That Help
- Wiring & Ground Locations
- Real Owner Repair Stories
- When the Usual Fixes Don't Work
- OEM Part Supersession History
- Real Owner Stories
- 2012 Subaru Legacy — ~110000 miles
- 2013-2014 Subaru Outback 2.5L
- 2011 Subaru Outback
- Related OBD-II Codes
- Frequently Asked Questions
- 🎟️ Get 5% Off