The novel opens in 2019 with an email exchange between Hannah Rokeby, a third-year law student at the University of Maine, and Professor Robert Parekh, director of the Innocence Project clinic at the University of Virginia (UVA) Law School. The Innocence Project works to free wrongfully convicted people. Hannah requests a volunteer position, claiming her mother Laura is enrolled in a cancer trial in Charlottesville. When Parekh rejects her, Hannah sends a blackmail threat referencing his personal relationship with a former student. Intrigued by her audacity, Parekh invites her to campus.
The narrative alternates between Hannah's present-day story and entries from Laura's diary, dated to the summer of 1994. Hannah departs Orono, Maine, at four A.M. while Laura sleeps, searching the house for hidden alcohol and pouring out two bottles of vodka she finds in the recycling bin. She flies to Virginia, ignoring Laura's calls. Two weeks earlier, Hannah discovered a
Vanity Fair article about the Innocence Project's work on Michael Dandridge, a man on death row for the rape and murder of a Navy wife named Sarah Fitzhugh, setting her plan in motion.
Laura's diary introduces her as a 19-year-old hotel cleaner on Mount Desert Island, Maine. While cleaning a private house, she meets Tom Spencer, a kind and wealthy college student, and his roommate Mike. Laura discovers cocaine and a gun in Mike's room and is unsettled by his volatility. Over subsequent entries, Laura and Tom develop a romance, while Mike takes suspicious sailing trips to Canada and grows hostile toward Laura, threatening her when Tom decides to extend his stay.
In Charlottesville, Parekh offers Hannah a trial position. She observes the team working the Dandridge case: Camila Martinez, Hazel Ellison, and Sean Warner. To secure a spot, Hannah discovers that Hazel failed to receive a job offer after a summer internship and places a fake call impersonating a firm assistant to lure Hazel away. When Hazel leaves, Parekh fires her for disloyalty, and Hannah replaces her. Hannah also identifies a promising case: Nia Jones, convicted of arson and felony murder based on debunked fire-investigation science.
At the case conference, the team reviews the Dandridge case. Sarah Fitzhugh was raped and strangled in her Yorktown, Virginia, apartment in 2007. Her seven-year-old son Samuel identified Dandridge from a photo lineup. The conviction rested on an anonymous tip, a confession allegedly coerced by Sheriff Jerome Pierce, and Samuel's identification. An earlier appeal revealed that hair found on Sarah's body, not matching Dandridge's DNA, had been suppressed by the prosecution. A federal judge vacated the conviction, but the state refiled charges, and Parekh tasks the team with finding new evidence, including tracking down Dandridge's missing alibi witness, Neil Prosper.
Prosper's former girlfriend, Angie Meyer, confirms she was at his apartment the night of the murder and that Dandridge and Prosper were settled in for the evening. She mentions that the pizza delivery man, Derek Rawlings, later died in a car accident. When the team finds Prosper in Charlotte, North Carolina, living under an assumed name, he refuses to speak but reacts visibly when asked if he fears Pierce. Hannah secretly texts Prosper's sister an anonymous warning, hoping to scare the family into disappearing and eliminate the alibi witness.
Laura's diary takes a devastating turn. On August 15, 1994, Tom fails to arrive as planned, and Laura learns he drowned. The police dismiss her, repeating Mike's claim that Laura was a gold digger. When Laura goes to the yacht to search for evidence, Mike is waiting below deck. He admits to killing Tom, then assaults and rapes Laura, forcing her to destroy evidence and threatening her life. Laura returns to Boston, devastated. Later entries reveal she discovered she was pregnant, traveled to the Spencer family estate, and negotiated two million dollars from Tom's stepmother, Antonia Spencer, in exchange for a nondisclosure agreement.
When Hannah and Sean visit Dandridge at Greensville Correctional Prison, Hannah notices a thick scar across his right palm, identical to one Laura attributed to Tom in the diary, and panics. Meanwhile, she corrupts the Dandridge case filings, and the Prosper family disappears after her anonymous text. Camila grows suspicious, concluding the corruption was deliberate, and confronts Hannah after learning Hazel's interview was a hoax. Hannah deflects but knows her time is running out.
Parekh sends Hannah and Sean to Yorktown to approach Samuel before the hearing. At a local bar, three men attack Sean, and Pierce arrests him. Before dawn, Sam finds Hannah and confesses that Pierce coached him as a child to identify Dandridge and that he never saw anyone that night. Sam reveals Pierce killed Rawlings, staging it as a car accident, and maintains control through blackmail files in his workshop.
Hannah visits Dandridge alone, and the novel's central revelation unfolds. Dandridge confirms he is Hannah's biological father. He explains that he and Laura had a casual relationship that summer, that Laura never had a romance with Tom, and that Tom's death was an accidental drowning. When Laura discovered Dandridge's family had lost their money, she claimed the baby was Tom's and extorted the Spencer family. Hannah realizes her mother fabricated the diary years later to manipulate her into believing Dandridge murdered her father and raped her mother.
Hannah confronts Laura by phone, then destroys her phone in anguish. When Sean discovers her cancer story was a lie, Hannah confesses everything: Her mother's fabrications drove her to sabotage an innocent man's defense. Sean takes a map to Sam's grandparents' cabin and leaves. The morning of the hearing, Sean drives to the cabin and finds Pierce already there. Sean confronts Pierce, Sam agrees to leave with him, and Pierce chases them down a mountain road before Sam's grandfather intervenes. Meanwhile, Hannah breaks into Pierce's workshop and finds blackmail dossiers, the Fitzhugh case file, and a sealed evidence bag containing hair from a separate attempted rape case that mirrors the Fitzhugh murder. Hannah realizes the hair likely belongs to Rawlings, linking him to both crimes.
At the courthouse, Sam recants his identification, testifying that Pierce coached him. Hannah arrives with the evidence and persuades Dandridge to let her cross-examine Pierce under Virginia's third-year practice rule, which allows supervised law students to appear in court. She presents the hidden hair evidence and reveals that a crime scene officer is willing to testify and that Rawlings's son has agreed to familial DNA testing. She accuses Pierce of framing Dandridge to protect his brother-in-law. Judge Burrell dismisses the charges, frees Dandridge, and orders Pierce's arrest. Parekh invites Hannah to return, but she confesses she was never enrolled at UVA and paid a hacker to create a fake student record.
Hannah returns to Orono for a final reckoning with Laura. After Laura cycles through denial and manipulation, Hannah delivers the last revelation: The anonymous tips that led police to Dandridge originated from Laura herself, called in as revenge after Dandridge demanded more money. Laura claims she did everything for Hannah, but Hannah recognizes this as one final manipulation. She packs her belongings, tells Laura to keep the money, and walks out. Sean and Camila are waiting in the car. As they drive away, Hannah cries quietly, then stops, wipes her tears, and smiles.