The message processing might fail because there is something wrong with the message, yes. It might also fail however because a downstream system is not available and the Lambda fails because of this. Then it's a useful retry mechanism.
In the end it's an architecture decision and there are no right solutions, only trade-offs. But you're asking the right questions!
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.