Hello,
I tried to upgrade from 10.0.12 to 10.1.1 through Administration > Upgrade and it failed during the second rebuild step. The instance was automatically restored to 10.0.12 and works normally.
Package: EspoCRM-upgrade-10.0.12-to-10.1.1.zip
Environment
- EspoCRM 10.0.12 (before) -> 10.1.1 (target)
- OVH shared hosting, no SSH / no CLI access, so the UI upgrade was my only option
- MySQL 8.4
- PHP version: 8.3.36
- Custom code only under custom/ and client/custom/ (no DBAL usage in it)
- Before the upgrade: vendor/doctrine/dbal was 3.10.4 (after the automatic restore it is 3.10.4 again, so the files look clean)
What the log shows (OPcache warnings removed, paths shortened)
[07:23:11] INFO: Installation process: Start "init" step.
[07:23:45] INFO: Start "rebuild" step. -> End "rebuild" step (before the copy)
[07:23:46] INFO: Start "copy" step. [07:24:11] End "copy" step.
[07:24:11] INFO: Start "rebuild" step.
[07:24:11] ERROR: (0) Failed to rebuild database schema. Doctrine\DBAL\Schema\ColumnDiff::__construct(): Argument #1 ($oldColumn) must be of type Doctrine\DBAL\Schema\Column, string given, called in /…/vendor/doctrine/dbal/src/Schema/Comparator.php on line 358; /…/vendor/doctrine/dbal/src/Schema/ColumnDiff.php:17
[07:24:11] ERROR: (500) Database rebuild failure, details: Error while rebuilding database.
[07:24:11] INFO: Installer: Restore previous files.
[07:24:36] ERROR: (500) Error occurred while EspoCRM rebuild. POST /Admin/action/runUpgrade
My interpretation (well, Claude interpretation, please correct if wrong)
The error looks like a mix of DBAL 3 and DBAL 4: Comparator calls ColumnDiff with a column name (DBAL 3 API), while ColumnDiff expects a Column object (DBAL 4 API). Since the first rebuild step runs before the files are copied, I suspect the old Comparator class (DBAL 3) was already loaded in memory when the new files (DBAL 4) were copied, and the second rebuild then ran in the same web process. If so, upgrading 10.0.x -> 10.1.x from the UI would fail for any instance that cannot use the CLI.
Questions
1. Is this a known issue with the 10.1 upgrade package?
2. Is there a recommended workaround for hosting without console access (for example a manual upgrade procedure)? The upgrade documentation does not describe one for this case.
3. Would it help to wait for 10.1.2?
I can provide the full log if needed. Thank you!
I tried to upgrade from 10.0.12 to 10.1.1 through Administration > Upgrade and it failed during the second rebuild step. The instance was automatically restored to 10.0.12 and works normally.
Package: EspoCRM-upgrade-10.0.12-to-10.1.1.zip
Environment
- EspoCRM 10.0.12 (before) -> 10.1.1 (target)
- OVH shared hosting, no SSH / no CLI access, so the UI upgrade was my only option
- MySQL 8.4
- PHP version: 8.3.36
- Custom code only under custom/ and client/custom/ (no DBAL usage in it)
- Before the upgrade: vendor/doctrine/dbal was 3.10.4 (after the automatic restore it is 3.10.4 again, so the files look clean)
What the log shows (OPcache warnings removed, paths shortened)
[07:23:11] INFO: Installation process: Start "init" step.
[07:23:45] INFO: Start "rebuild" step. -> End "rebuild" step (before the copy)
[07:23:46] INFO: Start "copy" step. [07:24:11] End "copy" step.
[07:24:11] INFO: Start "rebuild" step.
[07:24:11] ERROR: (0) Failed to rebuild database schema. Doctrine\DBAL\Schema\ColumnDiff::__construct(): Argument #1 ($oldColumn) must be of type Doctrine\DBAL\Schema\Column, string given, called in /…/vendor/doctrine/dbal/src/Schema/Comparator.php on line 358; /…/vendor/doctrine/dbal/src/Schema/ColumnDiff.php:17
[07:24:11] ERROR: (500) Database rebuild failure, details: Error while rebuilding database.
[07:24:11] INFO: Installer: Restore previous files.
[07:24:36] ERROR: (500) Error occurred while EspoCRM rebuild. POST /Admin/action/runUpgrade
My interpretation (well, Claude interpretation, please correct if wrong)
The error looks like a mix of DBAL 3 and DBAL 4: Comparator calls ColumnDiff with a column name (DBAL 3 API), while ColumnDiff expects a Column object (DBAL 4 API). Since the first rebuild step runs before the files are copied, I suspect the old Comparator class (DBAL 3) was already loaded in memory when the new files (DBAL 4) were copied, and the second rebuild then ran in the same web process. If so, upgrading 10.0.x -> 10.1.x from the UI would fail for any instance that cannot use the CLI.
Questions
1. Is this a known issue with the 10.1 upgrade package?
2. Is there a recommended workaround for hosting without console access (for example a manual upgrade procedure)? The upgrade documentation does not describe one for this case.
3. Would it help to wait for 10.1.2?
I can provide the full log if needed. Thank you!

Comment