diff --git a/src/Illuminate/Queue/Worker.php b/src/Illuminate/Queue/Worker.php
index <HASH>..<HASH> 100644
--- a/src/Illuminate/Queue/Worker.php
+++ b/src/Illuminate/Queue/Worker.php
@@ -234,6 +234,8 @@ class Worker
             $this->raiseExceptionOccurredJobEvent(
                 $connectionName, $job, $e
             );
+        } catch(Exception $exception) {
+            $this->raiseFailedJobEvent($connectionName, $job, $exception);
         } finally {
             if (! $job->isDeleted()) {
                 $job->release($options->delay);
Catch errors when handling a failed job

Handles errors when calling the failed method on a job. Could be
ReflectionException or an exception with unserializing the payload.