I now have more data to look at and the behaviour seems to be as follows: the receipts are issued with a not-before date of about 24 hours later and a not-after date of about 3 months later. Attempts to refresh start to fail with 404 after about 3 weeks. I now retry those failed refreshes with exponential backoff (if you don't do that, 404s quickly come to dominate). I see a very small number of receipts that refresh successfully after a period of failing. I have not yet reached the not-after date for any of these receipts; what should I do when that date arrives? Must the app generate a new key? I do have a mechanism for the server to tell the app to discard and regenerate its key, but the user does see an error message. Fundamentally, I wonder if I need to be using App Attest more frequently to keep Apple's data "fresh"; currently my attested requests are relatively infrequent.