The Engine Computer detected a problem, set a diagnostic fault code, and turned the light on to tell you. If your mechanic erased the codes after the recent service, and the light turned on again, there is a different problem now.
The computer looks at a lot of sensor readings and operating conditions, and compares them to each other to determine when there's a problem. One of the conditions to set a code is that certain other codes can't already be set. If those original codes relate to something the computer uses for comparison, it knows it can't rely on those readings, so it will suspend some of those tests. Once the original problem is fixed, those tests resume, and that's when the new problems are detected. This commonly happens when problems are ignored. That gives new problems more time to occur but go undetected.
The common misconception is the mechanic is incompetent, but in reality he had no way of knowing there were other problems. Some tests only run at very specific times or under a specific set of conditions, so the new codes may not set for miles or days.
The place to start is by having the codes read again to see what is causing the problem.
Tuesday, February 18th, 2014 AT 9:25 PM