You have a continuous variable valve timing. It is built into the timing gear on the intake camshaft. You also have a timing belt that should have been changed at least once by now.
Because of the variable valve timing, your mechanic may have put the belt on a tooth off. You may also be using the wrong weight of oil. If you have your oil changes done at the quickie oil change places, they often use bulk oil that may not meet the specs for your engine. For example if they are using bulk 5w30 and your engine calls for 5w20 or 0w20, the valve timing mechanism may not work correctly.
If you have not done the belt changes on schedule, the belt may have stretched enough to throw off the timing. Check your owners manual and your maintenance records.
Lastly, there may be a solenoid that controls the mechanism and either during the belt change, it was disconnected and not plugged back in or it just became disconnected for some reason and just needs to be plugged back in. Could also be the wiring to the sensor was left disconnected.
I am an optimist and will suspect that its a wire that will be easily fixed. If you haven’t had the belt service done, then I am an optimist in that having it done will not only solve the issue, it may save your engine because the belt is about ot break and this is your warning.
If it is the mechanism, the cost to repair should be somewhere in the neighborhood of the cost of the timing belt service.