I have a 2002 GP 3.8 V6, with approx 166,000 on it. Car has been great, recently I been getting a SERVICE ENGINE light and the code is P0446. The car runs great.

I had this same code around 2016 and my mechanic (the one I had, I moved since then) immediately told me, check the gas cap, if it is on tight replace the gas cap . . . I did replace the gas cap and the light never came back, except in the last month or so.
I again tried to replace the gas cap, both replacement caps in 2016 & this time are GM (AC Delco) caps purchased at a GM dealer.

I have a code reader and there is one code in it everytime this has been happening in the last month, the P0446 , if I clear the code, about 2 weeks later it is back, I do not use the car much except local driving.

My question is why can I clear the one same code all the time and it seems to come back like "clock work" about 2 weeks later, same exact code? There are never any SAVED CODES per the reader.

If there is an issue why doesn't the code come back sooner, or does the system have away of checking itself, maybe waiting for say three of the same codes before it lights the SERVICE ENGINE light
?

Also is there something I can look for, that might be simple enough to find & fix, like a leaking hose for the evaporator system, where should I look? As I said the car runs great.

Al