Car won't start in cold weather (below 40 degrees)

I have a 2010 Subaru Forester that will start fine during the spring-fall months when it’s 40+ degrees outside. Once the weather is about 35 degrees or colder, the car will not start.

I also see a pattern where I’m more likely to get it started (after MANY attempts) in cold, but dry climates (Colorado) whereas I have almost NO hope in cold, damp climates (Wisconsin).

It is turning over, but will not start. The battery sounds healthy for the first few minutes of me trying to start my car, but will eventually start sounding sluggish after awhile.

The car did this last winter (in Colorado, so milder winters), but I could usually get it started once the sun came out and warmed my car up. Now, in Wisconsin (nights are getting VERY cold), it just absolutely will not start. I once got it to start by pushing it into a garage, closing the door and running multiple space heaters. After a few hours, it started.

If it DOES start, it will not repeat the problem again that day.

I’ve gotten my battery tested by 3 different shops, and all of them say the battery is completely fine (battery is less than 1 year old). I have tried trickle chargers and jump-start chargers; neither have worked to get it started. I did have quite a bit of green corrosion on the battery after a long road trip (2000 miles) once, but I completely cleaned the terminals. Recently, I cut the rubber around the battery cables, just below the terminals, and noticed that there is corrosion on the wires.

The alternator was tested, and fine.

ALL my spark plugs and spark plug wires were replaced within the last 1-1.5 years.

I can hear the fuel pump kick in when the key is turned, and I have no other symptoms of a bad fuel pump (I’ve tried someone banging on the gas tank with a rubber mallet while trying to start it; leaving the key in ACC for a few seconds before starting; adding fuel injector cleaner in the gas tank when I can actually get it started; added Heet to gas tank; none of it helped at all).

I am leaning towards there being a weak connection because of the corroded battery cables, but I’d love a second opinion. I’m afraid to take it to a mechanic, because I don’t want them to replace the fuel pump just to find out it wasn’t the fuel pump…

Thank you for any advice!!

The problem may be from a bad crankshaft position sensor being effected by the cold.

If possible, take something like a hair dryer or heat gun and heat the sensor up to see if the engine then starts.


If the above idea doesn’t pan out, ask your shop to diagnose whether the "cranks-ok-but-won’t-start " problem is caused by either no spark, or no fuel. My guess is , while that’s where to begin the diagnosis, neither of those will turn out to be the problem; instead the problem is that fuel/air mixture is too lean for starting at really cold temperatures. The engine needs way more fuel injected for cold starts than for warm starts. Ideas for what could cause this:

  • The computer is not detecting the ambient air temperature correctly.
  • The computer is not detecting the coolant temperature correctly.
  • There’s some kind of air leak that is allowing unmetered air into the engine. If this were the case you’d probably have noticed the warm idle isn’t quite right, maybe some stalling at stop signs, etc.

I presume your shop has already done the basic battery/alternator test. If not, and I had this problem, b/c it’s so easy, that’s the first thing I’d do:

Before the first start of the day the battery should measure about 12.6 volts. Then immediately after starting the engine, 13.5 - 15.5 volts.

The way cold start works varies from car to car. On my 30 year old Corolla, an electronic gadget that screws into the cooling system has a sensor that measures the coolant temperature. If cold enough, it enables a separate cold-start injector, which sprays extra fuel into the engine. This all happens without the assistance of the car’s computer. On your car there’s probably no separate cold start injector, and the cold-start function is entirely done by the computer; i.e. if the computer determines the ambient and cooling system temperatures are below a certain limit, then the computer injects more fuel, using the standard fuel injectors. It’s often done by double-pulsing.

It’s a relatively easy job for your shop to query the computer to determine what it thinks the ambient and cooling system temperature is. If there’s any discrepancy … nearly done.


Thanks so much; I will try this tomorrow!

This is great information, thank you!

I will add to check the engine temperature sensor. It senses the temperature of the engine and sets the proper fuel ratio for starting. A malfunction can mean that the computer thinks the engine is warm and uses a faulty setting for fuel. How do I know? They are pretty cheap but there are two so you have to get the engine temp sensor, at least on GM. Your mechanic can plug the computer in and see what the reading is when it is cold out to confirm.

1 Like

T˙e next time it is cold and damp enough that you know it won’t start, pray some starting fluid (ether) into the air intake. 2 second burst will be enough. If it still doesn’t start it is not as fuel system problem.

Is the check engine light on in this vehicle?

Any scan tool which shows live data will show the detected intake air temperature and coolant temperature. Even my $70 scan tool does this.

The only thing I would add is that having the readings and knowing what they mean is something else. A mechanic can interpret if they are out of whack or not.