Skip to content

Commit 3edc33e

Browse files
committed
fix: use shorter TTL for negative cache entries in provider compatibility
When a remote compatibility document fetch fails (returns null), use a 60-second TTL instead of the full 15-minute TTL. This allows faster recovery from transient network failures while still providing backpressure against repeated failed requests.
1 parent 9502396 commit 3edc33e

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

apps/server/src/provider/providerCompatibility.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ type ProviderCompatibilitySnapshot = Pick<ServerProvider, "enabled" | "status" |
3939

4040
const T3_CODE_VERSION = packageJson.version;
4141
const REMOTE_COMPATIBILITY_CACHE_TTL_MS = 15 * 60 * 1_000;
42+
const REMOTE_COMPATIBILITY_NEGATIVE_CACHE_TTL_MS = 60 * 1_000;
4243
const REMOTE_COMPATIBILITY_TIMEOUT_MS = 2_500;
4344

4445
export const DEFAULT_PROVIDER_COMPATIBILITY_MAP_URL =
@@ -290,8 +291,11 @@ export const resolveRemoteProviderCompatibilityDocument = Effect.fn(
290291
}
291292

292293
const document = yield* fetchRemoteCompatibilityDocument(url);
294+
const ttl = document
295+
? REMOTE_COMPATIBILITY_CACHE_TTL_MS
296+
: REMOTE_COMPATIBILITY_NEGATIVE_CACHE_TTL_MS;
293297
remoteCompatibilityCache.set(url, {
294-
expiresAt: now + REMOTE_COMPATIBILITY_CACHE_TTL_MS,
298+
expiresAt: now + ttl,
295299
document,
296300
});
297301
if (document) {

0 commit comments

Comments
 (0)