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.
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