Okay, I’ve made a tweak to a bit of code in the hopes that this might solve it. Unfortunately without a view on any errors, this might be tricky to narrow down. Thanks for your patience while we work through it though!
If you’d like to test it, you can download the build here:
For a bit of background, one possible reason the scans aren’t running is if WordPress automatic updates is running on the same cron and executing before the scans get called (regardless of whether any updates occur). This clash would result in false results from the scans as there’d be a mismatch between versions and files. So, I’ve tweaked it such that it’ll only prevent the scans running if no actual updates were run during the auto-updates process.
So what you could do to really make sure there’s no interference from auto-updates, as well as install the test build above, is temporarily disabled WordPress automatic updates. You can do that within Shield itself.
If the scans run successfully overnight on that test build with auto-updates disabled, then for the next run, re-enable auto-updates inside Shield and it should still work.
Hopefully this may solve the issue.