[2.0] Fix Failed Jobs page showing no results when failed jobs do exist #511
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes: #476, #458, #109
I've seen the Failed Jobs section behave like this since the Horizon beta was released.
The Vue component expects its
jobs
prop to be anArray
but the API endpoint can return anobject
in its JSON body. A filtered PHP associative array needs to be kept as 0-indexed.horizon/resources/js/pages/Failed/Index.vue
Lines 71 to 73 in 032959e
#476 (comment) has a longer explanation of what I found. I wasn't able to figure out how to recreate the edge case in a PHPUnit test. Do we have an explanation of where this empty payload is coming from when fetching a set of jobs?
horizon/src/Repositories/RedisJobRepository.php
Lines 193 to 197 in 6db1be6
Does Redis
ZRANGE
(called inRedisJobRepository@getJobsByType()
) sometimes return keys that don't exist? This test attempt didn't seem to indicate that.