My CPU fan works normally while I'm in the BIOS, but it stops as soon as Windows loads. I set the fan curve to run at about 70% constantly, so it shouldn't be stopping because of low temperatures. Even under heavy CPU load, temperatures reached around 92°C without the fan starting.
There's also a strange connector issue: if I only partially touch the CPU_FAN plug to the motherboard header, the fan spins normally, but pushing the connector all the way in makes it stop or run much slower. The system was recently upgraded to AM5; the fan worked correctly before the upgrade.
The motherboard is an ASUS TUF X870-Plus WiFi and the cooler is a Noctua NH-D15. I tried removing software that might control fan behavior and updating the BIOS, but the problem remained, and the BIOS update seemed to affect another fan too. What could be overriding the BIOS settings, and how can I determine whether the connector or fan is also faulty?
3 Answers
The partial-connection behavior could indicate a damaged, dirty, corroded, or loose fan plug, header, or cable. A partially inserted connector might make contact with power while missing the control or sensor pin. Try another known-good fan and cable, and inspect the header and plug carefully. You can also gently clean the contacts, but avoid forcing or repeatedly wearing out the motherboard header.
The actual cause turned out to be hidden AMD fan-control software overriding the BIOS fan profile after Windows started. Removing or disabling that utility restored normal fan behavior. Check installed AMD, motherboard, and hardware-monitoring utilities, including anything that may not be obvious from the main application list, and make sure only one program is controlling the fan curve.
Fans can behave differently in BIOS because Windows loads temperature-control software and motherboard utilities afterward. Before assuming the hardware is bad, run a CPU stress test while watching temperatures and fan RPM in the BIOS hardware monitor or another trusted monitor. If the CPU reaches the 90s and the fan still reports zero RPM, shut the system down rather than continuing to test it.

That fixed it. A hidden AMD fan-control component was overriding the BIOS settings once Windows loaded.