Scheduled Tasks Stuck Locked

A Joomla scheduled task stuck in a locked state won't run again until it's manually unlocked, silently stopping backups, update checks and cleanup jobs.
What this check and mySites.guru tool looks at on your site
This check reads Joomla’s #__scheduler_tasks database table and looks for any task where the locked column holds a value rather than NULL. Joomla writes a locked timestamp the moment a scheduled task starts running, and clears it again once the task finishes.
A backup that quietly stops happening
Joomla’s Task Scheduler, introduced in Joomla 4.1, runs housekeeping in the background: update notification emails, log rotation, session cleanup, and whatever backup or update-check tasks you’ve configured on top. If a task crashes, or the PHP process gets killed mid-run (a memory limit, a timeout, a host restarting PHP-FPM at the wrong moment), the locked timestamp never gets cleared. Joomla then treats that task as still running and won’t run it again, not once, not until someone unlocks it manually.
Nothing about this fails loudly. The task simply stops running, silently, and stays stopped. In practice that means a backup that quietly stops happening, an update-check that never surfaces a new release, or sessions and logs that pile up rather than getting cleaned, and none of it shows up anywhere unless you happen to open Scheduled Tasks and notice the running icon that’s been running rather too long.
Joomla’s own default timeout for a task is 300 seconds. Anything still locked well beyond that has already failed; it isn’t quietly still in progress. Joomla 5.4.2 improved part of this problem without fixing all of it: before that release, a single stuck task blocked every other scheduled task on the site from running at all, so one crashed backup job could quietly take down update checks, log rotation and everything else scheduled behind it. 5.4.2 fixed that cascade by respecting the configured timeout properly, so a stuck task no longer blocks the rest of the queue. It still needs manually unlocking to run again itself, on any Joomla version, the fix only stops it from taking every other task down with it.
The scheduler has no built-in alerting of its own. Joomla doesn’t email you when a task locks up, and there’s no badge in the administrator dashboard that surfaces it unprompted, you find out by specifically checking System, then Scheduled Tasks, which most site owners have no routine reason to do. That’s the gap this check exists to close: it’s easy to run for months with a stuck task and have no idea, right up until you need whatever it was doing and discover it hasn’t happened in weeks.
Walk through what actually happens with a backup task, because it’s the case that costs the most when it goes wrong. A site runs a nightly backup task through the scheduler. One night the host restarts PHP-FPM mid-run, or the backup extension hits a memory limit halfway through archiving a large uploads folder. The process dies. The locked timestamp Joomla wrote when the task started never gets cleared, because clearing it is the job’s own job to do on the way out, and the job never got that far. From that point on, every subsequent night, Joomla looks at the task, sees it’s still marked as locked, and skips it rather than starting a new run on top of what it believes is an existing one. No error is logged anywhere a site owner would normally look. No email goes out. The backup simply stops, permanently, until someone happens to notice and manually unlocks the task. The failure that actually matters here isn’t the crashed run, crashes happen. It’s that nothing else ran after it, for as long as nobody looked.
The lock clears and the task runs again
No scheduled task sits locked for longer than its normal run time. Tasks complete and the lock clears every time, so backups, update checks and cleanup jobs keep running on schedule. There’s no configuration trade-off to weigh here, unlike some of the other checks in this group: unlocking a task and letting the scheduler resume doesn’t cost you anything or change how the site behaves for visitors, it just lets housekeeping that should already be happening actually happen again.
How to fix it
- Login to the Joomla administration, e.g.
https://yoursite.com/administrator. - Go to System, then Scheduled Tasks.
- Look for a task still showing the “running” icon.
- Open the task and check its last exit code for what actually went wrong.
- Save the task again. This clears the lock and lets it run on its normal schedule again.
UPDATE #__scheduler_tasks SET locked = NULL WHERE id = <task_id>;
If the same task keeps locking rather than this being a one-off, that’s worth investigating on its own rather than just clearing the lock every time. Read Detect Locked Joomla Scheduled Tasks Before They Cause Problems for what usually causes it.
What mySites.guru does about it
mySites.guru checks every connected site’s scheduler table twice a day and flags any task stuck locked. From the site’s snapshot you can investigate the specific task and unlock it remotely, without needing to log into the Joomla admin yourself.
Scheduled Tasks Stuck Locked
mySites.guru checks every connected site for this automatically and flags it the moment it appears. These run twice a day on every connected site.