Mocks and adaptations such as localstack and serverless can be equally leaky or incomplete. You don't really know until you hit the real stage if what you've got is ready.
Decided it wasn't worth the savings compared to running against the real AWS services.
by default they have it so S3 requests with wrong headers are still sent
I didn't know this and one day I changed the send header but not receive header
Turned out the cache-control was wrong when uploading an image to a presigned url, but this was never caught until it hit staging env since local tests and CI/CD tests showed a pass