No Code Attached Yet Information Required
avatar PercyP
PercyP
10 Jul 2021

Steps to reproduce the issue

  1. Updated Joomla to version 3.10 which worked fine
  2. followed the steps here:
    https://www.joomla.org/announcements/release-news/5837-joomla-4-rc-1-and-joomla-3-10-alpha-6.html
  3. Produced an error and didn't let me log in to front or back end:

"500 Whoops, looks like something went wrong.".
Something is broken. Please let us know what you were doing when this error occurred. We will fix it as soon as possible. Sorry for any inconvenience caused.

Tried following the recommended steps to add the missing tables etc. Still didn't work.

Here is the stack trace report which hopefully means something to someone?:

Error  PrepareStatementFailureException
HTTP 500 Whoops, looks like something went wrong.
Unknown column 'm.publish_up' in 'where clause'
Exceptions 2Stack Traces 2
Joomla\Database\Exception\
PrepareStatementFailureException
in /home/testsite/public_html/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php (line 141)
        $this->statement  = $connection->prepare($query);        if (!$this->statement)        {            throw new PrepareStatementFailureException($this->connection->error, $this->connection->errno);        }    }    /**     * Replace named parameters with numbered parameters
in /home/testsite/public_html/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php -> __construct (line 1048)
     * @since   2.0.0     * @throws  PrepareStatementFailureException     */    protected function prepareStatement(string $query): StatementInterface    {        return new MysqliStatement($this->connection, $query);    }    /**     * Unlocks tables in the database.     *
in /home/testsite/public_html/libraries/vendor/joomla/database/src/DatabaseDriver.php -> prepareStatement (line 1892)
        $query->setLimit($limit, $offset);        $sql = $this->replacePrefix((string) $query);        $this->statement = $this->prepareStatement($sql);        $this->sql    = $query;        $this->limit  = (int) max(0, $limit);        $this->offset = (int) max(0, $offset);
DatabaseDriver->setQuery(object(MysqliQuery))
in /home/testsite/public_html/libraries/src/Menu/SiteMenu.php (line 155)
                )                ->bind(':currentDate2', $currentDate)                ->order($this->db->quoteName('m.lft'));            $items    = [];            $iterator = $this->db->setQuery($query)->getIterator();            foreach ($iterator as $item)            {                $items[$item->id] = new MenuItem((array) $item);            }
SiteMenu->Joomla\CMS\Menu\{closure}()
in /home/testsite/public_html/libraries/src/Cache/Controller/CallbackController.php (line 124)
        $coptions['nomodules'] = $woptions['nomodules'] ?? 1;        ob_start();        ob_implicit_flush(false);        $result = \call_user_func_array($callback, $referenceArgs);        $output = ob_get_clean();        $data = array('result' => $result);        if ($wrkarounds)
CallbackController->get(object(Closure), array(), 'd17e8e13b99b4d9bf23a7d0b83a466c3', false)
in /home/testsite/public_html/libraries/src/Menu/SiteMenu.php (line 171)
        {            /** @var CallbackController $cache */            $cache = Factory::getContainer()->get(CacheControllerFactoryInterface::class)                ->createCacheController('callback', ['defaultgroup' => 'com_menus']);            $this->items = $cache->get($loader, array(), md5(\get_class($this)), false);        }        catch (CacheExceptionInterface $e)        {            try            {
SiteMenu->load()
in /home/testsite/public_html/libraries/src/Menu/AbstractMenu.php (line 306)
     */    public function getMenu()    {        if (!$this->itemsLoaded)        {            $this->load();            foreach ($this->items as $item)            {                if ($item->home)                {
AbstractMenu->getMenu()
in /home/testsite/public_html/libraries/src/Menu/AbstractMenu.php (line 125)
     */    public function getItem($id)    {        $result = null;        if (isset($this->getMenu()[$id]))        {            $result = &$this->getMenu()[$id];        }        return $result;
AbstractMenu->getItem(null)
in /home/testsite/public_html/libraries/src/Application/SiteApplication.php (line 431)
        $menu = $this->getMenu();        $item = $menu->getActive();        if (!$item)        {            $item = $menu->getItem($this->input->getInt('Itemid', null));        }        $id = 0;        if (\is_object($item))
SiteApplication->getTemplate(true)
in /home/testsite/public_html/libraries/src/Error/Renderer/HtmlRenderer.php (line 47)
    public function render(\Throwable $error): string    {        $app = Factory::getApplication();        // Get the current template from the application        $template = $app->getTemplate(true);        // Push the error object into the document        $this->getDocument()->setError($error);        // Add registry file for the template asset
HtmlRenderer->render(object(Error))
in /home/testsite/public_html/libraries/src/Exception/ExceptionHandler.php (line 128)
            // Reset the document object in the factory, this gives us a clean slate and lets everything render properly            Factory::$document = $renderer->getDocument();            Factory::getApplication()->loadDocument(Factory::$document);            $data = $renderer->render($error);            // If nothing was rendered, just use the message from the Exception            if (empty($data))            {                $data = $error->getMessage();
ExceptionHandler::render(object(Error))
in /home/testsite/public_html/libraries/src/Exception/ExceptionHandler.php (line 71)
     * @since   3.10.0     */    public static function handleException(\Throwable $error)    {        static::logException($error);        static::render($error);    }    /**     * Render the error page based on an exception.     *
ExceptionHandler::handleException(object(Error))
in /home/testsite/public_html/libraries/src/Application/CMSApplication.php (line 299)
            );            // Trigger the onError event.            $this->triggerEvent('onError', $event);            ExceptionHandler::handleException($event->getError());        }        // Send the application response.        $this->respond();
CMSApplication->execute()
in /home/testsite/public_html/includes/app.php (line 63)
// Set the application as global app\Joomla\CMS\Factory::$application = $app;// Execute the application.$app->execute();
require_once('/home/testsite/public_html/includes/app.php')
in /home/testsite/public_html/index.php (line 32)
 * define() is used rather than "const" to not error for PHP 5.2 and lower */define('_JEXEC', 1);// Run the application - All executable code should be triggered through this filerequire_once dirname(__FILE__) . '/includes/app.php';
Error
Call to undefined method Joomla\CMS\Filesystem\File::read()

in /home/testsite/public_html/administrator/components/com_easyarticles/includes/easyarticles.php (line 79)
        if (is_null($config)) {            // Load up default configuration file            $file = EA_ADMIN_ROOT . '/defaults/configuration.json';            $defaults = JFile::read($file);            $registry = new JRegistry($defaults);            if (!defined('EA_COMPONENT_CLI')) {
EA::config()
in /home/testsite/public_html/administrator/components/com_easyarticles/includes/utils.php (line 52)
    public $errors = null;    public function __construct()    {        // EasyArticles's configuration        $this->config = EA::config();        if (!defined('EA_COMPONENT_CLI')) {            $this->doc = JFactory::getDocument();            $this->jconfig = EA::jconfig();            $this->app = JFactory::getApplication();
EasyArticles->__construct()
in /home/testsite/public_html/administrator/components/com_easyarticles/includes/acl/acl.php (line 23)
    public $userId = null;    private $adapter = array();    public function __construct($id = null)    {        parent::__construct();        if (!$id) {            $id = JFactory::getUser()->id;        }
EAAcl->__construct(1031)
in /home/testsite/public_html/administrator/components/com_easyarticles/includes/easyarticles.php (line 59)
        if (!isset($rules[$my->id])) {            include_once(__DIR__ . '/acl/acl.php');            $rules[$my->id] = new EAAcl($my->id);        }        return $rules[$my->id];    }
EA::acl()
in /home/testsite/public_html/plugins/system/easyarticles/easyarticles.php (line 40)
        parent::__construct($subject, $config);                $this->app = JFactory::getApplication();        $this->input = $this->app->input;        $this->my = JFactory::getUser();        $this->acl = EA::ACL();        $this->config = EA::config();    }    /**     * Process redirection to correctly edit the articles
PlgSystemEasyArticles->__construct(object(Dispatcher), array('type' => 'system', 'name' => 'easyarticles', 'params' => '{}', 'id' => 11958))
in /home/testsite/public_html/libraries/src/Extension/ExtensionManagerTrait.php (line 241)
        {            return new DummyPlugin($dispatcher);        }        // Instantiate the plugin        return new $className($dispatcher, (array) PluginHelper::getPlugin($type, $plugin));    }    /**     * Get the DI container.     *
CMSApplication->loadPluginFromFilesystem('easyarticles', 'system')
in /home/testsite/public_html/libraries/src/Extension/ExtensionManagerTrait.php (line 159)
                case ModuleInterface::class:                    $container->set($type, new Module(new ModuleDispatcherFactory('')));                    break;                case PluginInterface::class:                    list($pluginName, $pluginType) = explode(':', $extensionName);                    $container->set($type, $this->loadPluginFromFilesystem($pluginName, $pluginType));            }        }        $container->get(DispatcherInterface::class)->dispatch(            'onAfterExtensionBoot',
CMSApplication->loadExtension('Joomla\\CMS\\Extension\\PluginInterface', 'easyarticles:system', '/home/testsite/public_html/plugins/system/easyarticles')
in /home/testsite/public_html/libraries/src/Extension/ExtensionManagerTrait.php (line 93)
        $plugin = strtolower(str_replace('plg_', '', $plugin));        // Path to to look for services        $path = JPATH_SITE . '/plugins/' . $type . '/' . $plugin;        return $this->loadExtension(PluginInterface::class, $plugin . ':' . $type, $path);    }    /**     * Loads the extension.     *
CMSApplication->bootPlugin('easyarticles', 'system')
in /home/testsite/public_html/libraries/src/Plugin/PluginHelper.php (line 235)
            return;        }        $plugins[$hash] = true;        $plugin = Factory::getApplication()->bootPlugin($plugin->name, $plugin->type);        if ($dispatcher && $plugin instanceof DispatcherAwareInterface)        {            $plugin->setDispatcher($dispatcher);        }
PluginHelper::import(object(stdClass), true, object(Dispatcher))
in /home/testsite/public_html/libraries/src/Plugin/PluginHelper.php (line 193)
            // Get the specified plugin(s).            for ($i = 0, $t = \count($plugins); $i < $t; $i++)            {                if ($plugins[$i]->type === $type && ($plugin === null || $plugins[$i]->name === $plugin))                {                    static::import($plugins[$i], $autocreate, $dispatcher);                    $results = true;                }            }            // Bail out early if we're not using default args
PluginHelper::importPlugin('system')
in /home/testsite/public_html/libraries/src/Application/CMSApplication.php (line 714)
        // Load the behaviour plugins        PluginHelper::importPlugin('behaviour');        // Trigger the onAfterInitialise event.        PluginHelper::importPlugin('system');        $this->triggerEvent('onAfterInitialise');    }    /**     * Checks if HTTPS is forced in the client configuration.
CMSApplication->initialiseApp(array('language' => 'en-GB'))
in /home/testsite/public_html/libraries/src/Application/SiteApplication.php (line 709)
                $options['language'] = 'en-GB';            }        }        // Finish initialisation        parent::initialiseApp($options);    }    /**     * Load the library language files for the application     *
SiteApplication->initialiseApp()
in /home/testsite/public_html/libraries/src/Application/SiteApplication.php (line 224)
     * @since   3.2     */    protected function doExecute()    {        // Initialise the application        $this->initialiseApp();        // Mark afterInitialise in the profiler.        JDEBUG ? $this->profiler->mark('afterInitialise') : null;        // Route the application
SiteApplication->doExecute()
in /home/testsite/public_html/libraries/src/Application/CMSApplication.php (line 266)
            $this->sanityCheckSystemVariables();            $this->setupLogging();            $this->createExtensionNamespaceMap();            // Perform application routines.            $this->doExecute();            // If we have an application document object, render it.            if ($this->document instanceof \JDocument)            {                // Render the application output.
CMSApplication->execute()
in /home/testsite/public_html/includes/app.php (line 63)
// Set the application as global app\Joomla\CMS\Factory::$application = $app;// Execute the application.$app->execute();
require_once('/home/testsite/public_html/includes/app.php')
in /home/testsite/public_html/index.php (line 32)
 * define() is used rather than "const" to not error for PHP 5.2 and lower */define('_JEXEC', 1);// Run the application - All executable code should be triggered through this filerequire_once dirname(__FILE__) . '/includes/app.php';

Votes

# of Users Experiencing Issue
1/1
Average Importance Score
5.00

avatar PercyP PercyP - open - 10 Jul 2021
avatar joomla-cms-bot joomla-cms-bot - change - 10 Jul 2021
Labels Added: ?
avatar joomla-cms-bot joomla-cms-bot - labeled - 10 Jul 2021
avatar Fedik Fedik - change - 10 Jul 2021
The description was changed
avatar Fedik Fedik - edited - 10 Jul 2021
avatar PercyP
PercyP - comment - 10 Jul 2021

Thanks Fedik,

I am just loading another test site (didn't realise I was using an older version I got it from the Joomla news page. Will feedback how I get on

avatar brianteeman
brianteeman - comment - 10 Jul 2021

If I was to guess I would say the problem is a system plugin called easyarticles.

avatar Fedik
Fedik - comment - 10 Jul 2021

@brianteeman I did not checked the trace at first, you are right, it seems comes from com_easyarticles

@PercyP please also check that the component you using is compatible with Joomla 4,
it does not looks like Joomla 4 error

avatar zero-24
zero-24 - comment - 10 Jul 2021

I'm just curius @PercyP what does the pre upgrade checker look for you? When com_easyarticles is not compatible with Joomla 4 it should have shown you that? Specificly that easyarticles system plugin should have been shown to you before you did the upgrade right?

avatar richard67
richard67 - comment - 10 Jul 2021

If it is a system plugin and we don't have a bug with that, there should have been even shown a special div with a warning message that there are plugins which can break the site if not compatible.

avatar zero-24
zero-24 - comment - 10 Jul 2021

Yes thats why i'm asking. Its a payed extension so i can not test it myself.

avatar Quy Quy - change - 14 Jul 2021
Labels Added: Information Required
avatar Quy Quy - labeled - 14 Jul 2021
avatar Quy Quy - change - 1 Dec 2021
Status New Closed
Closed_Date 0000-00-00 00:00:00 2021-12-01 16:50:36
Closed_By Quy
Labels Added: No Code Attached Yet
Removed: ?
avatar Quy Quy - close - 1 Dec 2021
avatar Quy
Quy - comment - 1 Dec 2021

Closing due to no response with additional information.

avatar richard-keasley
richard-keasley - comment - 28 Dec 2021

I find this frustrating. I have the same problem, and I have seen references to it in other places across the internet and when someone investigates, nothing is found and the issue is marked as "closed".
I can not figure out where to start with this: I have no errors in the error log, I have followed the instructions as best as I can, yet I am left with an unusable website.
I have several Joomla sites; some of them update with no issue and others don't. I can not figure out why that can happen.
A new installation of Jooomla v4 is always fine.


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/34748.

avatar brianteeman
brianteeman - comment - 28 Dec 2021

If you have admin access then go to the global configuration and set error reporting to maximum and turn debug on.

If you dont have admin access then you will need to use ftp or your hosting provided file manager and edit the configuration.php and set

	public $debug = false;
	public $error_reporting = 'maximum';

This should reveal enough information to proceed

avatar richard-keasley
richard-keasley - comment - 29 Dec 2021

Those settings were already set (NB: public $debug = 1;).

I reverted to backup and started again, recording my efforts and the feedback I got.

The website is currently v3.10.4. Before updating

  • switch to template "protostar"
  • delete every extension that is not Authored by Joomla

re-start update process

  • first error after install is "JInstaller: :Install: Error SQL Duplicate entry '1' for key 'PRIMARY'"
  • admin dashboard shows "Unknown column 'fp.featured_up' in 'field list' "
  • most admin options are unavailable
  • front end website is not available "Unknown column 'm.publish_up' in 'where clause'"
  • /administrator/index.php?option=com_installer&view=database shows 2 problems in database (you have to know the URL for that; there's no admin menu items available)
  • click "update structure" and there's one problem remaining
  • repeat "update structure" and the problem remains

remaining database problem

  • Table 'jos_history' has the wrong type or attributes for column 'item_id' with type VARCHAR(50). (From file 4.0.0-2020-05-29.sql.)
  • Table 'jos_history' has the wrong type or attributes for column 'save_date' with type datetime. (From file 4.0.0-2020-05-29.sql.)
  • Table 'jos_finder_taxonomy' does not have index 'idx_level'. (From file 4.0.0-2021-05-30.sql.)
  • 159 database changes were checked.
  • 320 database changes did not alter table structure and were skipped.

continued repair attempt

  • components > update > "reinstall core files"
    I have no errors and no content (front end or back end). The database table content still contains the content, but all requests result in 404. There is no admin interface at all (e.g. database repair buttons).

I have put in some effort here, but I simply do not know what to do next.
Where do I start to find the problem?

My guess is the database structure has not been updated correctly, but I do not know how to go about fixing that

This problem is not unique to me; others have reported the same thing.

avatar brianteeman
brianteeman - comment - 29 Dec 2021

would it be possible to share the backup

avatar richard-keasley
richard-keasley - comment - 29 Dec 2021

Though, yes I am happy to share it.
How do I do that? (Securely)
It's an Installatron backup, so I assume it contains all passwords/ etc

avatar brianteeman
brianteeman - comment - 29 Dec 2021

or alternatively give me access to the site in its 3.x state

never used installatron so cant comment on that.

you could share the backup with me on dropbox?

avatar richard-keasley
richard-keasley - comment - 29 Dec 2021

I have just restored the backup (the site is again 3.10.4)
now... how do I go about sharing it? Happy to share the backup or allow you access (whichever you think would be best)

avatar brianteeman
brianteeman - comment - 29 Dec 2021

got it. will check this afternoon

avatar brianteeman
brianteeman - comment - 29 Dec 2021

just to confirm that I have taken a backup of your site.
and I can also confirm that the update is failing.
Currently investigating with the backup

avatar richard67
richard67 - comment - 29 Dec 2021

Let me know if it's a database thing and I can help.

avatar brianteeman
brianteeman - comment - 29 Dec 2021

so far it looks like a combination of issues

avatar brianteeman
brianteeman - comment - 29 Dec 2021

so it looked like an sql problem

Everything is as reported #34748 (comment)
chrome_2021-12-29_13-38-49

When I check the joomla_update.php logs we can see that all the sql updates do not run

image

One thing I noticed while navigating was this error
0 Call to undefined method InstallerHelper::getExtensionGroupes()

This is strange as this is a J3 method and is not present in J4 (and I have seen it reported before on the forum)

Digging into that error I can see that none of the files or folders that should be removed by the function deleteUnexistingFiles have been removed. they are all still present.

I suspect that this is the root cause

avatar richard67
richard67 - comment - 29 Dec 2021

@brianteeman It looks as if the backup from before the update contains already stuff from a previous attempt to update to J4.

Can you check if that backup already contains tables with names like "#__workflow"?

avatar chmst
chmst - comment - 29 Dec 2021

Is it really InstallerHelper::getExtensionGroupes()?

The InstallerHelper in J4 has the method getExtensionGroups()

avatar brianteeman
brianteeman - comment - 29 Dec 2021

checking

avatar brianteeman
brianteeman - comment - 29 Dec 2021

@chmst yes - and thats the name from j3

avatar richard67
richard67 - comment - 29 Dec 2021

P.S.: If that is the case, database stuff and files from a previous attempt to update to J4 are there, then a backup has been restored in past after that attempt which did not remove these files and database stuff.

The details in section "I cannot restore a Joomla 3 backup on top of Joomla 4; the site is broken." of the following page may help to solve that: https://www.akeeba.com/news/1748-joomla-3-10-and-4-0-common-issues.html?fbclid=IwAR22RBK3YcTaRme3x_VNkdlBcYTOp4I0RoIn_Fqo70OQftTa6-JwEt5XiAM

For the database stuff also the SQL in the description of this issue might help: #35664 to understand, but the previously mentioned section already tells what to do to clean up the backup of the 3.10 to have again a clean starting point for the next attempt to updater to J4.

avatar brianteeman
brianteeman - comment - 29 Dec 2021

the backup is pure j3 - no j4 files present

avatar richard67
richard67 - comment - 29 Dec 2021

Then just clean up database of that backup with the statements from issue #35664 .

avatar brianteeman
brianteeman - comment - 29 Dec 2021

no you misunderstood me

I have a backup of his site with joomla 3.10

The update fails because the j3 files are not being removed in the update process resulting in a site with j3 & j4 files

avatar richard67
richard67 - comment - 29 Dec 2021

Well if there is an SQL error during the update, the script.php stuff for removing the files does not run, as far as I know.

avatar brianteeman
brianteeman - comment - 29 Dec 2021

Might have found it - please hold

avatar brianteeman
brianteeman - comment - 29 Dec 2021

Short version

  1. The backup included the database from a failed upgrade
    This meant the the next attempt to do an upgrade failed at the sql stage as highlighted above
    Which meant that the script.php stuff doesnt run.

Slightly longer version

  1. No idea why the backup failed previously leaving the messed up database
  2. As all the sql didnt run it should not say "Your site has been updated"
  3. As the script.php has not run then it should not say "your site has been updated"

Longer version

  1. No idea
  2. Need to investigate the sql in the file that it fails at. There is nothing in the update log. Perhaps there is a ifexists or something that can be added but we need a way for the installer to make sure that all the update are run and report if they are not.
  3. As above
avatar brianteeman
brianteeman - comment - 29 Dec 2021

@richard-keasley

I reverted to backup and started again, recording my efforts and the feedback I got.

This was your problem. You reverted the files but not the database. And everything went fubar after that.

If you run the sql in #35664 on your j3 backup then you will be back to a real j3 site and the update will work

avatar brianteeman
brianteeman - comment - 29 Dec 2021

@richard67 99% i found the sql where it breaks and I have to swallow my tongue, put away my ego and suggest a change to one of those immutable sql files in order to fix at least that part of the problems. in 4.0.0.-2018-5-15.sql the workflows tables are created and the records inserted.
The problem is that the new records are inserted with an id and thats where we get the duplicates and the errors

changing
INSERT INTO `#__workflows` (`id`, `asset_id`,
to
``INSERT INTO #__workflows (`asset_id`,`
etc
would I think resolve that. Note if thats correct then other sql updates might need to be amended as well.

avatar richard67
richard67 - comment - 29 Dec 2021

@brianteeman That's one way to solve it, which in such a case would result in duplicate records when a previous attempt of an update to J4 had not been cleaned up, i.e. we would have these records twice. Not sure which one would be used in that case, the one with the lower or the one with the higher ID number.

Another way to solve it would be to just prepend these statements by a delete statement.

But we can not solve all these problems in that way.

There are things which we cannot solve because of the database checker and which will happen when we have fixed all the others: The "Error SQL Table '#__history' already exists" and the "Error SQL Duplicate column name 'extension'" in which you will run after the other things are fixed. See my comments in issue #35664 for details.

avatar richard67
richard67 - comment - 29 Dec 2021

P.S.: And that's why I did not touch the old SQL. We could solve the duplicate primary key issues in the ways described above or by extending the query in a way so the records are only inserted when not present already.

If we use the ways to insert without ID like you suggest, we would have to change hard-coded cross references to these IDs to the use of subqueries in these SQL scripts.

But anyway, solving all this will not help with such a broken update, there will remain problems which we cannot fix because of the limitations of the database checker.

avatar brianteeman
brianteeman - comment - 29 Dec 2021

yes fundamentally the problem is that when an error occurs the update process MUST not say the site has been successfully updated

avatar richard67
richard67 - comment - 29 Dec 2021

yes fundamentally the problem is that when an error occurs the update process MUST not say the site has been successfully updated

About this we can agree.

avatar brianteeman
brianteeman - comment - 29 Dec 2021

Too scared to even look at that code.

avatar richard67
richard67 - comment - 29 Dec 2021

But it could depend a bit on database drivers (or clients) ... I think I have observed in past that PDO seems to be better with error messages and error handling than the mysqli driver.

avatar richard-keasley
richard-keasley - comment - 31 Dec 2021

@richard-keasley

I reverted to backup and started again, recording my efforts and the feedback I got.

This was your problem. You reverted the files but not the database. And everything went fubar after that.

If you run the sql in #35664 on your j3 backup then you will be back to a real j3 site and the update will work

Wow! Thanks so much for helping me out. I really had no idea where to start solving this. This worked for me.

My "restore" does not delete files and tables that are not in the back-up. Any DB tables or files created after the backup was created remain untouched.

I now realise a SQL error means the installation has stalled and you have to start again.

For the next website I update, I will ensure I have a clean install of J3 to use as back-up. If I need to restore, I will drop all tables from the database beforehand to remove old entries. It may been quicker to do that this time, but I wanted to try the database clean-up method you suggested (it helps me understand).

avatar pescweb
pescweb - comment - 24 Apr 2023

Hello, can anyone help me with this situation? I've never seen this joomla 4 so complicated to update. Going into this issue similar to what I'm facing. can someone help? Go for an analysis.screen shot 2023-04-24 at 21 58 39screen shot 2023-04-24 at 21 58 41


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/34748.

avatar richard67
richard67 - comment - 24 Apr 2023

You have a k2 plugin which is not compatible with Joomla 4. Rename the folder where this plugin is located so it cannot be loaded anymore.

avatar pescweb
pescweb - comment - 25 Apr 2023

Thank you very much for your help Richard, I did as instructed and renamed the k2 plugin folder, but unfortunately it still has other errors, like:
Table 'redebrazilriders_joomla4.vf1n4_mail_templates' doesn't exist
/home/redebrazilriders/public_html/backup_rbr/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:141
If you can take a look here is the link:
https://redebrazilriders.com.br/backup_rbr/administrator/
Attached error image:
Área de TransferĂȘncia01

avatar richard67
richard67 - comment - 25 Apr 2023

@pescweb Table 'redebrazilriders_joomla4.vf1n4_mail_templates' doesn't exist ... that means the database updates have not taken place. You should restore a backup from before the update, using an empty folder and an empty database so there are no remainders left from the broken update. Then you should update or uninstall the incompatible plugin and other stuff and do again the update. If you still have problems you should ask for support in the forum https://forum.joomla.org/ or in social media (e.g. Facebook groups) but not post in a closed issue here, and also not open a new issue here because here is the place to handle bugs and features but not support requests.

Add a Comment

Login with GitHub to post a comment