A 6th one from the spec, for when the receipt IS on relays your client reads and still doesn't show: the client throws it away on validation. NIP-57 Appendix F says a receipt only counts if its pubkey equals the nostrPubkey the recipient's lnurlp endpoint returns, and the invoice amount in its bolt11 tag equals the amount tag in the zap request.
So if a provider rotates its signing key, or the invoice amount doesn't match what was requested, the sats arrive but the zap is silently dropped. Quick check: compare the receipt's pubkey with nostrPubkey from /.well-known/lnurlp/<name>.
https://github.com/nostr-protocol/nips/blob/master/57.md