2003 Forester X
If this is what's happening, then the trouble has not been cleared.Disconnecting the battery or clearing a code with a scan tool resets the ECM. The ECM over time (run cycles) will relearn what was cleared & if the previous issues are redetected, from its attached sensors, you're back to where you started.
I have read where the ECM was at fault, but not specifically to this CEL trouble code.It's possible the ECM is faulty, but the Subaru technical service manual doesn't provide any internal circuitry trouble shooting.
This thread does help a lot, having diagrams and such to reference to as someone is trying to diagnose that code. I recently started having cat and o2 sensor codes pop up. Started with a bad cat which I replaced. After that, both sensor started failing. I am currently on my 3rd upstream o2 sensor and have gone through p0031 and p0032 codes. Now I am stuck with p0030 code which, just like yours, I can clear and my car runs 10x better, but comes back on after about 30 miles or so. I will be looking into a new ECM, but first, a friend suggested I try using an o2 spacer to trick the system into thinking its running just fine. Any thoughts?Well guys... Hopefully if anyone has had as much trouble as me with the P0030 code they might find this thread normal. I plugged in my new to me ECM this past monday and so far it has transformed my subie. I now am getting 6 out of 7 monitors ready for duty when I only had 4 before. My cruise control finally works, now that I have no freeze or pending codes. Car is running smooth and doesn't show any signs of ruffness returning. I think its also important to note for some peoples benefit that I am getting these results running a nearly open custom, by me, exhaust and a universal Denso splice in O2 sensor that was purchased off ebay. So although a lot of people would point at those things they were ultimately irrelevant to my situation. Any way I hope this helps some future trouble shooters that who aren't getting anywhere solving the p0030.
Thread it where the O2 goes in, in front of the cat and then thread the O2 in the spacer. I have never done this but I have read posts about this method and my coworker did this to his car and it worked.