From a95e92f098ade93c43cd6104281ccb08391028a6 Mon Sep 17 00:00:00 2001 From: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com> Date: Tue, 11 Nov 2025 15:40:11 +0100 Subject: [PATCH] feat(CleanupRedis): add error handling for JSON decode failures in cleanupStuckJobs method --- app/Console/Commands/CleanupRedis.php | 9 +++++++++ 1 file changed, 9 insertions(+) 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