<ul><li>Fixed CRITICAL: <code>get_yahoo()</code> — <code>new Document($url, true)</code> had no try-catch; DiDom throws <code>\RuntimeException</code> on any HTTP failure (blocked bot, timeout, DNS) which propagated to outer catch in <code>checkLocalListing()</code> returning <code>code:500</code> — killing the entire response and showing zero results in UI (CRITICAL)</li><li>Fixed CRITICAL: <code>get_bing()</code> — same missing try-catch on DiDom constructor; any network failure returned code:500 (CRITICAL)</li><li>Fixed HIGH: <code>get_super_pages()</code> — caught exception returned <code>null</code>; JS skips null values so no SuperPages panel ever rendered even as "not found"; changed to return default array with score=0 (HIGH)</li><li>Fixed HIGH: <code>get_bing()</code> — <code>$h2->first("a")</code> called without null guard on <code>$h2</code>; would fatal if Bing returns results without h2 elements (HIGH)</li><li>All 11 listing functions now return valid arrays on network failure — page always renders 11 panels (found or not found) and never returns code:500 (CRITICAL)</li><li>Verified end-to-end: controller now returns code:200 with 11 listings; Yelp, Foursquare, Bing returning matches in live test</li></ul>