I have 05 Subaru Forester 2.5XS AT Non-turbo with 185K miles on the odometer.
The car has issues with the drive by wire system. I was driving down the road, and suddenly the car will not accelerate and goes into a limp mode(CEL stays on and cruise flashing). During this time the car will go only about 10-15mph, and engine RPM surges between very low and about 1800 RPM. The whole car shakes and I have to use brakes to stop it. After sitting about an hour, the accelerator will work again, and CEL will stay on. After erasing a code, CEL will not come again until the next time. It has happened 5 times to me in the last two years. P2135 and P0638 are the codes that I got. Each of them was set twice on a different occasion, but never together. The last time was a little different. I was driving down the road and noticed that the engine stays at high RPM when I don’t accelerate. The car was shaking and wanted to advance when I applied brakes, so I had to put it in Neutral on traffic lights. When I came home and put it in Park, it was idling at 1800 RPM. This time no limp mode or CEL on. After restarting the engine, it idles normally. There are no other problems with the car.
Repairs done:
Replaced 4 throttle bodies each time this happened (three used, and one remanufactured). It helps for 1000-1500 miles, then the problem pops up again.
Replaced accelerator pedal assembly(new OEM).
Replaced throttle control relay(new OEM).
Cleaned all electrical connectors to throttle body and gas pedal with electric spray cleaner.
Cleaned battery terminals and ground connections.
