Core cache: lock FOUND to USABLE#552
Merged
cceckman-at-fastly merged 3 commits intomainfrom Nov 10, 2025
Merged
Conversation
The Compute platform, at the moment, only returns FOUND if within the USABLE period (in HTTP semantics, "fresh" or "stale-while-revalidate"). Unfortunately, SDKs rely on this property, and check FOUND or USABLE variously; sometimes (e.g. in Rust), this results in a `FOUND`-but-not-`USABLE` result being returned. We can fix SDKs going forward, but not existing usage. Match Compute's behavior by locking `FOUND` to `USABLE`. If we want to return expired results, we'll need more / other bits.
kailan
added a commit
that referenced
this pull request
Nov 11, 2025
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.
The Compute platform, at the moment, only returns FOUND if within the USABLE period (in HTTP semantics, "fresh" or "stale-while-revalidate"). Unfortunately, SDKs rely on this property, and check FOUND or USABLE variously; sometimes (e.g. in Rust), this results in a
FOUND-but-not-USABLEresult being returned.We can fix SDKs going forward, but not existing usage. Match Compute's behavior by locking
FOUNDtoUSABLE. If we want to return expired results, we'll need more / other bits.Also add tests that exercise this behavior. (Really they're testing the Rust SDK's handling of this behavior, but, better than not having it.)