After uninstalling what was left we can jump to the database and Joomla core reinstallation menu. For that use the links below and run the appropriate functions. The database menu will show you some errors in the structure, let's fix them and hope for the best. After this run, the Joomla core update, and again, let's pray it will make some difference. After both, I have got still an issue in the database saying that I am missing a table. Well, let's add the table. Namely, the missing table was ar_finder_taxonomy. Adding a table is not a problem and we can use the queries below to do so. Adding the table helped but still not resolved everything. I had to alter a bit more other tables according to the Joomla 4 structure and as well add content to ar_workflow_stages, ar_workflow_transitions, ar_workflow_associations, and ar_workflows. I was missing the associations to the content whatsoever and it was a pain to add. However, in the end, the site was back online in the Back End and Front End.
CREATE TABLE `ar_finder_taxonomy` (
`id` int(10) UNSIGNED NOT NULL,
`parent_id` int(10) UNSIGNED NOT NULL DEFAULT 0,
`lft` int(11) NOT NULL DEFAULT 0,
`rgt` int(11) NOT NULL DEFAULT 0,
`level` int(10) UNSIGNED NOT NULL DEFAULT 0,
`path` varchar(400) NOT NULL DEFAULT '',
`title` varchar(255) NOT NULL DEFAULT '',
`alias` varchar(400) NOT NULL DEFAULT '',
`state` tinyint(3) UNSIGNED NOT NULL DEFAULT 1,
`access` tinyint(3) UNSIGNED NOT NULL DEFAULT 1,
`language` char(7) NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;.
INSERT INTO `ar_finder_taxonomy` (`id`, `parent_id`, `lft`, `rgt`, `level`, `path`, `title`, `alias`, `state`, `access`, `language`) VALUES
(1, 0, 0, 1, 0, '', 'ROOT', 'root', 1, 1, '*');
ALTER TABLE `ar_finder_taxonomy`
ADD PRIMARY KEY (`id`),
ADD KEY `idx_state` (`state`),
ADD KEY `idx_access` (`access`),
ADD KEY `idx_path` (`path`(100)),
ADD KEY `idx_level` (`level`),
ADD KEY `idx_left_right` (`lft`,`rgt`),
ADD KEY `idx_alias` (`alias`(100)),
ADD KEY `idx_language` (`language`),
ADD KEY `idx_parent_published` (`parent_id`,`state`,`access`);
ALTER TABLE `ar_finder_taxonomy`
MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
Conclusion
The upgrading process to Joomla 4 can be easy or it can be a nightmare. During this process, I would always suggest backup the site before any changes and uninstalling everything which is not compatible with the new version or can cause a problem. Next to the above, I would run the update first locally and then on a live site, you can save yourself a lot of issues with the process.
However, we know that for any problem there is a solution, it can take some time to solve but it is certainly solvable, and therefore if you will end up with a broken one, take a deep breath and fix it one by one. Good luck with the upgrade and fixing and I hope the article was useful for you.