The quick/easy fix is to rename the schedule. i.e.:
->name("MyNewJob")->withoutOverlapping();
I believe the real fix is to go to storage/frameworks and find a file that looks like this:
schedule-af133da702018a3ca3dd79d08a748
That is the "mutex path" which is checked against when running an event. Failed schedules don't clean up that file, which is why they won't re-initiate.
https://github.com/illuminate/console/blob/master/Scheduling/Event.php
/**
* Get the mutex path for the scheduled command.
*
* @return string
*/
protected function mutexPath()
{
return storage_path('framework/schedule-'.md5($this->expression.$this->command));
}
/**
* Do not allow the event to overlap each other.
*
* @return $this
*/
public function withoutOverlapping()
{
$this->withoutOverlapping = true;
return $this->skip(function () {
return file_exists($this->mutexPath());
});
}