The signer picks the EIP-3009 validBefore and verification does not cap
it at maxTimeoutSeconds, so a fixed 900 s TTL could drop the claim for
a still-valid authorization whose settlement failed, and a copy would
run the handler again. Expire claims at validBefore + 60 s (900 s
floor, one-year ceiling) with SET NX EXAT, using node-redis's current
option form. Also wrap messageBytes for createHash so the snippet
typechecks.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>