OBD II self diagnostic trouble codes have made it easier to understand and troubleshoot issues in 1996 and newer vehicles. However, intermittent codes that occur randomly over varying periods of time can be more difficult to conclusively pin down as the code given may or may not be directly caused by the component indicated.
In this particular case with a 1999 BMW 528i sport wagon, the check engine light and underlying P0120 code was being set at various intervals. This symptom could occur immediately upon startup, or after extended drives which made the process of resetting the code and then reproducing the code again, a someone time consuming process.
The accompanying symptoms were sluggish performance and a shutter when the accelerator was pressed. The code indicated a problem with the throttle position sensor which tells the car’s computer how much throttle input is being given.
Often, the throttle position sensor is attached to the throttle body and may be replaced separately. In this particular case, and increasingly more often in newer drive by wire vehicles, the entire throttle body must be replaced as a complete assembly.
It is possible that cleaning the throttle body to remove carbon build up around the throttle plate could resolve some symptoms that occur at idle and could be a could low cost first step, especially if the sensor cannot be replaced independently. This particular throttle body had been previously cleaned .