Been having an issue where my newly configured retention policy on one of my content types was not triggering even though the ‘Expiration policy’ job was set to run daily. Even manually running the job did not trigger the retention policy actions on the expired items.
There is another job definition called ‘Information Management Policy’ that needs to run BEFORE Expiration Policy. According to technet timer job reference:
Information Management Policy
Loops through all the lists in the site collections in a Web application and collects policy and usage data.
So this job basically goes through your web application and checks whether the retention policy should be applied for a given item I was able to resolve this issue by first running this policy followed by the ‘Expiration Policy’.
If you intend to have your expiration policy run daily, make sure that you set the Information Management Policy to run daily also, BEFORE the expiration policy runs.