1. The last sentence is the same as the first sentence.
Yes, people are still doing this and thinking they’re clever. Here’s a rough example. The sentences aren’t exactly the same, but the concept is there. Maybe it was clever the first time, but not anymore. If you want a story with an ending with similar conditions to the beginning, find a way to be subtle about it.
2. The hero spends the entire epilogue reminiscing.
This is pretty much equivalent to putting all the back story in the first chapter as a memory. Instead of back story, which is actually new material, the reminiscent epilogue rehashes what the readers have just read. Yeah, the protagonist has a new perspective on it all, but I don’t think that’s a good enough justification for so much repetition.
3. Every single subplot is resolved in a ridiculously happy way.
4. It looks like you were sick of the story and did all you could to just get it done. Alternatively, it looks like you didn’t know how it would end and you just slapped a conclusion on your story to make it look good.
Everybody can tell.
5. There’s nothing left to think about.
This one is more my opinion than the others are. I would rather see an ending that gives hope than one where hopes are fulfilled. If the reader can imagine an entire second story after your story is done, you’ve made a good ending. This doesn’t mean you should leave things unresolved. Instead it means the end opens up new possibilities.