# X_CACHE_TTL_INVALID

## Means

a cache TTL that is not a positive number of milliseconds

## Typical cause

`ttlMs: 0`, a negative value, `NaN` or `Infinity`. `0` used to mean "never expires" in the memory tier and "one second" in the Redis tier, so a stack holding both answered differently depending on which tier hit

## Fix

pass a positive `ttlMs`, or omit it and inherit the tier's default — "do not cache" is expressed by not declaring a `cache` block

[Cache](/error-codes#cache)
