"coolant temp too low" but warming seems OK

I’m trying to understand why my 2011 civic (8th gen) is generating a p0128 code (coolant temp too low). It’s happened twice, spaced about 7 weeks apart.

Neither engine nor cooling system has had recent work, and coolant is at normal level and has not changed level.

Both times that the code showed up, the radiator fans were running, and the car had been running for a good while already, so the car seems to have gotten to 210F, which seems to be the trigger temp for the fans.

The code seems weird to me because the temp sensor must have been recording the 210F temp in order to trigger the fans, and that is well into normal operating temp. So why does the CEL light up at that time and warn that things haven’t heated up enough?

I just plugged in a scanner, and started the car cold, on a 80-degree day. It took maybe 12 minutes of idle for ECT temp sensor to get to 180-something temp, Then revved engine to 2000-3000 for a few minutes, getting it up to 210F. Then the fans kicked on. This sounds like normal behavior to me. Isn’t it? Or is that just too long to get to 180?

At the same time, I manually checked temp of upper coolant temp sensor with a temperature gun. Temp of the actual sensor tracked the temp shown in the scanner at all points when I checked (at cooler times, medium times, and hotter times). So it seems the upper temp sensor works fine. (There is apparently a lower temp sensor of same make on the radiator below, but my scanner does not indicate its temperature.)

I feel like my cooling system is operating fairly normally. From an internet search, I’ve read that sometimes car computers can incorrectly spit out p0128 codes, so I’m wondering if that’s the case.

Or, if this is an intermittent problem, what would cause it intermittently? For example, would a temp sensor be likely to fail intermittently? Or would the thermostat be more likely to fail intermittently? Anything else I should check or scan?

P0128 is a generic powertrain code that means the engine control module (ECM) detected that the motor hadn’t reached its required operating temperature within the required timeframe set by the manufacturer. This timeframe depends on other facts, such as ambient temperature.

I’d check and see if the thermostat is stuck partially open.

Tester

P0128 will occur if the engine coolant does not reach a determined temperature in a certain amount of time; something in the area of 8 minutes while moving/driving. Time varies depending on vehicle speed and ambient temperature.

The computer is able to detect small thermostat leaks that would otherwise go unnoticed. Typically, the rubber seal on the poppet valve fails with age.

That is too slow, imo

Personally, I would just replace the thermostat with an OEM or high-quality . . . not store brand . . . part

Might be a good time to also replace the pressure cap, while you’re at it

P0128 is often caused by a bad thermostat, but I’ve also seen it caused by a low coolant level, which you said doesn’t apply in your case

I think you’ll have this resolved in short order