diff --git a/app/Controllers/HomeController.php b/app/Controllers/HomeController.php
index b2f28b55e626a02de841bad3294da004f1be8399..68816c0c5467e94d8eab202eb86834c1c9a94372 100644
--- a/app/Controllers/HomeController.php
+++ b/app/Controllers/HomeController.php
@@ -13,27 +13,27 @@ namespace App\Controllers;
 use App\Models\PodcastModel;
 use CodeIgniter\HTTP\RedirectResponse;
 use Config\Services;
-use Exception;
 
 class HomeController extends BaseController
 {
     public function index(): RedirectResponse | string
     {
-        $sortOptions = ['activity', 'created_desc', 'created_asc'];
-        $sortBy = in_array($this->request->getGet('sort'), $sortOptions, true) ? $this->request->getGet(
-            'sort'
-        ) : 'activity';
-
-        try {
-            $allPodcasts = (new PodcastModel())->getAllPodcasts($sortBy);
-        } catch (Exception) {
-            // Database connection has not been set or could not find the podcasts table
+        $db = db_connect();
+        if ($db->getDatabase() === '' || ! $db->tableExists('podcasts')) {
+            // Database has not been set or could not find the podcasts table
             // Redirecting to install page because it is likely that Castopod has not been installed yet.
             // NB: as base_url wouldn't have been defined here, redirect to install wizard manually
             $route = Services::routes()->reverseRoute('install');
             return redirect()->to(rtrim(host_url(), '/') . $route);
         }
 
+        $sortOptions = ['activity', 'created_desc', 'created_asc'];
+        $sortBy = in_array($this->request->getGet('sort'), $sortOptions, true) ? $this->request->getGet(
+            'sort'
+        ) : 'activity';
+
+        $allPodcasts = (new PodcastModel())->getAllPodcasts($sortBy);
+
         // check if there's only one podcast to redirect user to it
         if (count($allPodcasts) === 1) {
             return redirect()->route('podcast-activity', [$allPodcasts[0]->handle]);