diff --git a/packages/nextjs-cache-handler/src/handlers/redis-strings.ts b/packages/nextjs-cache-handler/src/handlers/redis-strings.ts index 86b7e2a..3379e7c 100644 --- a/packages/nextjs-cache-handler/src/handlers/redis-strings.ts +++ b/packages/nextjs-cache-handler/src/handlers/redis-strings.ts @@ -237,6 +237,11 @@ export default function createHandler({ parseBuffersToStrings({ ...cacheHandlerValue, value: valueForStorage }); } + const serializedValue = JSON.stringify({ + ...cacheHandlerValue, + value: valueForStorage, + }); + const setTagsOperation = client .withAbortSignal(AbortSignal.timeout(timeoutMs)) .hSet( @@ -251,13 +256,6 @@ export default function createHandler({ .hSet(keyPrefix + sharedTagsTtlKey, key, lifespan.expireAt) : undefined; - await Promise.all([setTagsOperation, setSharedTtlOperation]); - - const serializedValue = JSON.stringify({ - ...cacheHandlerValue, - value: valueForStorage, - }); - switch (keyExpirationStrategy) { case "EXAT": { const hasExpireAt = typeof lifespan?.expireAt === "number"; @@ -297,7 +295,14 @@ export default function createHandler({ } } - await Promise.all([setOperation, expireOperation]); + await Promise.all( + [ + setTagsOperation, + setSharedTtlOperation, + setOperation, + expireOperation, + ].filter(Boolean), + ); }, async revalidateTag(tag) { assertClientIsReady();