Repository navigation
[6.x] Handle empty Marketplace client responses - #15654
Merged
Merged
Conversation
When the Marketplace client can't acquire its lock in time, it returns null. packages() and themes() then accessed an array offset on null, causing an ErrorException. Treat it like a failed request instead. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A null response means the client couldn't get its lock while another request was fetching. Caching the fallback for 5 minutes could also discard the real data that request is about to cache, so retry on the next request instead. Request failures are still cached for 5 minutes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
When the Marketplace client can't acquire its lock within 5 seconds (another request is already fetching), it returns the cached value, or
nullif there isn't one.Marketplace::packages()andthemes()then accessed$response['data']onnull, which throws anErrorExceptionand fails the request.This treats a
nullresponse like a failed request: an empty collection, cached for 5 minutes, the same wayreleases()already handles it.Complements #15591, which covers the requests that time out or can't connect.