Borrow a code reader and read the code the next time the light comes on.
After an oil change you say?
Anecdotal story:
The check engine light came on in my car (2009 Pontiac Wave 5-door) on a 4 and 1/2 hour trip over night. The next morning the light was off, and the stealership service rep said they couldn't properly diagnose the reason for the code unless the code was active (light still on), but said it was most likely because my injectors needed cleaning. They charged $80 bucks for the diagnoses and $120 for the injector cleaner (probably $10 worth of solvent). On the way back home, you guessed it, the light comes back on. I read the stored (not active, but still there in the computer memory along with a bunch of other info) code with my code reader. Looked up the numbered code and found it meant "Lean burn". I was busy at work, and had a 3rd degree separated shoulder, so no time or desire to work on the car. Local stealership said they couldn't look at it until next Tuesday, by which time the light had gone off so I cancelled. Light comes on again, new appointment for a week later. Light goes off and I cancel (no point being charged another $80 to be told they can't diagnose without an active code).
Light on, light off, light on light off......Then I remembered the other local stealership that I had written off for getting the firing order wrong on my other car (Caprice wagon with 305 Chevy V8), was at least able to look at a car on short notice when a trouble light was on. After an hour waiting in their shop they came and told me my engine cooling radiator fan is burned out and that's what the code said. Sure enough my engine cooling fan was burnt out, lots of burnt wiring smell, fan not working. They estimated about $560 IIRC to fix it. I said no thanks; it's cold enough outside for me not to need a fan yet. Got home and checked the codes. I had checked it every other time the light had come on and it always said the same thing, but hadn't checked the code that morning. Bad news, the Stealership had erased all the codes, including the half dozen times the lean burn was on.
A month later with my shoulder feeling a bit better, I replaced the radiator fan with my daughters help, and thoroughly inspected the car. The plastic/rubber air intake hose between the air filter and the intake manifold had a couple of big holes deep in the pleats. Apparently the stealership may have just bent this hose every time they checked or changed the air filter instead of disconnecting the hose clamp. The way the system works is that air leaving the air filter box goes by a mass air flow sensor that tells the computer how much air is coming so it can tell the fuel injection how much fuel to give it. The oxygen sensors in the exhaust then tell the computer if it needs to make a correction (too much oxygen in exhaust means too much air for amount of fuel injected). This correction is called trim. If the trim is more than something like 25% then the light comes on. Well all this air was coming through the holes and not being measured by the mass air flow sensor, causing the lean burn.
Not one of the three stealership mechanics who inspected the car for "lean burn" thought to look for a hole allowing extra air to enter the engine.
At least the first two didn't "discover" an unrelated problem and erase my codes.
Just one of the many reasons this ex GM fan will never buy another GM.