From the beginning, Barry was about the stories people tell themselves to get by. The central premise of a hitman becoming an actor has allowed for plenty of specific commentary on Hollywood over these four seasons, from its pervasive misogyny to the unpredictable nature of the streaming economy. But the show’s interest in performance was never particular to the film industry alone. For everyone in this cast, performing isn’t some inspirational calling. It’s what they need to live with themselves, to understand and express their feelings, maybe, but also to rationalize their biggest mistakes.
Art can be a valuable tool for introspection, but the act of creation can just as easily encourage self-deceit. Sally Reed came to embody this idea in season two; she originally set out to faithfully tell the story of her abusive marriage but instead papered over the messy and unflattering complexities of their breakup, crafting a falsely empowering ending for herself. Ironically, though, she found that her altered story was a hit with audiences — in fact, it probably found a larger audience in season three because its edges were sanded off. Feel-good endings are Hollywood’s bread and butter.
But the Sally Reed we see at the beginning of “wow” has long since abandoned the industry, replacing one type of acting with a more long-term method performance: that of a mother. But she has struggled to really inhabit that new role, and the past few episodes haven’t pulled any punches in portraying her as a neglectful and emotionally absent parent. At times in this show, Sally has been the most sympathetic character, but the past two seasons in particular have put a spotlight on her ugliest qualities, refusing to soften her character.
And yet I found myself getting emotional at the scene of Sally opening up to her son for the first time. Not just telling him the truth about why their family moves around so much but allowing herself to really look at him and love him. When Sally says she deserves whatever happens to her and tries to reassure John that he’s a good person, it feels like the first time she has been truly honest with herself in almost a decade. And when John instinctively rushes over to hug her, clinging to her as she repeatedly apologizes, I felt myself desperately hoping there was some way out for them.
It isn’t a huge surprise that the show does grant Sally and John some way out in the end. Barry is a dark show but rarely a completely hopeless one. There’s a consistency to the moral universe of this series, and in this finale, one pattern holds true: Those who deny their true selves will be punished, while those who endure the pain of seeing themselves with clear eyes will be shown mercy.
That’s the idea of the final NoHo Hank scene, when Fuches shows up for (seemingly) his long-awaited revenge on Barry — only to show more interest in protecting John and forcing Hank to reckon with his turn to the dark side. He even presents him with a new deal: If Hank admits he killed Cristobal, Fuches will walk away and never return. It plays out like you might expect, with Hank calling off the deal and promptly getting shot and killed. But he does get one more moment of honest heartbreak, crying that he just wanted to be safe. Hank’s stay at the Bolivian prison at the end of season three taught him that violence was the only way to ensure his own safety, and it cost him the love of his life — a truth he could only bear by becoming someone else. When the shootout at Nohobal ends, Hank takes the hand of the Cristobal statue, a fitting ending to their tragic love story.
It’s a classic Barry move to offer someone an easy out that they then choose to ignore, and at this moment, Fuches is like a god handing out judgments. In an odd way, his story about accepting who he was in prison makes him one of the characters who has “grown” the most on the show; sure, he’s a murderous kingpin who decapitated four people less than 24 hours ago, but he no longer has the delusion that he could ever be a true mentor to someone like Barry. Protecting John and safely returning him upon Barry’s arrival is perhaps the best he can do. Their final interaction is silent: a long period of eye contact where both men feel the weight of their history, then let each other walk. There’s no longer a need for revenge on either side.
That’s not to say that Barry sees clearly now. His biggest takeaway from the extraction mission is that God spared him and he has been redeemed. But Sally, newly reinvigorated after eight years outside her body, doesn’t let him off the hook this time. She tells him what we’ve known all along: The only way to be redeemed is by truly taking responsibility and turning himself in for the murder of Janice Moss. If he doesn’t, Gene will go down for the crime.
Barry clearly has no plans to take Sally’s advice, and she and John are gone in the morning. His first thought is that they’re with Gene, but they aren’t there when he arrives. Tom, who answers the door, urges Barry to save Gene by turning himself in. What follows is a long close-up of Barry’s face as he slowly realizes he’s never going to see his family again and makes the decision to turn himself in. It’s a watershed moment, even if it comes as a result of Barry losing everything he cares about. But too much damage has been done at this point; too many second chances have been offered, and up until a few seconds ago, Barry never would’ve been willing to make this sacrifice. There’s a cruel irony to Gene marching in and killing him with Chekhov/Rip Torn’s gun right when he finally decides to do the right thing. On Barry, it’s never too late to change … until it is.
When “Wow” flashes forward another ten years, we get some closure on the final fates of the remaining characters. It wouldn’t be quite right to call Sally and John’s new life a “happy ending,” but they’re at least granted some peace: Sally has found some fulfillment as a high school theatre director, though she’s still insecure about the quality of her work. Neither she nor her son is a perfectly well-adjusted person, which makes sense; Sally will likely never again let herself fall in love after her experiences with two violent men, one of whom was a serial killer. But there are worse lives to have, and it’s gratifying to see that she and her son at least have each other.
That evening, John sleeps over at his friend’s house, where they finally watch the Barry Berkman biopic. What we see play out over the course of just a few minutes is a cynical reconceptualization of the entire show. Essentially, it’s a twist on the false story that Jim Moss, the DA, and Leo Cousineau put together in “A Nice Meal.” This is no longer the tale of a violent man who manipulated his acting teacher before murdering his girlfriend and threatening to kill his family; it’s now the story of a military hero who accidentally got sucked into the world of crime and drugs when he found out his mentor was a killer, then died at the teacher’s hand when he refused to take part. These images of Barry Berkman and Gene Cousineau will live on forever, or at least far longer than the actual men.
There’s something deeply unsettling about watching this fiction play out and knowing that for all Jim Moss wanted to protect his daughter’s story, it was still turned into some exploitative thriller — one even less factual than the script Warner Bros. initially imagined. Gene is rotting away in prison for life on two counts of first-degree murder, only one real, while Barry rests in Arlington National Cemetery with full honors, remembered fondly despite the countless people he hurt. Perhaps that legacy is a sort of reward for Barry’s last-minute change of heart. More likely, though, it’s comeuppance for Gene, who wanted to convert his trauma into content at all costs and bent the truth to achieve that. It’s his own fault that the truth bent in a different way than he anticipated.
And yet the most curious, ambiguous aspect of this ending is the episode-ending expression on John’s face: grief, but also catharsis. It brought me back, again, to all the distorted narratives that have provided these characters meaning over the years: Sally’s portrayal of her marriage, Gene’s one-person show, or the various embellishments of Barry’s military stories. The cinematic version of Barry is a better man than the real Barry, which is why he would’ve wanted his son to see this — and why Sally doesn’t.
But despite how wrong it all is, this garbage Hollywood fabrication still provides some unlikely solace for John, who now has the comfort of knowing his father will be remembered as a good man, for better or worse. Facts aren’t always, or even usually, what sticks. Stories are what endure, and everyone can tell a story.
Bullet Points
• Of course, the biggest irony is that Gene could’ve saved himself from life in prison if he’d let Barry live. Killing him might feel good after all he’s been through, but it also ensures that Barry’s version of the truth will live on after they’re both gone. After all, he’s the only one who could’ve saved Gene, a fact that he either didn’t believe or deliberately ignored.
• The title of this finale comes from Barry’s final words as he sees the man who shot him. It’s a funny little moment and maybe the final illustration of Barry underestimating how much pain he has caused.
• Otherwise, there’s really not much humor to be found here, which doesn’t really surprise me. “A Nice Meal” felt like our final glimpse of Barry as a comedy.
• Sally’s ultimate fate also reminded me of Henry in the new season of Party Down. I guess pursuing a career as a high school theatre director is a popular path for actors after Hollywood burnout.
• If we’re talking loose ends, I’m curious if characters like Albert or Julie (Annabeth Gish from season three) ever saw the Barry biopic and what they thought of it. There are still plenty of people who could correct the record on Barry, but it doesn’t seem like they have — and who knows if it would stick even if they tried?
• It’s been so rewarding to recap the last two seasons of this show I love and to hear your thoughts in the comments every step of the way. I know Barry’s turn for the dramatic doesn’t work for everyone, so I’m curious as ever to hear your perspectives. Thanks for reading!
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(4),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(135),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,"4":4,"12":12,"124":124,"135":135}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(221),_each=require(406),Fingerprint2=require(408),DS=require(407),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(406),_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,"406":406,"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","ads.legacy":"ads.legacy","facebook.legacy":"facebook.legacy","aaa-module-mounting.legacy":"aaa-module-mounting.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();
// ]]