A week ago, on my Lexus ES 300 (2001), "Check Engine" and "Trac Off" lights came on. This coincided with me filling the gas tank to the brim to round the dollar to be paid. Some websites suggested that the "Trac Off" is related to the gas tank cap not being tight. I cleaned the gas tank cap and the tank opening. However, both lights persisted. On the same day, when I turned on the car again, there was a hesitance, a stuttering to come on, like the battery was going down. Both "Check Engine" and "Trac Off" lights were still on.
If you take the car to a shop at this point, their computer check can cost you hundreds of dollars. I have seen many advices posted on the internet with conflicting diagnosis, but none conclusive. So, I decided to research further.
The next day, the car wouldn't come on at all. It sounded as the battery was dead. I couldn't even jump start the car. Usually, if the battery is completely drained, jump starting will not work. So, I got a new battery from Costco ($56.99) and put it in. (There is a $9 fee if you do not turn in the old battery).
It took 15-20 seconds of cranking to get the car started. Once it was started, the engine sounded fine and the RPM was normal. The "Check Engine" light was off. However, the "Trac Off" was still on. I cleaned the gas tank cap one more time.
The next morning, when I turned the car on, there was no problem at all. It came on instantly as it used to be, didn't have any warning lights, and drove smoothly.
The gas tank cap getting dirty and the battery being down are unrelated things, which just happened on the same day. I do not know which one caused which warning light to come on though.