The time is here, my friends! Netflix has returned with season two of The Witcher. We are in for a wild ride as Geralt (Henry Cavill) does everything in his power to protect Ciri (Freya Allan), face his destiny and kick some major monster tush. In the season premiere episode, “A Grain of Truth,” Geralt and Ciri try to uncover the fate of Yennefer (Anya Chalotra) before heading off the Kaer Morhen. Let’s not waste any more time and dive right in!
DISCLAIMER: This is a recap and, by definition, will contain spoilers. I highly suggest avoiding spoilers until you have seen season two of The Witcher. So if you haven’t, head over to Netflix and get to it!
RELATED: Check out everything you need to know about The Witcher!
“A Grain of Truth” opens as a merchant and his family try to find a place to wait on the winter storm. However, a monster pops up and decides that they are better off being dinner. We all love a good monster.
After the opening credits, we cut to Tissaia (MyAnna Burning) at Sodden Hill trying to figure out what happened to Yennefer. However, no matter how many minds she dives into, she sees nothing. The way we see her visions in a first-person POV is such a nice nod to the video game style. Tissaia starts to call out for Yennefer when she hears someone else do the same. That someone else is Geralt, who is searching the field with Ciri on the back of Roach.
Ciri mentions to Geralt that she had seen this before he heads over to chat with Tissaia. Geralt tries to get her to tell him what happened to Yennefer, and while she doesn’t specifically say that she died, Tissaia gives him that impression. Geralt grabs Roach and Ciri and heads off. Ciri tries to get him to open up about who Yennefer is, but he shoots her down. Poor guy just had his heartbroken.
Geralt and Ciri begin the long trek to Kaer Morhen. One night while camping out, Ciri awakens from a nightmare. Geralt tries to make her feel better by sharing that he has nightmares too. Apparently, our big monster hunter is afraid of an overly friendly rock troll. Ciri opens up about her nightmares and Geralt answers her questions about how she became his law of surprise. She wants to return home, but Cintra is no longer safe and Geralt knows that if she goes to Skellige, she would just be married off to the first Lord looking to take over her throne.
“A Grain of Truth” jumps to Aretuza, where Tissaia is still looking for Yennefer among the hurt and dead. She overhears Artorius (Terence Maynard) trying to keep Triss (Anna Shaffer) stable. With some quick thinking and help from Tissaia and Vilgefortz (Mahesh Jadu), Triss calms back down. Tissaia informs Artorius that both his niece Fringilla (Mimi Ndiweni) and Yennefer are lost now. It seems that Vilgefortz and Artorius still differ on how they need to treat the current situation, but Tissaia sides with Vilgefortz and decides that she wants to be the one to question the prisoner.
Quickly, we jump to Yennefer, who is alive but probably not too well. She has been captured by Fringilla and what is left of the Nilgaardian army.

Nivellen (Kristofer Hivju) in The Witcher season two. Image courtesy of Netflix.
We jump back to Geralt and Ciri, still wandering through the woods. Geralt explains what Kaer Morhen is and why it isn’t well known anymore. If you haven’t seen The Witcher: Nightmare of the Wolf, I highly suggest checking it out. It can help you get up to speed on the past of Kaer Morhen and the other witchers. Geralt and Ciri bond over the idea that they both have hidden in plain sight before and that they are both a bit different.
Geralt spots a dead animal and he and Roach instantly become wary. Ciri learns that Geralt has the ability to calm animals using what is known as axii. As Geralt investigates the small dead creature, we hear what seems to be a monster in the distance, which sets Geralt on high alert and the two continue on their way. The two arrive at an abandoned village just as the storm picks up. He doesn’t like how quiet it is and decides to visit the home of a friend nearby instead.
Geralt and Ciri arrive at the mansion, but something seems off. Geralt tells Ciri (for what seems to be the hundredth time this episode) to stay with Roach. As he makes his way towards the doors, they begin to slam open and close before a creature comes rushing out. Thankfully, before Geralt can put a knife into his neck, Nivellen (Kristofer Hivju) makes himself known as the creature. Geralt realizes that it is him though he looks a tad bit different. Nivellen promises to tell him everything if he just puts the knife down and comes inside.
Inside, Nivellen preps a fire and bath for Ciri and then heads off with Geralt to reconnect over quite a lot of wine. It’s very fatherlike how protective Geralt is of Ciri. While Ciri is bathing, something is watching her from the attic above, though she doesn’t see who or what it is. She joins Geralt and Nivellen at dinner, where Nivellen recounts the tale of how the two met. He then opens up about his curse and how it happened after he trashed the Temple of the Lionheaded Spider. He isn’t sure exactly how to break the curse, but he does know that killing himself does nothing.
They then hear scurrying in the ceiling above and Nivellen tells them about his cat, Vereena. A most loyal companion but awfully shy. After dinner, Geralt, Ciri and Nivellen chat by the fire about the now-abandoned town and what Nivellen believes will be the end of days. Geralt isn’t too convinced that this will be the time it finally happens. He decides to head out and make sure the mansion is secure, leaving Ciri and Nivellen behind.
“A Grain of Truth” takes us back to Aretuza, where Tissaia comes face to face with their prisoner – Cahir (Eamon Farren). He isn’t phased by her at first, claiming that the White Flame will cleanse everyone in the end. But that quickly changes as Tissaia dives into her interrogation. The loss of Yennefer drives her pain and it looks as if she isn’t willing to let up until he surrenders everything he knows. Remind us to never get on her bad side.
We slip over to Yennefer and Fingilla next. Yennefer realizes that the Nilfgaard army is on the run after their loss. Yennefer quickly realizes that Fringilla is going to use her to save her own back after failing to complete the White Flame’s mission. Fringilla doesn’t argue against her and it looks like Yennefer’s bad luck is just beginning.
Back at Nivellen’s mansion, he tells Ciri the tale of The Fall of the Elves. A doomed Elven warrior in love with a human. They decided to marry instead of fight and were expecting a child. They were killed, but not before their kin could come into the world. Outside, Geralt is chatting with Roach about Ciri’s subtle defiance even when he is trying to keep her safe. Back inside, Ciri opens up to Nivellen about wanting to change the past and how she is struggling to accept it. She tries to talk with him about breaking his curse and even mentions her dad’s story (though I imagine she doesn’t know it was him), but Nivellen doesn’t feel like he is worthy.
Nivellen sees Ciri off to bed and she tries to ease his pain over his curse one more time. She watched her entire family fall at the hands of the Nilfgaard army and sees those people as monsters. But, I feel that with Nivellen being so confident that he is one, he isn’t sharing something about what went into his curse. He wishes her goodnight before heading out.

