Some movie endings really are the worst. Storytelling truly is an art form, and it takes an artist to tell any story well. And, at the risk of sounding condescending, a good story really does need a beginning, a middle, and an end, but it’s the latter that we’re here to talk about. A good movie ending does more than just round a story off; it brings it to a satisfying and unforgettable conclusion, be that definitive, open-ended, or ambiguous.

Of course, while the overall thrust of a movie’s plot should generally dictate how the story ends, this isn’t always the case. Some movies offer up brilliant plot twists to subvert our expectations, making use of small easy-to-miss details to influence how their conclusion plays out. Unfortunately, though, not all movies are able to impress or entertain us in quite the same way with their endings, and it’s those that we’re looking at for this particular list.

Some films fail to deliver an ending that matches up to the movie’s own genius premise, while others simply offer a lazy or ill-considered conclusion to their narrative. Some endings attempt to subvert expectations but fall at the final hurdle, leaving out key information or straying too far into fantasy to ever be considered satisfactory. Though all these and more can be true, the following movies are all guilty of having a particularly bad ending, one way or another.

7. Source Code (2011)

Michelle Monaghan and Jake Gyllenhaal in Source Code (2011)

Source Code is a great example of a film with an interesting premise that simply doesn’t quite utilize it properly. Duncan Jones’s (Moon, Mute) 2011 sci-fi thriller follows U.S. Army Captain Colter Stevens (Jake Gyllenhaal) after he wakes up in an eight-minute recreation of a train bombing in the body of a man named Sean Fentress. Tasked with locating the bomb and discovering the identity of the bomber, Colter must relive the same eight minutes over and over in order to prevent the attack.

Borrowing an idea from Groundhog Day and injecting it into a high-stakes sci-fi thriller makes for a film with incredible promise, and Source Code is appropriately tense throughout. As Colter investigates the bombing, he also learns the nature of the Source Code technology itself: it’s a device that allows him to live out the residual memories of the recently deceased. He also discovers that he’s one of the only suitable candidates for the Source Code program, as his own body is on life support and rapidly declining.

As with many time travel movies, Source Code‘s logic is a little wonky at the best of times, but it’s not until the end that it becomes a real issue. After preventing the attack, Colter creates a timeline in which the train’s passengers survive, including Sean Fentress, the man whose body he’s inhabiting. However, Colter’s consciousness stays in Sean’s body, and he is able to survive by assuming another man’s identity. It’s a baffling ending that creates far more questions than it answers, particularly as it seems to create an awful paradox involving the Source Code itself. It’s weird, it’s confusing, and it’s ultimately a little disappointing in its ridiculous logic-bending optimism.