Skip to content

[BUGFIX] Resolve cached URLs through the cache frontend - #56

Open
davidsteeb wants to merge 1 commit into
masterfrom
bugfix/resolve-cached-url-via-frontend
Open

davidsteeb wants to merge 1 commit into
masterfrom
bugfix/resolve-cached-url-via-frontend

Conversation

@davidsteeb

Copy link
Copy Markdown
Contributor

Since 5.0.1, ReverseProxyCacheBackend::resolveCachedUrl() reads entries via the backend's own get(). That returns the HMAC-signed serialization written by the VariableFrontend (s:35:"https://…";<hmac>) instead of the URL.

Providers cannot parse a host from that string. CloudflareClient filters it out and sends no request at all, so flushByTag()/flushByTags() purge nothing when content is saved, and nothing is logged. flush() is unaffected because purgeEverything() does not need the URLs.

The regression came with 20164d6, which replaced $this->cache->get() with $this->get().

Change

  • Keep a reference to the frontend in setCache() and resolve URLs through it.
  • Plain URLs from rows written before 5.0.0 still resolve through the existing fallback.

Verification (TYPO3 v14.3)

  • Before: resolveCachedUrl() returns the signed blob, parse_url() yields no host, and the URL is missing from getAllCachedUrls().
  • After: it returns the plain URL, and flushByTags() hands both tagged URLs to the provider.

Since 5.0.1 resolveCachedUrl() reads entries via the backend's own
get(), which returns the HMAC-signed serialization written by the
VariableFrontend instead of the URL. Providers cannot parse a host
from it, so flushByTag()/flushByTags() purged nothing when content
was saved; only flush() worked, as it does not need the URLs.

Keep a reference to the frontend in setCache() and resolve URLs
through it. Plain URLs from rows written before 5.0.0 still work
through the existing fallback.
@davidsteeb davidsteeb self-assigned this Sep 25, 2026
@davidsteeb
davidsteeb requested a review from bmack September 25, 2026 16:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants