Jon Stewart has been one of the draws of the Toronto international film festival. Speaking to packed auditoria and hailed by adoring crowds, he’s been treated more like a movie star than a satirist. With his debut film as a director, he’s choosing to cash in some of that cultural kudos.

Rosewater is the story of the journalist Maziar Bahari who, while covering the Iranian elections in 2009 was imprisoned for 118 days by the Ahmadinejad regime. He was ultimately freed, but only after a publicity campaign that inspired an intervention by the then US secretary of state Hillary Clinton. Put simply, it’s not a story with a lot of laughs.

The jokes that do make it are among the best bits of the film. After being arrested in his mother’s home Bahari –played as something of an innocent by Gael Garcia Bernal – is confronted with his DVD collection as evidence of a debauched Western lifestyle. Pasolini’s Teorema: it’s a porno, says the inquisitor. No, says Behari. The Sopranos: it’s a porno. No, says Behari. Empire magazine with Megan Fox on the cover: it’s a porno. Well, says Behari, it could be...

The inquisitor is called Rosewater. Played by Kim Bodnia, aka Martin Rohde from The Bridge, he will interrogate Bahari every day over the course of the next four months. He will attempt to force a confession to various crimes; from being a spy to simply a cog in a vast Zionist media conspiracy. There are further flashes of comic absurdity, as when Bahari is told he’s to be shot, but that he can also have a Nescafé. It’s what you might hope for from Stewart, who adapted Bahari’s book for the screen himself.

It’s the bits around the laughs that are the problem. Aside from his disgust (ahem) at matters pornographic, the character of Rosewater is something of a blank. Which is a bit problematic when the dynamic between himself and Bahari is the heart of the film. As the internment goes on the scenes between the pair feel repetitive, despite Bernal and Bodnia’s best efforts to inject some emotional resonance. Another drain on the drama is the knowledge that Behari is eventually released. It’s something of an ask to create nailbiting tension when you already know the outcome, and Stewart isn’t quite able to pull the trick off.

Kim Bodnia and Gael Garcia Bernal in Rosewater Photograph: PR

Add in a substantial amount of plain, expositional dialogue, and cinematography which (no doubt for reasons of verisimilitude) is dull and dreary on the eye and Rosewater begins to creak at the edges. It’s saved, though, by another series of interrogations; that of Behari by his dead father. Once himself a detainee at the hands of the Shah, Behari senior (Haluk Bilginer) is not one to compromise, even as a ghost. Each time he pops up he provokes Behari into being stronger, but not without infuriating him first. Behari can’t stand his dad’s pomposity and doesn’t share his ideology, but also misses him terribly. It’s a nuanced, moving relationship which shows Stewart has promise as a film-maker should he ever choose to stand down as America’s satirist in chief.