The most frustrating films are rarely the incompetent ones.
They are the films made by people clearly capable of better.
Because a bad film can be dismissed. You shrug, move on, and file it away as something that simply did not work. But a film made by someone whose brilliance you have already witnessed, someone who has previously trusted darkness, ambiguity, and tragedy in ways very few mainstream filmmakers do, carries a different kind of disappointment when it falters.
It does not merely fail.
It leaves you wondering why it chose to.
That is what O’Romeo felt like to me.
Not like a bad film. Not even like a failed one, entirely. More like a film made by someone standing at war with his own instincts, repeatedly pulling back just as his better sensibilities begin to surface.
Whatever liberties it may take with the history or source material behind it, the film in front of us still has to stand on its own terms.
And the most interesting part is that Vishal Bhardwaj, who made Omkara and Haider, is still visible here. You can hear him in the music, you can feel him in the quieter, stranger moments. In the pauses, in the wounded silences, and in the stretches where the film briefly stops trying to impress you and simply allows itself to exist.
The problem is that O’Romeo keeps interrupting that version of itself.
It keeps choosing scale over depth, heroism over ambiguity, spectacle over tragedy. It keeps behaving like a film afraid of not being entertaining enough, even when everything interesting about it lies in the moments where it stops trying so hard to entertain.
That tension defines the entire experience.
Because on paper, this should have worked.
Shahid Kapoor, reunited with the filmmaker who has drawn some of the most compelling performances of his career from him, plays Ustara with enough early unpredictability to suggest another layered Bhardwaj protagonist may be on the horizon. There is a strange stillness to him at first. Something off-centre, almost like a sharpness under the skin. He enters the film carrying the kind of uneasy charisma that makes you pay attention.
And then the writing begins sanding him down.
The issue with Ustara is not performance. Shahid Kapoor does what he can. The issue is that the film cannot decide whether he is meant to be a psychologically volatile man shaped by violence and institutional rot, or a star vehicle protagonist who periodically requires applause-worthy hero moments.
And once the latter instinct begins taking over, the character loses gravitas.
He starts as someone you watch carefully, and then he gradually becomes someone the film wants you to cheer for too easily.
That shift hurts him more than anything else.
Because Vishal Bhardwaj’s best protagonists are rarely heroic in conventional ways. They are fractured, petty, brilliant, weak, and dangerous in ways that make you uncomfortable to align with them. Ustara could have belonged to that lineage.
Instead, O’Romeo often treats him like it is afraid of making him too difficult to love.
And in softening him, it makes him less interesting.
That same problem extends to Avinash Tiwary’s character, perhaps even more severely.
The film spends an extraordinary amount of time building him up before he ever appears. He is spoken of in mythic terms. The kind of off-screen mythology that should create dread. Add to that Avinash Tiwary’s striking physical transformation, which renders him nearly unrecognisable, and the expectation becomes obvious: this is meant to be a seismic arrival.
But the film mistakes anticipation for payoff.
He arrives, yes. He occupies the frame well enough. But the narrative never actually builds the character beneath the image. We are told he matters, told he is feared, told he and Ustara share a bond so deep that one can feel the other in danger.
But told is all we ever are.
At one point, when the film gestures toward a brotherhood between them, it should land like history.
Instead, it lands like exposition.
Because shared history only works when the film does the labour of making us believe it.
O’Romeo often seems to think that saying something is enough to make it true.
The film wants weight without construction. It wants emotional shorthand where emotional architecture is required. It wants us to feel the force of relationships, histories, betrayals, and rivalries that have not actually been built with sufficient care.
And nowhere is that more frustrating than in how it handles Tripti Dimri’s character.
Because unlike many female leads in male-led action dramas, she begins with promise. There is enough substance in her early writing to suggest she may become central in a way that matters. Her recovery phase in Ustara’s den, in particular, contains some of the film’s most restrained and effective emotional beats. There, briefly, O’Romeo quietens down enough to remember that intimacy can be more compelling than spectacle.
You begin to think the film may trust that instinct.
It does not.
From roughly the Ganesh visarjan sequence onward, her character begins losing shape. Agency recedes. The complexity implied earlier starts thinning out. By the time the climax arrives, she has largely been repositioned into a more passive narrative function, waiting for the men around her to complete the story.
And when she finally acts, it feels less like a culmination and more like an obligation.
What should have been an earned confrontation becomes a hurried insertion into a climax that has already emotionally resolved itself elsewhere.
It is one of many moments where the film chooses expedience over emotional truth.
Even the supporting cast reflects this excess. Actors like Nana Patekar, Farida Jalal, Tamannaah Bhatia, and Disha Patani are present enough to suggest significance, but are rarely used with enough narrative purpose to justify their presence. They add texture to the frame, not weight to the story.
Which leaves O’Romeo in an odd position.
It is not empty.
There is too much talent, too much craft, too much residual instinct for it to be empty.
But it is compromised.
Because you can see the film it might have been if it had trusted itself more.
A darker one, a slower one. One less interested in applause and more interested in consequence. One willing to let its characters remain morally difficult. One willing to end in tragedy rather than resolution. One less concerned with mass spectacle and more willing to embrace the Shakespearean weight its title seems to promise.
Instead, what we get feels like a filmmaker trying to split the difference.
Trying to make a Vishal Bhardwaj film and a broad-appeal commercial entertainer at the same time.
And in doing so, fully becoming neither.
That may ultimately be what disappoints most.
Not that O’Romeo is bad.
It isn’t.
It is watchable. Occasionally compelling. At times, even briefly excellent.
But the flashes of excellence only make the surrounding compromises more visible.
Because every time the music swells in that unmistakably Bhardwaj way, every time a quieter scene lingers long enough to breathe, every time the film briefly stops trying to be larger than life and allows itself to become stranger, sadder, more intimate, you are reminded of the filmmaker this could have belonged to.
And then the film pulls away from him again.
O’Romeo does not feel like a director losing his voice.
It feels like a director hearing it clearly and choosing, repeatedly, not to trust it.
And that, more than failure, is what lingers.
Not the sense that this film did not work.
But the sense that somewhere beneath it was a much better one.
And that Vishal Bhardwaj knew it too.