diff --git a/src/QUI/Bricks/Events.php b/src/QUI/Bricks/Events.php
index b3c124e3cf3b3fb59fbb953911a4b18027e07d92..9e9425f3530f6fc3ce8a3fc887b88f6601e13215 100644
--- a/src/QUI/Bricks/Events.php
+++ b/src/QUI/Bricks/Events.php
@@ -225,6 +225,8 @@ public static function onPackageSetup(QUI\Package\Package $Package)
         // unique bricks cache patch
         $projects = QUI::getProjectManager()->getProjectList();
 
+        $databaseName = QUI::getDataBase()->getAttribute('dbname');
+
         foreach ($projects as $Project) {
             $projectCacheTable = QUI::getDBProjectTableName(
                 Manager::TABLE_CACHE,
@@ -232,9 +234,19 @@ public static function onPackageSetup(QUI\Package\Package $Package)
             );
 
             try {
-                QUI::getDataBase()->fetchSQL(
-                    "`ALTER TABLE ``{$projectCacheTable}`` DROP PRIMARY KEY;`"
-                );
+                $primaryExists = QUI::getDataBase()->fetchSQL("
+                    SELECT COUNT(constraint_type) AS primary_key_count FROM information_schema.table_constraints
+                    WHERE constraint_type = 'PRIMARY KEY' 
+                    AND table_name = '{$projectCacheTable}'
+                    AND TABLE_SCHEMA = '{$databaseName}'
+                ");
+
+                $isPrimaryKeyExisting = \boolval($primaryExists[0]['primary_key_count']);
+
+                // Primary key should only be dropped if it exists
+                if ($isPrimaryKeyExisting) {
+                    QUI::getDataBase()->fetchSQL("ALTER TABLE `{$projectCacheTable}` DROP PRIMARY KEY;");
+                }
             } catch (QUI\Exception $Exception) {
                 QUI\System\Log::addInfo($Exception->getMessage());
             }