diff --git a/app/Console/Commands/CleanupRedis.php b/app/Console/Commands/CleanupRedis.php index 815895064..64a3ac259 100644 --- a/app/Console/Commands/CleanupRedis.php +++ b/app/Console/Commands/CleanupRedis.php @@ -388,6 +388,15 @@ private function cleanupStuckJobs($redis, string $prefix, bool $dryRun, bool $is continue; } + // Check for JSON decode errors + if ($payloadData === null || json_last_error() !== JSON_ERROR_NONE) { + $errorMsg = json_last_error_msg(); + $truncatedPayload = is_string($payload) ? substr($payload, 0, 200) : 'non-string payload'; + $this->error("Failed to decode job payload for {$keyWithoutPrefix}: {$errorMsg}. Payload: {$truncatedPayload}"); + + continue; + } + $jobClass = data_get($payloadData, 'displayName', 'Unknown'); // Prefer reserved_at (when job started processing), fallback to created_at