P0128 on 2014-2021 Mazda 6: Causes and Fixes for Coolant Temperature Issues
For a 2014-2021 Mazda 6, code P0128 almost always means the engine thermostat is stuck open. This is a common failure point. Replacing the thermostat is the typical fix. For 2018-2021 models, this repair may be covered under a warranty extension (SSPD8) related to code P0126, so check with a dealer first. An OEM thermostat costs around $25-$40.
- P0128 on a 2014-2021 Mazda 6 is almost always caused by a thermostat that has failed in the stuck-open position.
- Key symptoms include a Check Engine Light, the engine warming up very slowly, and poor cabin heater performance.
- The most reliable diagnostic method is to watch the live coolant temperature on a scan tool; if it doesn't reach ~180°F+, the thermostat is bad.
- The repair is DIY-friendly for those with some mechanical skill, but may require moving the power steering pump for access.
- Always use Mazda's specified FL22 coolant when refilling the system after the repair.
What's Unique About the 2014-2021 Mazda 6
The 2014-2021 Mazda 6 (third generation, GJ1/GL) with the Skyactiv-G engine is generally reliable, but like many modern vehicles, the thermostat is designed to fail in the open position as a safety measure against overheating. This specific failure mode is the direct cause of the P0128 code. While there isn't a specific recall for this code, Mazda has acknowledged a widespread thermostat issue on 2018-2021 models (and other platform mates) that triggers the very similar P0126 code. This is covered by a warranty extension (SSPD8), and owners with P0128 should inquire with a dealer about potential coverage.
Symptoms You May Notice
- Check Engine Light is on
- Engine takes a very long time to warm up
- Temperature gauge on the dashboard stays low or fluctuates, especially dropping on the highway.
- Heater blows lukewarm or cold air, or takes a long time to get warm.
- Noticeable decrease in fuel economy.
- Blue low coolant temperature indicator light stays on longer than usual or comes on while driving.
- Replacing the Engine Coolant Temperature (ECT) sensor when the thermostat is the actual problem. If there are no other codes pointing to an electrical fault with the sensor circuit (like P0117 or P0118), the mechanical thermostat is the most likely culprit.
Most Likely Causes
- Stuck-Open Engine Thermostat 🔴 High Probability Thermostats are wear items designed to fail-safe in the open position. This is a well-documented issue on many Mazda vehicles, particularly 2018+ models which have a specific warranty extension (SSPD8) for this failure, even if the code is P0126.
How to confirm: Use an OBD-II scanner to monitor live coolant temperature data from a cold start. If the temperature rises very slowly, struggles to get above 170-180°F, or drops significantly at highway speeds, the thermostat is stuck open.
Typical fix: Replace the engine coolant thermostat and gasket. It is also recommended to drain and refill the coolant with Mazda's specified FL22 type. 🎬 Watch: Step-by-step walkthrough for replacing the Skyactiv thermostat. For 2018-2021 models, contact a Mazda dealer to see if the repair is covered under warranty extension SSPD8.
Est. part cost: $25-$40 for an OEM thermostat. - Faulty Engine Coolant Temperature (ECT) Sensor ⚪ Low Probability
How to confirm: Check for other ECT-related codes (e.g., P0116, P0117, P0118). Compare the ECT sensor reading on a scanner to the ambient air temperature after the car has been off for several hours; they should be very close. If the reading is irrational (e.g., -40°F on a warm day or gives a 'high engine temp' warning on a cold start), the sensor is bad.
Typical fix: Replace the engine coolant temperature sensor. 🎬 See how to replace the coolant temperature sensor yourself. A manufacturer service bulletin for other Mazda models, TSB Bulletin #01-005-20-3704, notes that a faulty sensor can cause the engine temperature to report as hot when it is actually cold, or vice versa, and may also affect cooling fan operation.
Est. part cost: $50-$65 for an OEM sensor. - Low Engine Coolant Level ⚪ Low Probability
How to confirm: Visually inspect the coolant reservoir and radiator (when the engine is cold) to ensure the level is between the 'MIN' and 'MAX' lines. An air pocket near the ECT sensor can cause false readings.
Typical fix: Top off the coolant with the correct type (Mazda FL22) and bleed the system to remove any air pockets. 🎬 Watch: How to properly drain and bleed the cooling system. Investigate and fix the source of the coolant loss.
Est. part cost: $20-$30 for a gallon of coolant.
Rare But Worth Checking
- Cooling Fan Stuck On: If the electric cooling fan runs constantly, even when the engine is cold, it can over-cool the engine and prevent it from reaching operating temperature. This is often caused by a faulty fan control module or relay, a known minor issue on this platform.
- PCM Control Logic: In some Mazda vehicles, P0128 can be triggered by improper control logic of the Powertrain Control Module (PCM) rather than a mechanical failure, as described in TSB Bulletin #01-021-13-2817B.
Diagnosis Steps
- Use an OBD-II scanner to confirm P0128 is the only code present. If other codes exist, address them first.
- With the engine cold, check the coolant level in the reservoir and radiator. Ensure it is full and that the coolant is clean.
- For 2018-2021 models, call a Mazda dealer with your VIN and ask if warranty extension SSPD8 for thermostat failure applies to your vehicle, even with code P0128.
- Use the scanner's live data feature to monitor the Engine Coolant Temperature (ECT). Start the engine from cold.
- Observe the temperature climb. It should rise steadily to around 180-200°F and stabilize.
- If the temperature rises very slowly, never reaches the target range, or drops significantly while driving at highway speeds, the thermostat is almost certainly stuck open and needs to be replaced.
- If the temperature reading on the scanner is erratic or clearly incorrect from the start (e.g., reads maximum hot or minimum cold when the engine is off), suspect a faulty ECT sensor or wiring issue.
- Check if the radiator cooling fan is running when the engine is cold and the A/C is off. It should be off. If it's on, diagnose the fan control circuit.
Parts You'll Likely Need
- Engine Coolant Thermostat
(OEM #PE01-15-171 (or PE01-15-171A))— This is the most common cause of P0128. The original part fails by sticking in the open position, preventing the engine from warming up correctly.
Trusted brands: Mazda (OEM), Aisin, Gates, Motorad
OEM price range: $25-$40
Aftermarket price range: $15-$30 - Engine Coolant Temperature (ECT) Sensor
(OEM #PE18-18-840)— This is the second most likely cause, though much less common than the thermostat. It can fail and send incorrect temperature readings to the computer.
Trusted brands: Mazda (OEM), Denso, Bosch
OEM price range: $50-$65
Aftermarket price range: $20-$40 - Mazda Long Life Coolant FL22
(OEM #0000-77-508E-20)— The cooling system must be drained to replace the thermostat, so you will need to refill it with the manufacturer-specified coolant. Using the correct P-HOAT coolant is critical for longevity.
Trusted brands: Mazda (OEM), Ravenol HJC, Pentofrost A3
OEM price range: $25-$35 per gallon
Aftermarket price range: $20-$30 per gallon
Related Codes That Often Appear With This One
- P0126 — P0126 ('Insufficient Coolant Temperature for Stable Operation') is a very similar code often triggered by the exact same fault: a stuck-open thermostat. For 2018-2021 models, Mazda issued a warranty extension (SSPD8) specifically for P0126, making it crucial to check with a dealer even if you have P0128.
Technical Service Bulletins (TSBs) & Recalls
- TSB 01-001/26 (and its revisions): Details the diagnosis and repair for DTC P0126:00 caused by a stuck-open thermostat on 2018-2021 Mazda 6 models, among others. It is the basis for the SSPD8 warranty extension.
- Warranty Extension Program SSPD8: Extends warranty coverage for the specific repair of the fail-safe thermostat to 15 years or 150,000 miles for affected vehicles, including the 2018-2021 Mazda 6.
- TSB Bulletin #01-021-13-2817B: Notes that some Mazda vehicles may experience a MIL with DTC P0128:00 due to improper control logic of the PCM, which requires a software update to correct.
- TSB Bulletin #01-005-20-3704: Describes issues where the engine temperature may be cold but report as hot (or vice versa) with DTC P0128 present, potentially affecting cooling fan operation.
Platform-Specific Known Issues
- For 2018-2021 models, Mazda issued a warranty extension (SSPD8) for a widespread thermostat failure causing code P0126. This TSB (01-001/26) covers the Mazda 6 with the 2.5L non-turbo engine. Owners experiencing P0128 should contact a Mazda dealer with their VIN to see if their vehicle's thermostat-related repair might be covered, as the root cause is identical.
Mechanic-Grade Diagnostic Values
- Engine Coolant Temperature (ECT) Sensor Resistance — expected: ~2,200 - 3,000 Ω at 20°C (68°F). Failure: Significantly higher or lower resistance, or an open/short circuit reading.
- Engine Coolant Temperature (ECT) Sensor Resistance at Operating Temp — expected: ~250 - 350 Ω at 80°C (176°F). Failure: Resistance does not drop into this range when the engine is fully warmed up.
- Engine Coolant Temperature (ECT) Sensor Signal Voltage (Cold Start) — expected: ~2.0V - 3.5V at ~20°C (68°F). Failure: Voltage is near 0V or 5V, or does not correlate with ambient temperature.
- Engine Coolant Temperature (ECT) Sensor Signal Voltage (Operating Temp) — expected: ~0.5V - 1.3V at ~80-90°C (176-194°F). Failure: Voltage fails to drop to this range as the engine warms up on a scan tool.
- P0128 Set Condition Temperature — expected: Engine coolant temperature fails to reach ~160-180°F (71-82°C) within a predetermined time after startup.. Failure: Live data on a scan tool shows temperature plateauing below this range, or dropping significantly at speed.
Scan Tool Commands That Help
- Mazda M-MDS (or high-end generic like FORScan): Data Logger - Monitor PIDs: ECT and ECT2_V — This is used to compare the primary engine coolant temp sensor (ECT) with the secondary sensor (ECT2) located at the radiator. A large discrepancy between the two on a cold engine can indicate a faulty sensor, although P0128 is more often related to the primary ECT and thermostat. A TSB for code P2183 on other models uses this method to diagnose a corroded ECT2 sensor.
Wiring & Ground Locations
- ECT Sensor 1 (Primary) — Screwed into the thermostat housing, located on the driver's side of the engine block, below the air intake tube.. This is the primary sensor the ECM uses to determine if the engine is warming up correctly. A bad connection, corroded pins, or damaged wiring at its 2-pin connector can mimic a sensor failure or cause intermittent readings, complicating the diagnosis of P0128.
Real Owner Repair Stories
- Reddit user in r/Cartalk (2012 Honda Civic (similar logic, different vehicle)) — Check Engine Light with code P0128.
❌ Tried (didn't work) Replaced the thermostat with an aftermarket 'OEM equivalent' from a parts store.
✅ What actually fixed it The P0128 code returned two months later. The consensus from mechanics in the thread was that the aftermarket thermostat likely failed prematurely or was faulty from the start, and that the next step should be to replace it again, preferably with a genuine OEM part, before suspecting other causes.
OEM Part Supersession History
PE01-15-171→PE01-15-171A— Standard part revision. While not explicitly stated, revisions often address reliability improvements or minor manufacturing changes. The 'A' revision is the current recommended part.
Heads up: The parts are physically interchangeable. However, for any warranty claims or for 2018+ models, using the latest 'A' revision is strongly recommended.
Model Year Variations Within This Range
- 2018-2021: These later 'GL' refresh models are the primary focus of Mazda's TSB 01-001/26 and warranty extension SSPD8 for thermostat failure (even though it's for code P0126). The failure rate appears higher on these models. Additionally, the 2.5L non-turbo engine received cylinder deactivation starting in 2018, though this does not directly affect the cooling system components related to P0128.
- 2018+: A redesigned, more reliable hydraulic belt tensioner pulley was introduced in 2018. While not directly related to P0128, it's a significant reliability improvement for the platform over the 2014-2017 models, which had a tensioner known to leak.
Diagnostic Flowchart
Other Known Issues on This Vehicle
Issues unrelated to this code that are worth knowing about as an owner of this generation:
- Infotainment 'Ghost Touch' or Delamination 🟠 Medium — Very common, especially on 2016+ models. Often worsens in heat. The screen registers phantom touches, making the system unusable. (Ref: No recall, but widely documented. A common DIY fix is to disconnect the touchscreen ribbon cable, forcing reliance on the commander knob.)
- Intake Valve Carbon Buildup 🟠 Medium — Inherent to all Skyactiv direct injection (GDI) engines. Can cause misfires (e.g., P0302) and rough idle, typically becoming noticeable after 50,000-60,000 miles. (Ref: No recall. Requires periodic cleaning (walnut blasting or chemical cleaning) for long-term performance.)
- Leaking Hydraulic Serpentine Belt Tensioner 🟡 Low — Extremely common. The hydraulic tensioner weeps or leaks fluid, which can be seen as a black residue on and around the tensioner body. Often noted during routine service. (Ref: No recall, but it is a known pattern failure. Failure can eventually lead to belt noise or the belt coming off.)
- PCM Software Error Causing Stall (2018-2019) 🔴 High — Affects specific 2018-2019 models. A software error in the Powertrain Control Module (PCM) could cause the engine to stall unexpectedly. (Ref: Recall 19V497000.)
Used vs. New Parts: Buying Guide for This Vehicle
When a used part is the smart pick: For this repair, using used parts is generally not recommended. The primary failure part, the thermostat, is a low-cost wear item. The risk of a used thermostat failing shortly after installation is high, and the labor involved outweighs the small cost savings.
Donor-vehicle mileage cap: roughly under 30000 miles for the part to have meaningful remaining life.
What to inspect on the donor part:
- If forced to use a used part (e.g., entire housing is needed), source from a low-mileage, late-model vehicle that was clearly not in a frontal collision.
- For a used ECT sensor, inspect the connector pins for any signs of green or white corrosion.
OEM-only on this vehicle (don't cheap out):
- Engine Coolant Thermostat: While some aftermarket brands are reliable (Aisin, Gates), the OEM Mazda part has the highest probability of long-term success. Given the relatively low cost and the frequency of issues with cheap aftermarket alternatives, OEM is the safest choice.
Aftermarket brands forum-validated for this vehicle:
- Aisin (often the OEM supplier)
- Gates
- Denso (for ECT sensor)
Brands owners have reported issues with on this vehicle:
- Unnamed 'white box' or store-brand thermostats have a higher reported failure rate and may not regulate temperature as precisely as the OEM unit, potentially causing the code to return.
Real Owner Stories
Aggregated from forums and TSBs cited above. Mileages and costs reflect what owners reported in those sources.
2018-2021 Mazda 6 2.5L
Symptoms: The temperature gauge on the dashboard stays low or fluctuates, especially dropping while driving at highway speeds.
What fixed it: Replacement of the engine coolant thermostat and gasket, potentially covered under Mazda's SSPD8 warranty extension.
Source hint: TSB 01-001/26 (and its revisions)
Mazda 6 (Generation 3)
Symptoms: The temperature gauge was not reaching the middle, confirming the engine was running too cold.
What fixed it: Thermostat replacement.
Source hint: Reddit r/MechanicAdvice - P0128 thread
2018-2021 Mazda 6 2.5L
Symptoms: The blue low coolant temperature indicator light stays on longer than usual or comes on while driving.
What fixed it: Replacement of the fail-safe thermostat under Warranty Extension Program SSPD8.
Source hint: Warranty Extension Program SSPD8
2014-2021 Mazda 6 2.5L Skyactiv-G — 58000 miles
Symptoms: Engine misfire and rough idle.
What fixed it: Intake valve cleaning to remove carbon buildup, a known issue for the Skyactiv-G direct injection engine.
Source hint: Reddit r/mazda - Skyactiv 2.5L Intake Valve Cleaning
Related OBD-II Codes
Frequently Asked Questions
Is there a warranty extension for the thermostat on my 2018 Mazda 6?
My Mazda 6 is throwing P0128, but I heard there is a TSB for P0126. Are they related?
What type of coolant should I use to top off my 2014-2021 Mazda 6?
Why does my blue low coolant temperature light stay on so long on my Mazda 6?
How much does an OEM thermostat cost for the 2.5L Skyactiv-G engine?
Can a faulty ECT sensor cause P0128 on my Mazda 6?
Helpful Videos
Used OEM Parts in Stock
New Aftermarket Parts Available
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.
- Mazda 6:
- 🎬 Helpful Videos
- 🛍️ Shop This Part
- What's Unique About the 2014-2021 Mazda 6
- Symptoms You May Notice
- Most Likely Causes
- Rare But Worth Checking
- Diagnosis Steps
- Parts You'll Likely Need
- Related Codes That Often Appear With This One
- Technical Service Bulletins (TSBs) & Recalls
- Platform-Specific Known Issues
- Mechanic-Grade Diagnostic Values
- Scan Tool Commands That Help
- Wiring & Ground Locations
- Real Owner Repair Stories
- OEM Part Supersession History
- Model Year Variations Within This Range
- Diagnostic Flowchart
- Other Known Issues on This Vehicle
- Used vs. New Parts: Buying Guide for This Vehicle
- Real Owner Stories
- 2018-2021 Mazda 6 2.5L
- Mazda 6 (Generation 3)
- 2018-2021 Mazda 6 2.5L
- 2014-2021 Mazda 6 2.5L Skyactiv-G — 58000 miles
- Related OBD-II Codes
- Frequently Asked Questions
- 🎟️ Get 5% Off