Ghost Trail Movie Review

“Ghost Trail” is an intimate study of trauma that plays with the gripping suspense of a globetrotting spy thriller. It’s a tale of revenge but also one of personal redemption, based on devastating true events. That would sound like a difficult balance to achieve, both narratively and tonally, but director and co-writer Jonathan Millet does it with a sure and intuitive touch in his feature filmmaking debut. 

Millet and co-writer Florence Rochat tell the story of a man who gets released from a Syrian prison and spends years trying to track down the torturer who brutalized him under the Assad regime. He’s part of a secret cell of regular people, scattered across various countries and bound by their shared sense of loss and desire for justice. One of the clever touches in “Ghost Trail” is that these strangers communicate and strategize through a multiplayer video game, one that happens to depict war violence in a Middle Eastern setting. Perhaps they’ve become so numb that such imagery is no longer disturbing. 

Adam Bessa gives a quietly powerful performance as Hamid, whom we follow from the film’s intentionally disorienting opening. This first scene is an early indication of the kind of immersive sound design Millet will employ throughout. It’s dark, but we hear the rumble of a truck engine and the squeal of brakes as Hamid and dozens of other disheveled men are dropped in the desert outside the notorious Sednaya prison in March 2014. The queasy strings in the score from French music producer Yuksek also do a lot to put us on edge from the get-go. 

Two years later, Hamid is working at a construction site in Strasbourg, France, and visiting refugee sites around the city. He carries a photo of the man he’s looking for–his cousin, he says–and asks if anyone has seen him. He reveals little details about himself to the people he meets, but even we don’t know what’s true and what’s his cover. Is he really a literature professor? Did he really have a wife and daughter? Is Hamid even his name? He goes by a few others and tosses them off coolly, depending on the situation. A young Syrian woman at one of these centers, Yara (Hala Rajab), asks the sort of questions about him that we’d have ourselves. But the intellectual spark between them also creates a sense of melancholy and suggests what might have been if they’d met under ordinary circumstances. 

Millet creates an undercurrent of tension throughout, even in places that are meant to be joyful, like a park full of frolicking children or a bustling restaurant at lunchtime. Conversely, Hamid must put on an upbeat facade during video calls with his elderly mother in Beirut, who thinks he’s in Berlin with other Syrian refugees. Nessa initially has a focused confidence that’s compelling, combined with a stealthy air of mystery. But he slowly, steadily has to crack as his character’s suppressed turmoil takes over. The shift is understated but unmistakable. He looks tired, he’s jumpy, his gait changes. Still, we’re alongside him every step of the way as he picks up pieces and puts the puzzle together. 

When we finally do see the face of the man Hamid has been following, it’s a scene of exquisite tension. The conversation is thick with subtext as these two feel each other out. Tawfeek Barhom has a breezy menace as Harfaz, but are we even sure he’s the right guy?  

The final shot of “Ghost Trail” suggests Hamid may never truly be whole again, but at least he’s on the road to healing. 

Christy Lemire

Christy Lemire is a longtime film critic who has written for RogerEbert.com since 2013. Before that, she was the film critic for The Associated Press for nearly 15 years and co-hosted the public television series “Ebert Presents At the Movies” opposite Ignatiy Vishnevetsky, with Roger Ebert serving as managing editor. Read her answers to our Movie Love Questionnaire here.

Ghost Trail

Drama
star rating star rating
106 minutes 2025

Cast

subscribe icon

The best movie reviews, in your inbox