Hannah Laing has an unpleasant day ahead of her. She has a meeting with her boss, Tina, that she suspects (correctly) will result in a transfer away from regular police work to more of a desk job as she is getting older. She’s also due at the birthday party of her ex-husband, Nick, who has a new wife and family.
Luckily, she has a supportive lover in Sean, a fellow police officer. While waiting for a contact in a shopping area, Sean tells Hannah over the phone that he’s thinking about leaving both the force and his wife—maybe she should be happy about her transfer. He wants to be able to buy her things like a beautiful black dress—and then the call drops.
After her meeting, Hannah goes to look for Sean—she can’t reach him and is starting to worry. She questions shop clerks until she notices a “beautiful black dress” in a store window. The clerk inside noticed Sean, because he stared at the dress for a while. But then a van blocked her view, and by the time it moved, Sean and his car were gone.
Out on the street, Hannah notices an old cellphone and picks it up. She had seen Sean use it that morning to text his source, someone named “Issy.” She picks it up and guesses that the passcode is the source’s name. The last message was from her: Where were you?
Hannah tells Tina that Sean is missing, but not about the phone, and Tina sends officers to look for him. She also assigns Billy Murdoch to work with Hannah, as he had done a bit of work with Sean. He’s surprised by how much Hannah knows about Sean and his whereabouts, but Tina cuts off the prying into Hannah’s life.
Although Billy seems reluctant to work with Hannah, she decides to tell him about the phone. Against his advice, she pretends to be Sean and texts Issy back.
Then she’s off to Nick’s birthday. She’s surprised to learn that her son Christian is there, and goes to speak to him, though he’s angry at her. Two years ago, she had him arrested for selling drugs—to an Issy—at a rave, and he hasn’t forgiven her. He’s recently out of prison, working at a Croatian restaurant as a dishwasher.
Back on the search for Sean, Billy and Hannah scour his laptop for clues, and also learn a bit about each other over the long night. Billy specializes, in a way, in Eastern European drug connections, which is why he was brought to Bristol and was working with Sean. He won’t tell Hannah where he worked before.
Instead he asks about Christian’s arrest, and she explains that her son struggled after her divorce. Billy, too, had a messy separation and has a child who dislikes him. Christian at least had Sean, who frequently visited him in prison and even sent him money and spoke for him in court. Sean offered to help Christian get a job when he got out, but Christian had already lined one up through a friend, Stefan, whom he became close to in prison.
One common theme that Billy and Hannah find on Sean’s laptop is the word “krajina,” which means something like “frontier” in Croatian. Billy is vaguely familiar with the language because he spent time in that part of the world; Hannah knows some because her husband is Croatian and had to flee the war there. He tried to get Christian to learn the language, too. Hannah texts Issy to ask about krajina.
Meanwhile, Sean is being tortured on camera in a warehouse. The man seemingly in charge repeats “krajina” to him as he hangs bloodily upside down. That man happens to be the owner of the restaurant where Christian works.
Christian told Sean early on that he suspected the restaurant was some sort of front. He wanted to feed Sean information, especially since the family that owns the restaurant doesn’t know that he speaks Croatian, but Sean refused: it would be too dangerous.
Nonetheless, Christian continues to try to gather information on possible crimes. The family finally invites him to join their regular lunch at the restaurant, and the man in charge of Sean’s torture orders Stefan—in Croatian—to dispose of a car, and to take Christian with him. In prison, Christian and Stefan got matching Croatian tattoos.
Christian is Sean’s “Issy.” While driving the car to a remote location to be destroyed, he answers Hannah’s questions as Issy—and then realizes to his horror when she mentions Sean’s blue Volvo that he’s driving Sean’s car. As Stefan lights it on fire, Christian asks what happened to the car’s owner, who Stefan says was causing trouble. He’s dealt with, just like the car, Stefan answers.
The overlord of the family orders a crony to finish Sean. But Sean has managed to escape, and eventually reaches a farmhouse, where the farmer calls the police.
Hannah has admitted to “Issy” that she’s not Sean; he has disappeared, and she needs help finding him. She also tells Tina about the phone and Issy—and then the call about Sean comes in, and they rush off to the farmhouse.
On the way, Hannah calls the farmer and asks him to put the phone by Sean, who can barely speak. She tells him to hang on, and then the man who was ordered to finish Sean reaches the farmhouse and shoots both Sean and the farmer. The last words Sean got out to Hannah were, “I’m sorry.”
The killer’s tracks, as discerned by crime dogs, show that he was lost—until he suddenly went straight for the farmhouse. Tina and Billy think there’s a leak in the police: someone revealed Sean’s location. All they have to go on now is the knowledge that Sean was watching the restaurant where Christian works.
Having realized what has happened—and blaming himself for Sean’s death—Christian is about to board a plane to flee Bristol when Hannah asks “Issy” to help her find Sean’s killer. But I don’t trust you, he replies.
Still, he doesn’t get on the plane and returns to work at the restaurant. I’ll do it for Sean, he texts Hannah. She has bought herself the black dress.