ByScott Meslow,
a freelancer, author and a senior editor at The Week magazine
Photo: Netflix
Following today’s season three finale of the Netflix fantasy drama The Witcher, Henry Cavill has officially hung up Geralt of Rivia’s sword. Cavill first broke the news that he’d be replaced in the series’s title role by Liam Hemsworth in an October 2022 Instagram post. But while everyone involved with The Witcher has been gracious about Cavill’s departure, there are plenty of unanswered questions about exactly why the actor left a role he obsessively pursued before a single script had even been written. Let’s review what we know, what we don’t, and how “The Cost of Chaos”sends Cavill’s Geralt off into the mist.
So, why did Cavill leave the show? As with any messy breakup, there are numerous conflicting stories about Cavill’s departure, each of which casts the blame on somebody else. Let’s start with Dwayne “The Rock” Johnson.
Okay, that’s simplifying things a bit, but the actor’s behind-the-scenes maneuvering to make his longtime passion project Black Adam the center of Warner Bros.’ DC Extended Universe did leave Cavill in an awkward spot. On the press tour for 2022’s Black Adam, Johnson all but admitted that his real dream was starring in a Black Adam versus Superman movie opposite Cavill, who hadn’t played the character since 2017’s disastrous Justice League. Black Adam ended with a teaser that clearly laid the groundwork for that movie, but later reports revealed that Johnson had to fight hard for it — even going over the head of then–DC Films head Walter Hamada, who had already vetoed a Cavill cameo, and securing approval directly from the co-CEOs of the Warner Bros. film group.
Shortly after Black Adam premiered, Cavill announced his return as Superman. That announcement turned out to be premature. That movie’s critical and commercial failure led Warner Bros. to scuttle much of what it had in the works, including Cavill’s return as Superman. Just two months after announcing his return, Cavill revealed he wouldn’t be playing Superman after all. “This news isn’t the easiest, but that’s life,” he wrote. David Corenswet has since been cast as Superman in James Gunn’s upcoming reboot Superman: Legacy.
Right, but what does that have to do with The Witcher? It was less than a week after announcing his return as Superman that Cavill revealed he would no longer play Geralt of Rivia. We’ll probably never know the full extent of what was planned for his return to the DC Extended Universe, but it’s possible the demands of playing Superman conflicted with the demands of starring in The Witcher, which shoots eight episodes per season in locations scattered across Europe.
There’s just one problem with that theory: In interviews prior to his surprise departure, Cavill repeatedly insisted he would have no problem juggling The Witcher with his other roles. “You’ve got to keep in mind that regardless of what movies I’ll be doing over the next few years, you can fit two projects into one year,” he said in 2019. In a 2021 interview with The Hollywood Reporter, Cavill reiterated his commitment to playing Geralt for the seven-season arc plotted by showrunner Lauren Schmidt Hissrich on one condition. “Absolutely,” he said. “As long as we can keep telling great stories which honor [The Witcher creator Andrzej Sapkowski’s] work.”
Fans of The Witcher franchise, increasingly disgruntled with the TV show’s departure from the source material, have seized on this comment and others as proof that Cavill — himself a vocal super-fan of the books and their similarly beloved video game sequels — shared their frustrations and ultimately bailed on the show as a result. Like any overheated internet fandom, there’s often a toxic side to these complaints, but the speculation over creative differences isn’t entirely unwarranted. Both Cavill and Hissrich have discussed how insistently Cavill lobbied for the TV show’s Geralt to be more like the Geralt of the books, and former Witcher producer and writer Beau DeMayo described a creative atmosphere where some writers “actively disliked” the Witcher books and video games, even “actively mocking” them. All of that has been taken as proof that Cavill, resigned to the fact that Netflix’s The Witcher would never match the version he wanted to make, quit the project altogether.
There’s one last piece of evidence to consider, although it’s much more speculative and should be taken with a much larger grain of salt. In December 2022, a script was leaked from an episode of the wildly popular celebrity gossip podcast DeuxMoi that anonymously alleged Cavill had become “disrespectful and toxic” on the Witcher set — going behind Hissrich’s back to make creative changes, rewriting his own dialogue without warning, and causing production delays so significant that Netflix requested a possible exit be crafted.
Whatever happened, don’t expect to learn the full circumstances of Cavill’s departure any time soon. Hissrich said in December that while she has “a lot to say” on the subject, “we’ll obviously never get into exactly why Henry left.” She also insisted it was a “mutually respectful relationship,” and everybody involved in The Witcher is similarly playing nice on the record. Anya Chalotra, who plays Geralt’s love interest Yennefer of Vengerberg, has said she “shed a tear” when she heard Cavill was leaving. Henry Cavill appeared at Netflix’s Tudum event in June and praised his co-stars to an audience of roaring fans. Hissrich has acknowledged that Liam Hemsworth has “enormous shoes to fill.”
Oh yeah, Liam Hemsworth. What’s going on there? Let’s talk about our new Geralt of Rivia. That, in itself, was a significant creative choice. There are other witchers in The Witcher, and the show has deviated enough from the books that it’s not too hard to imagine a version in which Hemsworth played an entirely new character — a fellow student from the School of the Wolf, say, who vowed to protect Ciri after Geralt’s death.
It doesn’t sound like Hissrich ever seriously considered going that route, though. “If we replaced Geralt with another Witcher, we would be going fully away from the books, and I don’t think that’s what anyone wanted either,” she said.
But even in a show full of monsters and magic, it’s hard to imagine a version of this transition that won’t be a little jarring. As season three ends, Geralt is wandering off into the mist with Jaskier and Milva. As season four begins, Geralt will presumably be doing the same thing — but with a different face that everyone will pretend not to notice.
Wait, that’s it? Well, perhaps not. The few comments from the show’s production on the transition have only made things more confusing. “We have a very, very good plan to introduce our new Geralt and our new vision for Geralt with Liam,” said executive producer Tomek Baginski. “Not going deeply into those ideas because this will be a huge spoiler, [but] it’s also very, very close to the meta ideas which are deeply embedded in the books, especially in book five.” He also insisted the transition would be “flawless,” “lore accurate,” and “very close to what was set out in the books.”
What does that mean? Even Witcher die-hards seem puzzled. Fan site Redanian Intelligence speculates that the show could follow in the steps of Marvel and introduce a multiverse, though there’s nothing in the Witcher franchise’s own teases about what’s happening in other dimensions that would seem to account for Geralt’s face changing. And in a separate interview, Baginski revealed that he has already seen Hemsworth in full costume and makeup as Geralt:“And he looks awesome,” he says.
For now, the rest of us will have to wait to see our new witcher (though fans, true to form, have already tapped AI to try to get a glimpse of the future). All we can do for now is guess what a post-Cavill Witcher looks like because there’s nothing in the season three finale that introduces Hemsworth’s Geralt, or even explicitly nods to Cavill’s departure.
But it may have been a long time coming. A few days before his announcement, Cavill dropped a comment that sounds, in retrospect, like a hint about his departure from The Witcher. “It’s just about belief. If you believe what you’re doing then you’ll be able to keep on doing it,” he said. “It’s also important to know that if you realize you’re doing the wrong thing, that’s when you stop doing the wrong thing. You don’t just keep on going just because. Because that leads down a dark path.” That sounds like a philosophy Geralt of Rivia would heartily endorse.
By submitting your email, you agree to our
Terms and Privacy Notice
and to receive email correspondence from us. This site is protected by reCAPTCHA and the Google
Privacy Policy and
Terms of Service apply.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
Already a subscriber?
Already a subscriber?
`;
// integrate Sub(x) scripts and elements
if (hostname !== 'subs.nymag.com') { // do not integrate on this subdomain
document.head.appendChild(trackingScript);
document.body.insertAdjacentHTML('beforeend', subXAnimationElements);
}
There was an error processing the request. Please try again later."}).catch(e=>console.error("Error verifying email: ",e)))(r.querySelector(".content"),o.bannerCTAVerification)})):(l.remove(),s.remove()),o.dismissable||n.remove(),o.useAlertIcon||a.remove(),r.classList.add("show"),n.addEventListener("click",()=>{u(),r.classList.remove("show")})}else r.remove()}});
}, {"1":1,"6":6,"12":12,"35":35,"40":40}];
window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(3),auth=require(12),signInButton=dom.find(".user-signin"),signOutButton=dom.find(".user-signout"),globalNav=dom.find('[class^="global-nav"]'),body=dom.find("body"),dropdownItems=dom.findAll(".dropdown-wrap"),gtm=require(1),appendLandingPageParams=require(136),pageUri=require(124).getPageUri(),subscriptionPromoLinks=dom.findAll(".persist-params"),searchString=window.location.search||"";function closeDropdowns(e){let n=globalNav.querySelectorAll(".dropdown.open");dropdownItems.forEach(function(t){let o=t.querySelector(".dropdown");!n||t.contains(e.target)&&27!==e.keyCode||o.classList.remove("open")})}function gtmSendReport(e,n,t){let o={eventCategory:"ecommerce",eventAction:"componentClick",brand:e,dimension23:"global-nav",list:pageUri,pageZone:"header",variant:"nav-link"};"global-nav-link"===t&&(o.eventLabel=n.href),gtm.reportNow(o)}function updateElementTargetUrlsIfQueryStrings(e){if(searchString){const n=new URLSearchParams(searchString);let t=e.href;if(t.includes("?")){const o=t.split("?"),i=new URLSearchParams(o[1]);for(let e of n.entries())i.set(e[0],e[1]);t=`${o[0]}?${i.toString()}`,e.href=t}else e.href=`${t}?${n.toString()}`}}function init(e){const n=e.querySelectorAll(".to-landing-page");window.addEventListener("auth:init",()=>{signInButton.addEventListener("click",function(e){e.preventDefault(),auth.showEmbeddedLoginFlow("top navigation")}),signOutButton.addEventListener("click",function(e){e.preventDefault(),gtmSendReport("Sign Out",e.target,"user-info-link"),auth.logout()}),auth.isAuthenticated()&&e.classList.add("signed-in"),auth.isSubscriber()&&e.classList.add("subscribed"),e.querySelectorAll(".user-link").forEach(e=>{e.classList.add("active")}),subscriptionPromoLinks.forEach(e=>{updateElementTargetUrlsIfQueryStrings(e)}),appendLandingPageParams(n)})}dropdownItems.forEach(function(e){e.addEventListener("click",function(){e.querySelector(".dropdown").classList.toggle("open")})}),body.addEventListener("click",closeDropdowns),document.addEventListener("keydown",closeDropdowns),globalNav.addEventListener("click",function(e){let n=e.target;n.classList.contains("global-nav-track")&>mSendReport(n.text,n,"global-nav-link")}),module.exports=init;
}, {"1":1,"3":3,"12":12,"124":124,"136":136}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(221),_each=require(408),Fingerprint2=require(407),DS=require(406),Eventify=require(246);function registerGlobals(){window.DS=DS,window.Eventify=Eventify,window.Fingerprint2=Fingerprint2,DS.value("Eventify",Eventify),DS.value("Fingerprint2",Fingerprint2),DS.value("$document",window.document),DS.value("$window",window)}function mountDollarSliceComponents(){DS.service("components",["$document","$module",function(e,n){var o=_pickBy(n.definitions,e=>e.providerStrategy===n.providers.controller),r=Object.keys(o);function t(e){return o=>{try{n.get(e,o)}catch(e){logMountError(o,e)}}}_each(r,n=>{var o=e.querySelectorAll('[data-uri*="/_components/'+n+'/"]'),r=e.querySelectorAll('[data-uri$="/_components/'+n+'"]');_each(o,t(n)),_each(r,t(n))}),this.components=r}]),DS.get("components")}function logMountError(e,n){const o=e.outerHTML.slice(0,e.outerHTML.indexOf(e.innerHTML));console.error("Error attaching controller to "+o,n)}registerGlobals(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{mountDollarSliceComponents()}):mountDollarSliceComponents();
}, {"221":221,"246":246,"406":406,"407":407,"408":408}];
window.modules["ads.legacy"] = [function(require,module,exports){"use strict";const _map=require(118),_forEach=require(107),_isString=require(268),_intersectionWith=require(409),_isEqual=require(274),_each=require(408),_debounce=require(182),_sortBy=require(205),page=require(124),visit=require(114);DS.service("adService",["Eventify","$cid","$document","$window",function(e,t,a,i){var o,n,s,r,d,c,u,l,g={},p=this,h=[],f=visit.getQueryParamsObject(["utm_campaign"]),m=document.querySelector('script[data-type="ad-a9"]'),b=[],w=!1,v=[],y=document.querySelector('script[data-name="ad-doubleverify"]');document.querySelector('script[data-name="concert-ads"]')||(i.NYM={},i.NYM.analytics={},i.NYM.analytics.adStartTime=i.performance.now(),i.googletag=i.googletag||{},i.googletag.cmd=i.googletag.cmd||[],u=i.googletag,(m||y)&&(i.googletag.cmd=i.googletag.cmd||[],i.googletag.cmd.push(function(){i.googletag.pubads().disableInitialLoad()})),m&&(l=i.setInterval(function(){void 0!==window.apstag&&void 0!==window.apstag.timeout&&(i.clearInterval(l),window.apstag.cleared=!0,l=null)},10),setTimeout(function(){l&&(i.clearInterval(l),i.googletag.pubads().refresh(),window.apstag||console.log("MESSAGE: Timeout for A9 load exceeded, aborting"))},500)),y&&(b.push(new Promise(function(e){w?e():v.push(e)})),c=i.setTimeout(T,2500)),o=function(e){var t,a,o=e.data,n=[];return o.loaded?e:(o.loaded=!0,t=null,(t=o.sizes?u.defineSlot(o.name,o.sizes,o.id).addService(u.pubads()):u.defineOutOfPageSlot(o.name,o.id).addService(u.pubads())).setTargeting("adid",o.id),f.hasOwnProperty("utm_campaign")&&t.setTargeting("utmcamp",f.utm_campaign),a=p.getAdCount(o.label),t.setTargeting("label",o.label+"_"+o.site+"-"+a),u.display(o.id),u.pubads().addEventListener("slotOnload",function(){i.NYM.analytics.firstAdLoadTime||(i.NYM.analytics.firstAdLoadTime=i.performance.now(),i.NYM.analytics.firstAdLoadLabel=e.data.label)}),n=_(o),Promise.all(b).then(function(){n?window.apstag&&window.apstag.cleared?window.apstag.fetchBids({slots:[n],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([t],{changeCorrelator:!1})})}):y&&u.pubads().refresh([t],{changeCorrelator:!1}):u.pubads().refresh([t],{changeCorrelator:!1})}),e.slot=t,e)},n=function(e){var a,i,o,n=t(),s=e.getAttribute("data-name"),r=e.getAttribute("data-sizes"),d=e.getAttribute("data-label"),c=e.getAttribute("data-site");n=e.id,r&&r.length?(r=r.split(","),a=[],_map(r,function(e){e=e.split("x"),i=parseInt(e[0]),o=parseInt(e[1]),a.push([i,o])})):(e.classList.add("oop"),a=!1),this.data={id:n,name:s,sizes:a,loaded:!1,label:d,site:c},g[n]=this},r=function(e){u.cmd.push(function(){var t=o(e);g[e.data.id]=t})},s=function(e){var t=[];e.slot?(t=_(e))&&window.apstag&&window.apstag.cleared&&window.apstag.fetchBids({slots:[t],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([e.slot],{changeCorrelator:!1})})}):e&&r(e)},u.cmd.push(function(){var e,t,o,n=page.getMeta("article:tag"),s=page.getMeta("author"),r=i.location.href,d=(e=a.head.querySelector(".head-gtm"),t=a.body.querySelector(".gtm"),e&&"top"===e.getAttribute("data-gtm")?"gtmtop":t&&"bottom"===t.getAttribute("data-gtm")?"gtmbottom":"");o=[],_forEach([n,s,d],function(e){_forEach(e.split(","),function(e){(e=e.trim().toLowerCase().replace(/\s/g,"-").replace(/\'|\’/g,"")).length&&o.push(e)})}),u.pubads().setTargeting("kw",o),u.pubads().setTargeting("entry_group",o),r=r.slice(r.lastIndexOf("/")+1),u.pubads().setTargeting("pn",r),u.companionAds().setRefreshUnfilledSlots(!0),u.pubads().enableAsyncRendering(),u.enableServices()}),this.load=r,this.create=function(e){return new n(e)},this.refresh=function(e){var t;_isString(e)?(t=this.getById(e),s(t)):s(e)},this.remove=function(e){var t=e.data.id;a.getElementById(t).innerHTML=""},this.getAdCount=function(e){var t,a=0,i=Object.keys(g);return _each(i,function(i){(t=g[i]).data.loaded&&t.data.label===e&&a++}),a},this.getById=function(e){return g[e]},d=_debounce(function(){var e={TopLeaderboard:1,RightColTopMPU:2,outOfPage:99,"homepageTakeover/TopLeaderboard":1},t=_sortBy(h,function(t){return e[t.data.label]||10});_forEach(t,function(e){return e.data.sizes?r(e):i.setTimeout(function(){r(e)},2e3)}),y&&window.PQ.cmd.push(()=>{try{window.PQ.loadSignals(["ids","bsc","vlp"],T)}catch(e){T(),console.error(`There has been an error loading Double Verify signals: ${e}`)}}),h=[]},10),this.addToPageLoadQueue=function(e){h.push(e),d()});function _(e){var t,a=e.sizes;return a=_intersectionWith(a,[[970,250],[970,90],[728,90],[300,600],[300,250],[320,100],[320,50]],_isEqual),e.sizes&&e.sizes.length&&(t={slotID:e.id,sizes:a,slotName:e.label}),t}function T(){i.clearTimeout(c),w=!0,_forEach(v,function(e){e()})}}]);
}, {"107":107,"114":114,"118":118,"124":124,"182":182,"205":205,"268":268,"274":274,"408":408,"409":409}];
window.modules["cid.legacy"] = [function(require,module,exports){"use strict";DS.service("$cid",function(){var r=Math.floor(100*Math.random());return function(){return"cid-"+ ++r}});
}, {}];
window.modules["client.legacy"] = [function(require,module,exports){"use strict";require("cid.legacy"),require("ads.legacy"),require("facebook.legacy"),require("aaa-module-mounting.legacy");
}, {"cid.legacy":"cid.legacy","aaa-module-mounting.legacy":"aaa-module-mounting.legacy","ads.legacy":"ads.legacy","facebook.legacy":"facebook.legacy"}];
window.modules["facebook.legacy"] = [function(require,module,exports){"use strict";DS.service("facebook",[function(){this.fb=function(i){window.FB&&window.FB[i].apply(this,Array.prototype.slice.call(arguments,1))}}]);
}, {}];
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o typeof key === 'string' && key.match(/\.legacy$/)).forEach(key => window.require(key));
}
function tryToMount(fn, el, name) {
try {
fn(el); // init the controller
} catch (e) {
const elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML));
console.error(`Error initializing controller for "${name}" on "${elementTag}"`, e);
}
}
/**
* mount client.js component controllers
*/
function mountComponentModules() {
Object.keys(window.modules).filter(key => typeof key === 'string' && key.match(/\.client$/)).forEach(key => {
let controllerFn = window.require(key);
if (typeof controllerFn === 'function') {
const name = key.replace('.client', ''),
instancesSelector = `[data-uri*="_components/${name}/"]`,
defaultSelector = `[data-uri$="_components${name}"]`,
instances = document.querySelectorAll(instancesSelector),
defaults = document.querySelectorAll(defaultSelector);
for (let el of instances) {
tryToMount(controllerFn, el, name);
}
for (let el of defaults) {
tryToMount(controllerFn, el, name);
}
}
});
}
// Make sure that a `window.process.env.NODE_ENV` is available in the client for any dependencies,
// services, or components that could require it
// note: the `` value is swapped for the actual environment variable in /lib/cmd/compile/scripts.js
window.process = window.process || {};
window.process.env = window.process.env || {};
if (!window.process.env.NODE_ENV) {
window.process.env.NODE_ENV = '';
}
// note: legacy controllers that require legacy services (e.g. dollar-slice) must
// wait for DOMContentLoaded to initialize themselves, as the files themselves must be mounted first
mountLegacyServices();
mountComponentModules();
// ]]