And now my watch has ended.
Wait, wrong show.
And now, my witch has ended.
Read on for a recap of the season two finale, and then some meditations on season two as a whole.
Ciri wakes up in her bedroom in Cintra, Mousesack fussing over her for not being ready for the banquet. The guests are here, and her grandmother is waiting for her. It’s not real, of course—with her body possessed by the Voleth Meir at the end of the previous episode, Ciri’s consciousness is trapped in a fantasy of her own past.
In the physical world, Ciri takes the dagger Vesemir told her about in “Kaer Morhen”—the one the Voleth Meir used to kill a number of the original witchers.
Geralt and Yen are riding hard back to Kaer Morhen. Yen is desperate to explain to Geralt how the Voleth Meir got under her skin, needled the softest, most vulnerable parts of her, made her desperate enough to do anything. But she couldn’t actually hurt Ciri when it came to it. She understands how special Ciri is—and helping Ciri learn to control her magic gave Yen some of her spark back. Geralt is certainly not ready to forgive her, though.
Possessed!Ciri kills two of the witchers as they sleep, and Vesemir’s about to be the third when she’s interrupted by Geralt. Momentarily, the Voleth Meir tries to feint and pretend she’s actually Ciri, but Geralt’s not fooled. She strikes him and runs.
Vesemir rallies the surviving witchers. He’s fully prepared to kill Ciri, but Geralt isn’t having it. Spilling Ciri’s blood won’t bring the witchers back, and she can survive this possession. He’ll find a way to draw the demon out of her body and trap it. I do not believe for one moment this man has an actual plan, but that’s certainly never stopped him before.
Yen is in the witcher laboratory, trying to figure out a spell to forcibly end Ciri’s possession. She sends Jaskier to give Geralt a piece of jasper (say that five times fast), which has the power to right wrongs (whatever that means), while she makes a potion.
Inside her own mind, Ciri is at the banquet we saw way back in the series premiere. Rather than being grumpy about being forced to attend, Ciri hugs Calanthe, overcome with emotion. She accepts a dance with a nobleman’s son and we see her laughing and dancing. It’s a bittersweet vision of the life she could have had.
In Cintra, Dara confesses to a grieving Filavandrel and Francesca that he was a spy for Dijkstra and Redania, and fills them in about Ciri. Francesca tells Dara this isn’t his fault—he was saving his own life. And then she tells him to gather some horses.
Fringilla and Cahir are preparing for Emhyr’s visit, but Fringilla is alarmed: a group of elves (Francesca and Filavandrel among them) have stolen horses and left, heading north to Redania to exact their revenge for the murder of their baby. Cahir recognizes that Francesca was key to Fringilla’s leadership scheme and suggests they tell Emhyr that Fringilla was the one who orchestrated the baby’s murder (yeesh, man) in order to motivate the elves to fight for Nilfgaard. She’s horrified, but she can’t exactly argue with his logic with Emhyr arriving at any moment.
Geralt hears the tinkling of the medallions, and finds Ciri in front of the memorial tree. He asks what she wants in order to release Ciri, and offers himself up in her place. As the other witchers file into the great hall, Possessed!Ciri turns to the tree and screams, splitting it down the middle and revealing a monolith inside. With another scream, she shatters the monolith, sending shards flying at the witchers. A portal opens, and two gigantic… uh, dinosaurs, I guess? emerge.
As the witchers square off with the giant fuck-off monsters, Vesemir and another witcher form a shield around Geralt and Ciri: “She is the future,” the Voleth Meir says, “And you’re in my way.” Geralt calls out to Ciri, trapped inside her own mind, telling her to stay strong and fight back.
The witchers are not uhhhh doing great: one gets his face fully just bitten off, another loses his head. Distraught, Vesemir breaks the shield and sets his sights on Ciri.
In Ciri’s mind, she asks Mousesack about her bloodline. She wants to know why Calanthe never told her the truth about her heritage. In an effort to keep her confined, the Voleth Meir’s illusion sends in Duny and Pavetta, the parents she never knew.
In Redania, Francesca is taking her revenge, marking the doorways of homes with infants, the babies’ cries echoing through the streets. In one swift motion, she brings her arms down—a horrible moment of silence follows, until it’s broken by mothers’ screams. The gravity of this scene is vertiginous, and Francesca’s unimaginable grief has really allowed Mecia Simpson to stretch her legs for the first time all season.
Possessed!Ciri opens another portal, and a third monster comes through, occupying Geralt’s full attention for a few minutes until he can kill it. Yennefer sprints in with a potion that should extract the Voleth Meir, just as Vesemir stabs Ciri in the stomach—but that doesn’t do much, as the demon heals the wound with a gesture.
Jaskier’s chunk of jasper tumbles into Geralt’s line of sight, and he realizes the Voleth Meir is feeding on the witchers’ pain and hatred. He entreats Ciri to come home, and his voice breaks through to her in her fantasy world. Yen and Vesemir and the others chime in with messages of love. Her fantasy-parents ask her to stay. She says she’s not going anywhere and asks them not to leave her.
Geralt realizes the Voleth Meir can’t vacate Ciri’s body without another vessel, and Yen realizes that this is what she can do to right her own wrongs. She smashes the vial of potion and cuts her wrists (in an echo of her suicide attempt in Aretuza in season one), summoning the Voleth Meir into her.
In Ciri’s mind, her family and friends crumble into ash. Geralt’s voice echoes, telling her that what she sees in there isn’t real: “We belong together. You. Us. It’s not perfect, but it is real. It’s yours. We are your family, and we need you.” She tells her parents she has to go home.
Ciri awakens on the floor as the Voleth Meir possesses Yen. Geralt tells her to open a portal and send the demon through it, but something goes wrong and Ciri, Yen, and Geralt all find themselves on a strange plain. The Voleth Meir leaves Yen behind as riders on horseback approach them: Chekov’s Wild Hunt, on screen at last. They tell Ciri she belongs with them, the “starry-eyed Daughter of Chaos.” But Ciri’s had enough of this shit for one lifetime: she takes her companions’ hands and brings them home to Kaer Morhen.
From here, we get a quick sequence of scenes tying up loose ends:
- Yen has her magic back, which she confirms by healing one of the witchers.
- Vesemir wants to start rebuilding, but Geralt says he and Ciri need to keep moving. It’s not because of anything Vesemir has done—it’s just not safe to stay in one place.
- Tissaia tells the Northern kings about Ciri, and that Vizimir’s after her so he can lay legitimate claim to Cintra. They put a bounty on Ciri and anyone who protects her.
- Reince is speaking to Lydia’s employer, whose face we still don’t see. Lydia’s not dead after all, but she IS horribly disfigured.
- The elves have had their revenge, but Francesca isn’t satisfied with revenge: she wants justice against the humans. Istredd (fucking Istredd!) gets caught skulking around the camp and tells them he has information they need. Ciri is Hen Ikeir, he says, not only a child of Elder blood, but the one Ithlinne prophesied: the salvation of the elves.
- Dijkstra’s owl watches these proceedings and flies back to inform him, transforming into a very beautiful woman named Philippa. She tells Dijkstra word is out about Ciri. He tells her to bring him the bard: it’s time to pay back his benefactor.
At Kaer Morhen, Yen and Geralt have a quiet moment. She tells him she felt her magic come back when she sacrificed herself for Ciri. Geralt tells her to train Ciri—she’s the only person who’s made any progress in getting Ciri to control her magic—but he still doesn’t forgive her.
Geralt reminds her that the golden dragon from “Rare Species” (whose name I am not even going to attempt, given that it’s about 8000 letters long) told them they were destined for each other, but that destiny alone isn’t sufficient. “Something more is needed. She is something more.”
They join Ciri on the ramparts. She’s tired and traumatized (one break for this child, please). He tells her life goes on, and the three of them will help each other. Geralt posits that the Voleth Meir always wanted a way to get back to her home sphere. The monoliths, when broken, are gateways to other spheres, so she needed Ciri to get her home. But what he can’t figure out is how Nilfgaard knew Ciri’s importance before everyone else.
Cut to: Emhyr entering the throne room at Cintra. Fringilla is filling him in about the elves fighting for their cause in Redania, and pursuing Ciri. Fringilla has come around to Cahir’s deception about killing Francesca’s baby, and tells Emhyr they laid the blame on Redania. But Emhyr knows they’re lying, because he’s the one who ACTUALLY ordered the baby’s murder—because, he says, it was the best path to helping him find his daughter. Emhyr turns, and we see his face for the first time: he’s Duny, Cirilla’s father, long thought dead. (OH SHIT).
And there we have it: season two of The Witcher, in the books. My first thought is that I really wish they’d give this show ten-episode seasons, because eight doesn’t quite feel like enough. It’s a ton of material to cover, and each episode this season (except for the premiere) was packed to the gills with plot. I generally think the writing is quite solid, but the dialogue in this finale was notably underwhelming. I understand it—when you’ve got that much story to get through, something has to give, and style is the obvious choice—but a little more time to breathe would’ve been very welcome. And an extra couple episodes would allow for at least one or two monster-(hunter)-of-the-week stories, which I found myself missing this season…
What Hissrich and her team got right from jump, though, was the relationship between Geralt and Ciri, the sine qua non of this season. It’s a huge test for the actors, writers, and producers: if you fall victim to telling us (rather than showing us) that the witcher and his Child Surprise have a powerful connection, the whole foundation crumbles. Thankfully, everyone involved absolutely crushes it. It’s especially evident in this finale, when Geralt refuses to entertain, even for a moment, any solution that involves Ciri’s death. She is his purpose, and his resolve is unshakeable.
Everything about Geralt’s life is profoundly shaped by the women around him: Yen and Ciri, of course, but also Renfri, Triss, Nenneke, Calanthe, his mother, even the Voleth Meir. As previously discussed, I haven’t read the books, so I can’t speak to how drastically the gender dynamics of the show diverge from the source material, but I think having a female showrunner did this adaptation no end of good. It’s so easy for epic fantasy to skew sexist and regressive, even now, but the women in this show are, by and large, flawed, frustrated, frustrating, and fascinating. And that feels very real to me.
Speaking of, the pivot from Yennefer’s motivation in season one (reclaiming her power to bear a child) to her motivation this season (to regain her magic) mostly worked for me. Chalotra is a good enough actress that I found myself willing to go along with it, but when Geralt asks in “Voleth Meir” if she’s still trying to become a mother, it threw me out of the narrative momentarily. But overall I think it tracks: Yen’s drive has always come from her deep-seated need for power, and transferring that single-mindedness from one kind of power to another isn’t a huge leap to make.
And let us not forget that last-second reveal! I love a good “dead parent is not actually dead” twist. Duny/Emhyr will clearly do anything to get Ciri back—he’s already crushed kingdoms and left thousands dead, but to what end? And if he’s still alive, what about Pavetta? I look forward to some Dad vs. Adopted Dad showdowns in season three.
- Geralt grime check: We’re back in full greasebag territory, but I can forgive it: he’s had a rough few days speeding around the Continent and battling ancient evils. Maybe Yen and Ciri can collectively peer pressure him into a spa day.
- I do need to once again express my disappointment that in the full eight episode run of this season, we did not get one single second of Geralt shirtless. My crops are dying. I need a crumb of bicep. Please. This man is so large, there is so much of him. An IOTA of pectoral, I beg you.
- We lost the dwarves at some point—I guess they peeled off as soon as they dropped Ciri and Jaskier off at Kaer Morhen?
- I do hope Jaskier is a more consistent presence in season three—Joey Batey has such good chemistry with both Henry Cavill and Anya Chalotra, and frankly, Ciri’s gonna need her goofy uncle for a bit of levity.
- I can’t believe it took me sixteen episodes of this show to realize this motherfucker’s name is just GERALD??? Gerry of Rivia. Ger-bear. Maybe it’s the exhaustion from the holidays and the recap grind but I’m absolutely crying laughing over this.
- I loved the cute nod to Jurassic Park with the monster’s approaching footsteps causing reverberations in the water bowl.
- Mousesack uses Ciri’s full name, and one of her middle names is Fiona, same as Francesca’s baby and the mystery queen on the Cintran royal family tree.
- It’s nice to see Jodhi May reappear as Calanthe, if only briefly! She’s a magnetic screen presence. (Sidebar: I only just realized May also played the tragic, itinerant younger daughter in 1992’s The Last of the Mohicans.) There’s a figure sitting next to her where Eist was in the series premiere, but we never see his face—I assume Björn Hlynur Haraldsson wasn’t available.
- We only see them for a moment, but the Wild Hunt’s costumes are off the chain—the costume department deserves a raise for that bone helmet alone.
- It was a stacked race, but ultimately this is my favorite take on this season:
how come Geralt of Rivia is big as a house and has an ass upon which i could build my church but when we meet the other Witchers they're just schlubby guys
— Anthony Oliveira (@meakoopa) December 21, 2021
- In case you missed it, there’s a mid-credits trailer for The Witcher: Blood Origin, which you can watch here. I have to say, it’s possible that the truest legacy of Game of Thrones is mournful covers of pop songs in epic fantasy trailers–the trailer for this season of The Witcher featured an eye-roll-worthy stripped-down version of Kanye West’s “Monster,” and the Blood Origins trailer is tracked to a mournful cover of Ellie Goulding’s “Burn.” Trailer editors must be stopped.
[Please note that comments will be temporarily closed over the holiday break, but will be open for discussion on Monday, January 3rd.]
Emily Hughes wants to talk to you about scary books. As the site editor for TorNightfire.com, she’s dedicated to bringing the good word about horror to the masses. You can find her writing at Tor.com, Electric Lit, Thrillist, and Brooklyn Magazine. Formerly the editor of Unbound Worlds, she now writes an occasional newsletter about horror fiction and tweets bad puns @emilyhughes.