Cause #1: The trigger got disabled (most common)
I've seen this dozens of times. You're setting up a scheduled task, or one that's been running for months suddenly throws 0x41307. Nine times out of ten, the trigger is sitting there with the Enabled checkbox unchecked. Don't ask me how it happens—could be a slip of the mouse, a group policy push, or some overzealous cleanup tool. But it's the first thing I check.
Here's the fix:
- Open Task Scheduler (
taskschd.msc). - Find the task under Active Tasks or in the Task Scheduler Library.
- Right-click it and select Properties.
- Go to the Triggers tab.
- You'll see a list of triggers. Look at the Enabled column. If none of them have a checkmark, that's your problem.
- Click on each trigger and hit Edit. At the bottom of the edit dialog, check the Enabled box.
- Click OK, then OK again.
If there are no triggers at all—the list is empty—you'll need to create one. Click New on the Triggers tab, pick a schedule (daily, weekly, whatever), and set it up. Make sure you don't uncheck the Enabled box by accident.
Now try to run the task manually (right-click → Run). If it fires without the error, you're done.
Cause #2: The trigger's date/time is in the past
Another common gotcha. You set a trigger to run once, on a specific date—say, last Tuesday. That date passes. The trigger becomes stale. Task Scheduler sees it as invalid because it's never going to fire again. So you get 0x41307 when you try to run the task manually or when the service tries to validate it.
This often happens after a system clock change, like when the BIOS battery died and Windows reset the date to 2020. Or you moved the machine to a different timezone and the trigger didn't adjust properly.
The fix is simple:
- Go back to the Triggers tab.
- Edit the trigger.
- Change the Start date to today or a future date.
- If it's a one-time trigger, set it for the next hour or so.
- Check the Enabled box, then OK.
If you're not sure the trigger is stale, look at the Next Run Time column in the main Task Scheduler view. If it shows Never or a date in the past, that trigger is dead weight.
Cause #3: The task itself is corrupted or was imported weirdly
Sometimes the trigger looks fine—enabled, future date—but you still get the error. That's usually because the task's XML got mangled. This happens when you export a task from one machine and import it on another, or when a third-party backup tool restores a task from a snapshot.
Instead of pulling your hair out trying to repair the corrupted trigger, just recreate the task from scratch. It's faster and cleaner.
- Write down the task's settings: what program it runs, the arguments, any conditions (like only run on AC power), and the schedule you need.
- Delete the broken task (right-click → Delete).
- Click Create Task (not Create Basic Task—that wizard is too limited).
- On the General tab, give it a name and pick Run only when user is logged on or Run whether user is logged on or not, depending on your need.
- On the Triggers tab, click New and set your schedule.
- On the Actions tab, set the program and arguments.
- Adjust Conditions and Settings as needed.
- OK, and test it.
This almost always clears up weird errors. I've fixed more tasks this way than I care to count.
Quick reference table
| Cause | Symptom | Fix |
|---|---|---|
| Trigger disabled | Triggers tab shows checkboxes unchecked | Re-enable trigger(s) via Edit |
| Trigger start date in past | Next Run Time shows Never or past date | Update start date to today/future |
| Corrupted task XML | Triggers look fine but error persists | Delete and recreate the task |
That's the whole ballgame. Run through those in order, and you'll have that task firing again in ten minutes flat.