Geralt (Henry Cavill) in The Witcher season two. Image courtesy of Netflix.
Outside, Roach warns Geralt of a presence and we can see the footsteps in the snow. However, once outside the gate, they just disappear. Back inside, he tries to get Nivellen to open up about what is really going on with a drinking game. However, it seems like Geralt can’t hit the mark and ends up revealing more to Nivellen about what is going on with Ciri. Geralt opens up about Yennefer and how she changed his thoughts on his destiny. Our poor Geralt is really crushed over his belief that Yennefer is dead.
“A Grain of Truth” quickly cuts to Yennefer trying to convince Fringilla to change her mind. They have differing views on their lives after Aretuza as the two argue about how their different choices led them this far. Back at Nivellen’s mansion, Geralt tells Nivellen that he has no intention of using his child of surprise to continue the witchers. Geralt then decides to let Nivellen know that he has known this whole time that Nivellen has been cheating with magic daggers. But why? What is he really hiding? Instead of providing answers, he leaves Geralt and heads off to bed. Awfully suspicious is you ask us.
In Ciri’s room, she tells Vereena everything will be okay before falling asleep. And for the first time, we get a good look at Vereena (Agnes Bjorn) as she climbs out of the ceiling to check on Ciri, who is now having a nightmare. Is it possible that this is why Nivellen has been so suspicious? Ciri awakens and the two have a brief conversation about how Vereena is different and that she knows about Geralt. Ciri realizes that Nivellen has been hiding her and Vereena uses a bit of magic to put Ciri back to sleep.
Geralt continues to investigate the mansion and then heads down to the town. He finds the bodies of the merchant and his family from the beginning of the episode. He realizes that the monster who caused it flies, which is why the footprints magically disappear. Geralt rushes back to the mansion and wakes Ciri. He warns her that a bruxa is in the house and downs one of his potions. Let the monster-hunting begin! Ciri heads outside while Geralt checks on Nivellen, where he finds Vereena, the bruxa, feeding on him.
The two go head to head and Geralt sends Vereena flying into the courtyard. Ciri goes to check on Vereena, not knowing that she is the bruxa. Vereena sends Geralt flying and tries to get Ciri on her side. Geralt gets back on his feet and the fight continues. During one of her diving attacks, Geralt manages to strike a blow. Ciri rushes over to cover Vereena, trying to plead with Geralt to stop, but Vereena takes Ciri hostage. However, she isn’t about to cause any damage before Nivellen uses a spear to stab her from behind.
Cue creepy bone-cracking and head twist as Vereena tries to pull herself down the spear towards Nivellen. Before she can bite him, Geralt cuts her head off. Before she dies, Vereena warns Ciri that Geralt will come for her too. As she bursts into flames, Nivellen’s curse is broken. But he doesn’t care that he is free now that Vereena is dead. He finally tells the truth about what has been going on and what really caused his curse. This new information paints him in a completely different light and Geralt and Ciri leave him to suffer alone by himself.
At their new campsite, Geralt warns Ciri that he isn’t playing when he tells her to run or hide. Ciri opens up about her fear that everywhere she goes, people die. She doesn’t want to cause this for people and is afraid all the time. Geralt gives her a pep talk about facing her fears and promises that he won’t let anything happen to her.
“A Grain of Truth” comes to an end as Fringilla and Yennefer’s camp is attacked by an unknown assailant. Who or what is hiding in the dark of the woods?
RELATED: Keep up to date on The Witcher with our recaps!
What an opener! The Witcher hits the ground running by kicking off right where season one ended. I’m not sure why Geralt pretty much accepts that Yennefer is dead other than to make sure that they are separated going forward. I was excited to see Hivju in this episode and he did well for such a terrible character. I feel that Ciri will look back on these moments and I wonder if she will be hopeful that the world isn’t all like him, or will she believe that no one is worthy of being saved? We also got a look at what is happening with Yennefer and the cliffhanger at the end has me very worried for her fate.
Let’s not waste any more time and hop into the next episode! You aren’t going to want to miss this!
- Saturday Morning Webtoons: LOVE ON TARGET and FLOAT - September 23, 2023
- Tavern Talk Thursday: Shows to Watch for the Dungeons and Dragons Lovers - September 21, 2023
- Geek Girl Authority Crush of the Week: SALVOR HARDIN - September 20, 2023