{"version":"2.1.242","anchor":"expired-cache-rows-are-swept-server-side","canonical_anchor":"expired-cache-rows-are-swept-server-side","heading":"Expired cache rows are swept server-side","tier":"internal","area":"Sessions","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.242\/e\/expired-cache-rows-are-swept-server-side","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.242","markdown":"### Expired cache rows are swept server-side\n\nExpired cache entries are swept away server-side, and cache key names must be 1 to 64 characters.\n\n**What**\n\nA helper was added that deletes key-value cache rows whose expiry has passed, warning rather than failing if the delete errors, and key names are now validated at 1 to 64 characters.\n\n**Details**\n\n- The sweep runs as a single delete over rows with an expiry in the past; rows with no expiry are untouched.\n- No condition guards the call site, so the sweep runs whenever that path is reached.\n\n**Evidence**\n\n`DELETE FROM kv WHERE expires_at IS NOT NULL AND expires_at <= now()`\n\n- Area: Sessions\n- Tier: Under the hood\n- Useful: 1\/5\n- Signal: 2\/5"}