P0128 Code on 2004 Chevrolet Silverado: Cold Morning Warm-Up Issues and Diagnosis
I own a 2004 Chevrolet Silverado that is displaying a P0128 diagnostic trouble code. I've already replaced the thermostat and installed a new radiator, as my previous radiator failed. The issue only occurs on cold mornings when temperatures are at or below 40°F. The engine takes significantly longer to reach operating temperature—often not reaching 180°F until after my one-hour commute to work. I also have a new temperature sensor in place. The P0128 code indicates that the engine is not warming up properly, which may point to issues such as an improperly functioning thermostat, fan clutch engagement, or coolant system air pockets. Although I've followed standard procedures for bleeding the cooling system and used a factory-recommended 195°F thermostat, the problem persists. The vehicle runs normally in warmer conditions (reaching 200–205°F), but on cold mornings, it struggles to reach proper operating temperature. I’ve verified that all systems are within normal ranges using a dealership-level diagnostic tool, except for an oxygen sensor which I replaced and brought back into range. The system does not show the thermostat as 'open' during diagnostics. I’m concerned whether an aftermarket thermostat or a malfunctioning fan clutch could be responsible. Given that my truck had factory settings pre-programmed before purchase (including throttle body response and engine shutdown thresholds), I wonder if these software parameters might also influence the warm-up behavior. I'm seeking advice on possible root causes, especially regarding the role of a regulator, thermostat compatibility, or fan clutch operation in this scenario.
Did you install the new radiator correctly? Ensure the coolant level and concentration are proper. When the engine is cold, start it with the radiator cap off, let it reach operating temperature, allow the coolant to 'burp' out any trapped air, then recheck and top up the coolant as needed. Also, review the official P0128 explanation on OBD-II code resources for more details. Good luck—please update us if you find a resolution.