So my 2004 Mazda 3 (JDM 1.5L model) stalls and hesitates during acceleration after a cold start. However, It runs perfectly after 7-10 minutes of idling. The only error code I have is for an upstream o2 sensor heater control circuit. I've had it since the day I got the car 6 years ago, but the problems started showing up just recently.

I have replaced the MAF,MAP sensors. Checked for vacuum leaks. Cleaned the injectors, cleaned the throttle body. The problem seemed to go away for a day or two then came back. The long term and short term fuel trim levels are close to 0.

Here's an event worth mentioning. A few days ago, I started the car and didn't let it warmup. It was raining outside. It stalled on me within minutes and wouldn't start back up. After trying for a couple of seconds, it started and died after 10-20 seconds. I pulled over and let it warm up. After which it ran fine. Then on my way back home I drove over a small puddle. The car stalled immediately afterwards and wouldn't start. After trying for a few seconds it finally started. I checked the air intake and other stuff for signs of possible water ingestion by the engine but thankfully there were none. The next day I saw a CEL for the Crankshaft Position Sensor.

I checked the wiring, cleared the code and it hasn't come back yet. But the car still stalls if I don't let it warmup for at least 10 minutes before driving it. Do I need to replace the Crankshaft Position Sensor? Is it a common sign to have the engine stall/hesitate due to a bad Crankshaft Position Sensor only when it's cold?

Your feedback would be very much appreciated.


  • Can we assume you didn't change the upstream O2 sensor(s)?
    – Zaid
    Jul 30, 2018 at 12:45
  • Yes, I didn't change the o2 sensors.
    – Jmahmood
    Jul 30, 2018 at 12:46

2 Answers 2


... stalls and hesitates during acceleration after a cold start
... runs perfectly after 7-10 minutes of idling
... only error code I have is for an upstream O2 sensor heater control circuit.

The O2 sensors need to be warm to operate properly - it's what the in-built resistor is there for.

For this issue, the sensor could be bad (you can use this Q&A on 4-wire lambdas to judge that) or the heater circuit is open or short-circuiting somewhere (which you can verify with a multimeter by probing the O2 connector immediately after startup).

The humdinger is that this upstream heater malady was present before but the car ran fine without a warm-up. I can see a few possibilities here:

  • the computer is deciding to run in closed-loop instead of open-loop mode during the O2 warm-up phase. Why this is occurring depends on the parameters decided by the Mazda boffins, but you should be able to confirm whether this is the case through an OBD-II interface:

    • If it is confirmed to be running in closed-loop, you need to see why this is the case.
    • If, however, the scanner does show the car to run in open-loop mode...
  • ... something has changed about the way the vehicle is running its fuel management. It's hard to say exactly what the smoking gun could be without further information.

I saw a CEL for the Crankshaft Position Sensor...
cleared the code and it hasn't come back yet...
Do I need to replace the Crankshaft Position Sensor?

I wouldn't do anything unless the code returns

  • Thanks for the advice. I'll definitely check out the open loop and closed loop status.
    – Jmahmood
    Jul 30, 2018 at 13:21

Replacing the Crank Position Sensor solved the problems. Turns out the CEL for it only comes up when the ECU doesn't receive a signal from the sensor for more than 4 seconds while the MAF reading is equal to or above 1.5g/s. Turns out the sensor was giving wrong crankshaft position values when cold and therefore resulting in incorrect timing for the engine. However, the signal was never disrupted for long enough to bring back the CEL.

Hope this helps someone in future!

  • Thanks for providing the update. Glad you got it sorted out in the end.
    – Zaid
    Aug 28, 2018 at 8:52

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .