Everything seemed to be wrapping up pretty nicely for Bosch: Legacy season 2 in episode 9 until the FBI dropped the bombshell that Jade (Jessica Camacho) is actually an undercover FBI agent. That puts Mo (Stephen Chang) in a dangerous position, as the feds hope to have him testify against Bosch (Titus Welliver) and Chandler (Mimi Rogers).
But that's not all that needs to be settled. Maddie (Madison Lintz) has to be cleared of any wrongdoing in the Ellis case; Chandler makes her final push to drop the Foster case, plus has eyes for a new job; and we’re not quite done with the Dockweiler saga. All of this makes for a pretty big season finale.
Here's our full recap of the Bosch: Legacy season 2 finale.
Maddie gives her testimony about the Ellis shootout. She reaffirms she saw Ellis with a gun and had to make the call to save Bosch's life. However, the police have yet to find Ellis' gun. If they can't, it could put Maddie at risk.
Despite her lawyer saying it'll all be fine, Maddie is rightly nervous. She asks Vasquez (Denise Sanchez) if she saw the gun, but she only heard shots, arriving at the boat after everything happened.
Later, Maddie talks with Bosch. While she justifies killing Ellis as taking a life to save a life (notably her father's), he knows about that kind of guilt and warns her not to just shrug it off. She says she is actually furious at Bosch for slipping his protection and nearly getting killed, at Ellis for being a dirty cop and even her late mom, Eleanor, for not being there in her time of need. She tells Bosch she can't lose another parent.
Maddie's not the only one going through some stuff. Chandler knows her time at Marty's firm is over and she has to figure out her next steps. While Ramirez (Alex Loynaz) tries to mend bridges, wanting to work with her again, she needs people she can trust. Talking with her therapist, Chandler opens up about not being the person she used to be, but acknowledges she did what she had to do to survive. If this is who she is now, she can live with that.
Then there's Jade, aka Janice. The FBI wants her to push Mo, but she knows she's at risk of exposing herself to the rest of the hacker community, which could put her at risk. Baron (Anthony Michael Hall) says they have a plan to keep her undercover and have Mo only get a slap on the wrist as long as he cooperates with Bosch and Chandler.
Jade visits Mo to grab a bite to eat. But he's getting irritated, saying she doesn't seem interested in taking their relationship to a serious level. She understands, but that's not necessarily forever, giving Mo some hope.
However, the FBI isn't waiting any longer. They raid Mo's apartment and arrest him. They make it seem that Jade is someone who uses hackers to steal corporate secrets and they are going to prosecute her unless Mo gives them info on Bosch and Chandler. Mo tells Baron he needs an official deal and a few days to make his decision.
Chandler makes her move against DA Archer (Jim Holmes) in the Foster case. She presents the judge with evidence that suggests a third party was involved, explaining why she believes Ellis and Long murdered Lexi Parks, using a condom from James Allen to plant Foster's DNA on the scene. The judge agrees the evidence is solid enough to present in court. Chandler then asks the DA to drop the charges again, but he refuses.
From that case to the FBI, Chandler tells Bosch one of the FBI's witnesses has recanted his testimony that ID'd Bosch at the scene of the pipeline, meaning he is in the clear (they don't know about the Mo situation). Now they just have to figure out the Foster case. Bosch says they need a confession from Long (Guy Wilson), who survived the gunshot and is still at the hospital recovering. Bosch thinks he won't know about Ellis, so he comes up with a plan.
Impersonating a doctor, Bosch sneaks into Long's hospital room and reads him a fake confession from Ellis claiming Long murdered Lexi Parks. But Long corrects it, saying it was Ellis who went psycho and killed her.
Bosch records this and they present it to Archer. He says because they didn't get Long's consent to record, it's inadmissible in court. But Chandler isn't worried about that. She wants him to drop the charges in the next four hours or she'll release the recording to the press and he'll have to explain why he continues an investigation against Foster when Long confessed.
Despite Perez (Anthony Gonzales) being supportive of Maddie as she deals with the investigation, she tells him she is going to be moving out. While she says it doesn't mean they are breaking up, she tells Bosch later she's going to end the relationship.
Awaiting the DA's decision on Foster, Chandler meets with Irvin Irving (the late Lance Reddick) and asks if he'll endorse her to be the next district attorney. After, Archer finally agrees to drop the charges on Foster and clears his name.
Elsewhere, Maddie gets a call from a correctional officer telling her Dockweiler died in prison from a supposed overdose. Talking with Bosch, he tells her Dockweiler was likely killed by other inmates because he was a known sexual predator, adding he got what he deserved. Maddie says he got off easy. But that's not all that is bothering Maddie. She is still a bit angry at Bosch, but is getting over it. She also needs closure on her mom.
For this, she goes to the FBI Los Angeles headquarters and sees their Memorial Wall, since her mom died in service. Maddie looks through her mom's entry and finds a picture of her with baby Maddie, which causes Maddie to cry. She then talks to Chandler, happy to know a bit more about how her mom and Bosch met (she saved his life). She is still worried she's losing her empathy for others. Chandler tells her if she is even thinking about that it's evidence she hasn't.
A final bit of good news for Maddie: Mank (Scott Klace) calls and says they found the gun, meaning she is off the hook in the Ellis killing.
Mo is still in his sticky situation though. Jade comes over to try and squeeze more info out of him. However, Mo flips the tables on her, revealing he knows she is an undercover agent. She says she still has the thumb drive proving he hacked the pharma company, but Mo says the thumb drive had an auto-delete function, so all that stuff is already gone. Now he's the one to offer her a choice, quit the FBI or be exposed to the hacking community. She doesn't seem to make a choice, but tells him she did have feelings for him; in another life maybe it could have worked out.
At a press conference, Chandler admonishes Archer for how he handled the Foster case, calling him unfit for office. She announces she is running for district attorney. Bosch and Maddie are in the crowd and are spotted by journalist Scott Anderson (Eric Ladin). He wants to know why the grand jury investigation just disappeared and if Bosch and Chandler sent him the subpoena, but Bosch has no comment.
Back at Bosch's house, he goes out to walk the dog while Maddie stays behind. When Bosch's phone rings, she sees it is from the prison. She picks up, it's a call from an inmate, Preston Borders (Chris Browning, reprising his role from the original Bosch series). Even though Maddie tells him who she is, he admits he took care of Dockweiler, just like Bosch wanted.
When Bosch returns, all Maddie can do is ask what he did.
Episodes of Bosch: Legacy season 2 are streaming on Amazon Freevee.