From eb70fe00ff631bf7a10358c2257ee543063dd8cf Mon Sep 17 00:00:00 2001 From: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com> Date: Tue, 11 Nov 2025 15:36:34 +0100 Subject: [PATCH] feat(CleanupRedis): add error handling for JSON decode failures in cleanupStuckJobs method --- app/Console/Commands/CleanupRedis.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/Console/Commands/CleanupRedis.php b/app/Console/Commands/CleanupRedis.php index 04e7b7df5..815895064 100644 --- a/app/Console/Commands/CleanupRedis.php +++ b/app/Console/Commands/CleanupRedis.php @@ -378,6 +378,16 @@ private function cleanupStuckJobs($redis, string $prefix, bool $dryRun, bool $is // Parse job payload to get job class and started time $payloadData = json_decode($payload, true); + + // 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