diff --git a/lib/internal/Magento/Framework/Setup/Declaration/Schema/Db/SchemaBuilder.php b/lib/internal/Magento/Framework/Setup/Declaration/Schema/Db/SchemaBuilder.php index 3395745ca4590..ba44a86045dd7 100644 --- a/lib/internal/Magento/Framework/Setup/Declaration/Schema/Db/SchemaBuilder.php +++ b/lib/internal/Magento/Framework/Setup/Declaration/Schema/Db/SchemaBuilder.php @@ -87,8 +87,22 @@ public function build(Schema $schema) if (isset($data['table'])) { foreach ($data['table'] as $keyTable => $tableColumns) { foreach ($tableColumns['column'] as $keyColumn => $columnData) { - if ($columnData['type'] == 'json') { - $tablesWithJsonTypeField[$keyTable] = $keyColumn; + try { + if ($columnData['type'] == 'json') { + $tablesWithJsonTypeField[$keyTable] = $keyColumn; + } + } catch (\Throwable $e) { + // Create a new exception with extended context message + $errorMessage = sprintf( + "%s\nError processing table %s column %s", + $e->getMessage(), + $keyTable, + $keyColumn + ); + + // Throw a new exception with the extended message + // This preserves the original error but adds our context + throw new \Exception($errorMessage, $e->getCode(), $e); } } }