Larry Taylor’s review published on Letterboxd:
This review may contain spoilers.
The thing with Shyamalan, especially in this current era of his high concept, prestige B-movies he’s making, is that they all begin with a grand idea. Most of his movies are built on a setup with a story written in around it. When this works it’s awesome, no matter the scale (like Old), but when it doesn’t it’s kind of a mess. Trap is painfully the latter example.
The preposterousness of this entire setup and execution is beyond the pale, the deus ex machina devices flying out in rapid succession to the point where I thought Shyamalan was doing it “on purpose” the way he claimed he was being intentionally campy with The Happening. This is reliant on the audience glossing over a mounting series of conveniences for Hartnett to somehow make his way into the places he winds up. Almost every scene had me questioning a dozen logistical and conversational occurrences to the point where it’s exasperating. I’m all for Shyamalan’s trademark awkward dialogue and wild swings in plausibility, but this is too much. HOW DID HE GET OUT OF THE LIMO GIVE ME A BREAK!
Once they get out of the concert, which was a decent stretch of tension where Shyamalan is cooking, the life is slowly drained from the movie until it reaches every conclusion we knew it would reach. It felt like Shyamalan was in a hurry to write this after he just thought of this idea on a whim when his daughter approached him with music she recorded (her music is a bright spot).
It’s absurd and frustrating in equal parts, summed up by the stunt casting of Hayley Mills. A PARENT TRAP reference? Fuck ooooooffffff…
I’ll still be there for his next one.
' ].join(''); if ( adsScript && adsScript === 'bandsintown' && adsPlatforms && ((window.isIOS && adsPlatforms.indexOf("iOS") >= 0) || (window.isAndroid && adsPlatforms.indexOf("Android") >= 0)) && adsLocations && adsMode && ( (adsMode === 'include' && adsLocations.indexOf(window.adsLocation) >= 0) || (adsMode === 'exclude' && adsLocations.indexOf(window.adsLocation) == -1) ) ) { var opts = { artist: "", song: "", adunit_id: 100005950, div_id: "cf_async_3d2f4cf0-5c4e-49ab-841c-66263687a153" }; adUnit.id = opts.div_id; if (target) { target.insertAdjacentElement('beforeend', adUnit); } else { tag.insertAdjacentElement('afterend', adUnit); } var c=function(){cf.showAsyncAd(opts)};if(typeof window.cf !== 'undefined')c();else{cf_async=!0;var r=document.createElement("script"),s=document.getElementsByTagName("script")[0];r.async=!0;r.src="//srv.tunefindforfans.com/fruits/apricots.js";r.readyState?r.onreadystatechange=function(){if("loaded"==r.readyState||"complete"==r.readyState)r.onreadystatechange=null,c()}:r.onload=c;s.parentNode.insertBefore(r,s)}; } else { adUnit.id = 'pw-3d2f4cf0-5c4e-49ab-841c-66263687a153'; adUnit.className = 'pw-div -tile300x250 -alignleft -bottommargin'; adUnit.setAttribute('data-pw-' + (renderMobile ? 'mobi' : 'desk'), 'med_rect_btf'); if (target) { target.insertAdjacentElement('beforeend', adUnit); } else { tag.insertAdjacentElement('afterend', adUnit); } window.addEventListener('DOMContentLoaded', (event) => { adUnit.insertAdjacentHTML('afterend', kicker); window.ramp.que.push(function () { window.ramp.addTag('pw-3d2f4cf0-5c4e-49ab-841c-66263687a153'); }); }, { once: true }); } } tag.remove(); })(document.getElementById('script-3d2f4cf0-5c4e-49ab-841c-66263687a153'));
' ].join(''); if ( adsScript && adsScript === 'bandsintown' && adsPlatforms && ((window.isIOS && adsPlatforms.indexOf("iOS") >= 0) || (window.isAndroid && adsPlatforms.indexOf("Android") >= 0)) && adsLocations && adsMode && ( (adsMode === 'include' && adsLocations.indexOf(window.adsLocation) >= 0) || (adsMode === 'exclude' && adsLocations.indexOf(window.adsLocation) == -1) ) ) { var opts = { artist: "", song: "", adunit_id: 100005950, div_id: "cf_async_a0ca26a8-c5f8-42db-ab80-2167dc0cad8f" }; adUnit.id = opts.div_id; if (target) { target.insertAdjacentElement('beforeend', adUnit); } else { tag.insertAdjacentElement('afterend', adUnit); } var c=function(){cf.showAsyncAd(opts)};if(typeof window.cf !== 'undefined')c();else{cf_async=!0;var r=document.createElement("script"),s=document.getElementsByTagName("script")[0];r.async=!0;r.src="//srv.tunefindforfans.com/fruits/apricots.js";r.readyState?r.onreadystatechange=function(){if("loaded"==r.readyState||"complete"==r.readyState)r.onreadystatechange=null,c()}:r.onload=c;s.parentNode.insertBefore(r,s)}; } else { adUnit.id = 'pw-a0ca26a8-c5f8-42db-ab80-2167dc0cad8f'; adUnit.className = 'pw-div'; adUnit.setAttribute('data-pw-' + (renderMobile ? 'mobi' : 'desk'), 'sky_btf'); if (target) { target.insertAdjacentElement('beforeend', adUnit); } else { tag.insertAdjacentElement('afterend', adUnit); } window.addEventListener('DOMContentLoaded', (event) => { adUnit.insertAdjacentHTML('afterend', kicker); window.ramp.que.push(function () { window.ramp.addTag('pw-a0ca26a8-c5f8-42db-ab80-2167dc0cad8f'); }); }, { once: true }); } } tag.remove(); })(document.getElementById('script-a0ca26a8-c5f8-42db-ab80-2167dc0cad8f'));