On a beach in Thailand in September 2010, 27-year-old Carrie Cole, a British surgical trainee, marries Johan Kullberg, a 30-year-old Swedish marine archaeologist, in an informal ceremony. Hours later, armed police swarm their wedding, seize Johan at gunpoint, and drag him away. Carrie sprints after the convoy, but he is gone.
The narrative shifts to December 2022. Carrie lives on Dartmoor with her husband, Robin Carghill, and their six-year-old twins, Raffy and Maeve, born extremely premature. Raffy has chronic lung disease. Carrie has been away from surgery for six years, and the family runs a holiday rental called the Pig Shed. Her father has Alzheimer's disease and is about to move into residential care. Her sister, Maya, a therapist living in Colorado with her partner, Eagle, is flying home for Christmas. Carrie announces she has been cleared to return to surgery and plans to visit Stockholm for a holiday-let conference and to reconnect with Yanika Hatziz, her former surgical mentor.
While browsing accommodation, Carrie discovers a listing on Roof, a vacation rental platform, hosted by Johan Kullberg. He is alive, free, and living in Stockholm as an architect with a partner and a child. Shock gives way to fury: He rebuilt his life and never contacted her. She tells Maya and her friend Dell but not Robin. Maya warns her not to go, but Carrie secretly rebooks her flights after confirming Johan is not on the delegate list.
A flashback recounts how they met in January 2010 at the Royal London Hospital. Carrie is on call when an elderly woman is brought in after a motorcycle collision. Johan, who witnessed the accident, followed the ambulance. When a chest drain fails and no other staff are available, Carrie performs a risky emergency procedure alone, saving the patient's life. Johan defends her to a police officer who refuses to leave during the crisis. Carrie is drawn to him, but hospital ethics prevent social contact. They reunite four months later in a supermarket; Johan reveals he waited to avoid jeopardizing her career. Within weeks Carrie has moved into his flat, signed up for Swedish lessons, and let him teach her to scuba dive. Their relationship is intense and all-consuming.
Another flashback covers their trip to Thailand. Johan has been diving in Myanmar; Carrie flies to Bangkok to meet him. He takes her to a shop in Chinatown to deliver sweets to a colleague's relative, but a well-dressed woman intercepts him with unsettling familiarity. Johan admits his fixer in Myanmar warned him of trouble with diving permits, though a follow-up message says the problem is resolved. They fly to Koh Samui, where Johan proposes and they marry on the beach. That night, as they dance, armed police arrive and take him away.
After the arrest, Carrie's mother, Adelina Ghali, a prominent medical activist of half-Malaysian heritage who left the family when Carrie was 10, flies to Bangkok within 24 hours. Through her Thai ex-boyfriend Prawat and his connections, she fights for access to Johan. When Carrie finally sees him at the prison, he is gaunt and ill. He tells her he committed the crime and warns her to stop interfering, saying he is "answerable to people much more dangerous than the prison guards" (188). In a final visit, he breaks up with her, telling her to go home. Carrie returns to London shattered. Prawat later reports that Johan has been sentenced to 25 years in Bang Kwang, Thailand's most notorious prison, adding that Johan had a girlfriend within the criminal organization. Carrie absorbs the news, then returns to work. Four years later, she meets Robin at a hospital fundraiser; they fall in love and marry.
In January 2023, Carrie arrives in Stockholm. Yanika offers her a clinical attachment. That evening, she enters the hotel bar and finds Johan at the counter. They sit down together. Johan insists he was never a drug dealer and never had a girlfriend in a criminal organization; the rumors were planted to deter Carrie and Adelina from helping him. He was fully cleared and pardoned. When Carrie asks why he never contacted her, he says he expected someone else to tell her. He kisses her cheek: "There wasn't a day I didn't think about you" (230). Carrie flies home and resolves to tell Robin everything but does not.
In March, Carrie returns for her clinical attachment. Maya, visiting, accidentally sends Johan a booking request from Carrie's phone. He calls, and they begin exchanging messages. He offers his empty summer house for the weekend. At the cabin, Johan's mother, Kerstin, confronts Carrie, claiming Johan was carrying drugs for Adelina. Carrie calls Adelina, who admits she asked Johan to transport antibiotics from Myanmar to Prawat's charity, partly to rekindle Prawat's attention. The antibiotics were legitimate.
Johan arrives and reveals the full truth. Separately from Adelina's request, his fixer in Myanmar asked him to carry pills described as the local equivalent of Adderall for a financial trader in Bangkok. The pills were actually
yaba, a form of methamphetamine. Johan pleaded guilty because the syndicate threatened to fabricate evidence of larger shipments, risking the death penalty. When pardoned, he tried to contact Carrie, but Adelina refused to pass along her details, saying Carrie had moved on. Most remarkably, it was Adelina who spent years working through her network to secure Johan's pardon. During this conversation, Carrie learns her father has died.
She flies home. Robin does not answer her calls. The house is deserted, and Carrie realizes Robin is logged into her Roof account and has read her intimate messages with Johan. Then Johan calls with a shattering revelation: Robin was the fixer in Myanmar who gave Johan the pills. Johan had talked about Carrie constantly during their time together, so Robin knew exactly who she was when they met at the gala.
Adelina locates Robin and the children at a London hotel. The children are unharmed. Carrie confronts Robin by phone; he admits he sought her out knowing who she was, though he insists he never planned to fall in love with her. Investigation reveals Robin had been taking money-laundering jobs for his former boss, Valentin Meyer, throughout their marriage.
That night, Carrie and Johan walk onto the moor under the stars. Johan reveals his partner, Freja, has left him. Carrie says she needs to be free. In the early hours, she leads him outside, and they sleep together for the first time in over 12 years as dawn breaks over the moor.
An epilogue set 18 months later finds Carrie living in Stockholm with the twins and Maya, who has left Eagle to become her part-time nanny. Carrie holds a yearlong surgical training position under Yanika. Robin, now in Singapore, remains a present but untrusted co-parent. One Friday evening, Carrie drives to Johan's summer house and tells him she loves him. After a long silence, Johan says, "It's still just you, Carrie. Only you" (351). He traces a finger down her neck, the same gesture from their first encounter. She kisses him, and the novel closes with Carrie reflecting that nothing and everything has changed since their wedding night, but just the two of them is enough.