CHevy Cobalt 2009 Will not start in cold

My Chevy Cobalt will not start when it is cold (when water freezes)…but only sometimes. When you go to start the engine, it will initially turn over but does not ignite. Then, the second time if you turn the key normally no sound will emit. However, if you put the key in and only turn to get the lights on the dash to come on and THEN turn the key, it will turn over, but no dice. This past time a code “engine pwr reduced” came up, but that doesn’t always happen. When you wait four hours or more, it will start like normal accompanied by the check engine light. The check engine light goes off the second time you start it after the non-start.

I have taken it to a mechanic and they have not been able to reproduce the problem, even when it was cold enough to theoretically have happened. He said it might be an issue with the body module which explains why the ignition switch code comes up when you run it through a computer, but since this is such an expensive fix he said he can’t recommend I get it done until we know for sure. So there is a pattern, this happens about every 2 months and then the issue clears up for a while.

What is going on??? Will there ever be a way to tell what is wrong (and fix it) without a mechanic reproducing the issue?
Thanks for your input.

I don’t quite understand “Then, the second time if you turn the key normally no sound will emit”.
You mean that you have to turn the key all the way off and then to the normal running position before it will start again? Or do you have to leave the car alone for a while before it will turn over again?

Do you have some sort of alarm or theft deterrent device on that car?

Is your car over the three year, 36,000 mile warranty limit for 09?

If you are not using a dealer mechanic, that might be worth a try. Not all mechanics are created equal. The dealer mechanic can ask the mfr. for help.