diff --git a/api/libretime_api/legacy/migrations/0039_3_0_0_alpha_14_3.py b/api/libretime_api/legacy/migrations/0039_3_0_0_alpha_14_3.py
new file mode 100644
index 000000000..6e24e3aef
--- /dev/null
+++ b/api/libretime_api/legacy/migrations/0039_3_0_0_alpha_14_3.py
@@ -0,0 +1,29 @@
+# pylint: disable=invalid-name
+
+from django.db import migrations
+
+from ._migrations import legacy_migration_factory
+
+UP = """
+delete from cc_stream_setting
+where "keyname" like '%_listener_stat_error';
+"""
+
+DOWN = """
+delete from cc_pref
+where "keystr" like 'stream_stats_status:%';
+"""
+
+
+class Migration(migrations.Migration):
+    dependencies = [
+        ("legacy", "0038_3_0_0_alpha_14_2"),
+    ]
+    operations = [
+        migrations.RunPython(
+            code=legacy_migration_factory(
+                target="3.0.0-alpha.14.3",
+                sql=UP,
+            )
+        )
+    ]
diff --git a/api/libretime_api/legacy/migrations/__init__.py b/api/libretime_api/legacy/migrations/__init__.py
index d3d94c745..3e1a43621 100644
--- a/api/libretime_api/legacy/migrations/__init__.py
+++ b/api/libretime_api/legacy/migrations/__init__.py
@@ -1 +1 @@
-LEGACY_SCHEMA_VERSION = "3.0.0-alpha.14.2"
+LEGACY_SCHEMA_VERSION = "3.0.0-alpha.14.3"
diff --git a/legacy/application/controllers/ApiController.php b/legacy/application/controllers/ApiController.php
index b519e5e5d..27d7ff12d 100644
--- a/legacy/application/controllers/ApiController.php
+++ b/legacy/application/controllers/ApiController.php
@@ -1389,8 +1389,8 @@ class ApiController extends Zend_Controller_Action
             return;
         }
 
-        foreach ($data as $k => $v) {
-            Application_Model_StreamSetting::SetListenerStatError($k, $v);
+        foreach ($data as $stream_id => $status) {
+            Application_Model_Preference::SetListenerStatError($stream_id, $status);
         }
     }
 
diff --git a/legacy/application/controllers/ListenerstatController.php b/legacy/application/controllers/ListenerstatController.php
index e07cad215..3d4d7697f 100644
--- a/legacy/application/controllers/ListenerstatController.php
+++ b/legacy/application/controllers/ListenerstatController.php
@@ -41,15 +41,15 @@ class ListenerstatController extends Zend_Controller_Action
             'his_time_end' => $endsDT->format('H:i'),
         ]);
 
-        $errorStatus = Application_Model_StreamSetting::GetAllListenerStatErrors();
+        $errorStatus = Application_Model_Preference::GetAllListenerStatErrors();
         Logging::info($errorStatus);
         $out = [];
         foreach ($errorStatus as $v) {
-            $key = explode('_listener_stat_error', $v['keyname']);
-            if ($v['value'] != 'OK') {
-                $v['value'] = _('Please make sure admin user/password is correct on Settings->Streams page.');
+            $key = explode(':', $v['keystr']);
+            if ($v['valstr'] != 'OK') {
+                $v['valstr'] = _('Please make sure admin user/password is correct on Settings->Streams page.');
             }
-            $out[$key[0]] = $v['value'];
+            $out['stream ' . $key[1]] = $v['valstr'];
         }
 
         $this->view->errorStatus = $out;
diff --git a/legacy/application/models/Preference.php b/legacy/application/models/Preference.php
index 9b78a9e41..d9d0cd25f 100644
--- a/legacy/application/models/Preference.php
+++ b/legacy/application/models/Preference.php
@@ -1677,4 +1677,21 @@ class Application_Model_Preference
 
         return ($result !== false) ? $result : null;
     }
+
+    public static function GetAllListenerStatErrors()
+    {
+        $sql = <<<'SQL'
+SELECT *
+FROM cc_pref
+WHERE keystr LIKE 'stream_stats_status:%'
+SQL;
+
+        return Application_Common_Database::prepareAndExecute($sql, []);
+    }
+
+    public static function SetListenerStatError($stream_id, $value)
+    {
+        $stream_id = trim($stream_id, 's');
+        self::setValue("stream_stats_status:{$stream_id}", $value);
+    }
 }
diff --git a/legacy/application/models/StreamSetting.php b/legacy/application/models/StreamSetting.php
index 6ed30f486..7587dfa8b 100644
--- a/legacy/application/models/StreamSetting.php
+++ b/legacy/application/models/StreamSetting.php
@@ -436,29 +436,6 @@ class Application_Model_StreamSetting
         self::setValue($stream . '_admin_pass', $v, 'string');
     }
 
-    public static function GetAllListenerStatErrors()
-    {
-        $sql = 'SELECT * FROM cc_stream_setting WHERE keyname like :p1';
-        $mounts = Application_Common_Database::prepareAndExecute($sql, [':p1' => '%_mount']);
-
-        $mps = [];
-
-        foreach ($mounts as $mount) {
-            $mps[] = "'" . $mount['value'] . "_listener_stat_error'";
-        }
-
-        $in = implode(',', $mps);
-
-        $sql = "SELECT * FROM cc_stream_setting WHERE keyname IN ( {$in} )";
-
-        return Application_Common_Database::prepareAndExecute($sql, []);
-    }
-
-    public static function SetListenerStatError($key, $v)
-    {
-        self::setValue($key, $v, 'string');
-    }
-
     public static function getIcecastVorbisMetadata()
     {
         return self::getValue('icecast_vorbis_metadata', '');
diff --git a/playout/libretime_playout/stats.py b/playout/libretime_playout/stats.py
index 38ae95dad..e9c1910bd 100644
--- a/playout/libretime_playout/stats.py
+++ b/playout/libretime_playout/stats.py
@@ -122,10 +122,10 @@ class ListenerStat(Thread):
                             stats.append(mount_stats)
                     else:
                         stats.append(self.get_shoutcast_stats(v))
-                    self.update_listener_stat_error(v["mount"], "OK")
+                    self.update_listener_stat_error(k, "OK")
                 except Exception as e:
                     try:
-                        self.update_listener_stat_error(v["mount"], str(e))
+                        self.update_listener_stat_error(k, str(e))
                     except Exception as e:
                         logger.error("Exception: %s", e)
 
@@ -135,8 +135,7 @@ class ListenerStat(Thread):
         self.legacy_client.push_stream_stats(stats)
 
     def update_listener_stat_error(self, stream_id, error):
-        keyname = "%s_listener_stat_error" % stream_id
-        data = {keyname: error}
+        data = {stream_id: error}
         self.legacy_client.update_stream_setting_table(data)
 
     def run(self):