This error on my E36 323i has driven me to madness, but I finally have it solved. I spent hours on the net and saw many illogical explanations for this problem. Just to share with anybody who is struggling to find the fault, here are the most common causes of this problem:
1)The sensor itself is faulty. Replacement the answer. Resistance can be checked in on and off position.
2)The wiring or plug should not be faulty as it is not a moving component. Corrosion on the pins of the plug may cause it to malfunction though. Use electrical contact cleaner.
3)There is air trapped in the radiator, which needs to be properly bled out through the bleed screw next to the radiator cap. All air needs to be bled out. I found it could be time consuming to get the last few bubbles out. I even resorted to jacking up the car a bit on both sides to help. This was the problem with my car, after a technician replaced my crank position sensor and failed to properly bleed the cooling system. I am not going to describe this process here as the internet has many posts describing this. All this happened while the coolant level in the tank reflected on the mark. But when the thermostat opened the level in the tank would drop for a moment, register the error and reflect on the screen when switching the engine off.
4)The anti-freeze mixture is too weak. Yes, the float on the sensor floats in anti-freeze, but it sinks in pure water. I tested this. And don't buy colored water, rather get good quality stuff and protect your cooling system/engine from corrosion.