{kun´ēzē}
 
(Reading time: 7 - 14 minutes)
03Apr2022

How to fix the “1054 Unknown column 'authProvider' in 'field list'” error in Joomla

Information
1042 hits Updated: 03 April 2022 Blog

Which versions of J! are affected?

What causes the “1054 Unknown column 'authProvider' in 'field list'” error?

How to fix this error.

This problem affects people who updated to J! 3.10.7 or J! 4.1.1Release date:  30 March 2022. but it may reappear in a future release after those releases were withdrawn from distribution.  In this article I will try to explain:

  1. What the J! developers were trying to achieve.
  2. How the problem can be reproduced; and
  3. How to workaround the error generated as a consequence.

What happened on 30 March 2022?

What the J! developers were trying to achieve?

Before 30 March 2022 a “low severity/high impact” security vulnerability was reported that potentially affected all “Joomla! CMS versions 2.5.0 - 3.10.6 & 4.0.0 - 4.1.0”.  While it is not possible to remedy all these old versions of J!—people should not be using J! 2.5, unsupported versions of J! 3.x or J! 4.x—nothing has been done to address this particular security vulnerabilityThe changes made in J! 3.1.7 and J! 4.1.1 were removed, see https://issues.joomla.org/tracker/joomla-cms/37405#event-676820{/footnote} the attempted change strategy was criticised that it did not address the requirementhttps://issues.joomla.org/tracker/joomla-cms/37405#event-676728 and Do not install the Joomla 4.1.1 and 3.10.7 updates..

The implementation strategy was based in two parts:  (a) change the database table structure for the table _users by adding a new column (authProvider), and (b) changes to two files—/plugins/user/joomla/joomla.php and /libraries/src/Authentication/Authentication.php.  Although the changes to the two files were reverted in subsequent fix versions, the database structural changes were kept.  This was an unusual strategy, that is, changing the database as part of a “dot-point” release instead of doing this as a new minor release and there was vigorous debate about that approachsee https://forum.joomla.org/viewtopic.php?f=9&t=992878.

On 31 March the file changes were reverted with the releases ofJ! 3.1.8 and J! 4.1.2.  Using these newer releases should not normally result in the “1054 Unknown column 'authProvider' in 'field list'” error.

How reproduce the error?

After update Joomla 3.10.6 to 3.10.7

1054 Unknown column 'authProvider' in 'field list' an error appears in the administration panel.

The front page works.  What is the cause and how can I fix it?  I can’t do anything in the admin panel.forum user, Joomla Forum, 30-Mar-2022

This begs the question, “How did this person update from J! 3.10.6 to J! 3.10.7 in the first place?”

We have known for a long time that some people update from one version of Joomla to by replacing the files in the website file system with newer versions of those files extracted from J! update/patch distribution packages.  That is, they go to the Joomla downloads page, locate the file named ”Joomla! 3.10.x to 3.10.n Patch Package (.zip)” and download it, extract all the files from this package and replace the files they are currently using with their existing website.  This approach has often been referred to as Updating Joomla (Manual method) and has not been used since J! 1.5.  This “manual method” does not work as we shall see later.

As I have written before, the only recommended method people should use to update Joomla is to use the Joomla! Update component.

The Joomla! Update component performs a number of tasks. Firstly, it uses the update package file we have discussed earlier and, secondly, as a final stage in the procedure, it [potentially] performs database changes associated with the update.  The final stage looks for the file /administrator/components/com_admin/script.php and executes any instructions contained in it.  This is discussed in more detail on the Joomla forum here:  What triggers the execution of /administrator/components/com_admin/script.php? If, for some reason, the Joomla! Update procedure is not used or if it fails to execute the final stage properly it can result in corrupted websites, errors and problems later.

ucaP 01Let's demonstrate how this “manual method” causes the unknown column error in J! 3.10.7.  We will begin by creating a brand new J! 3.10.6 website (the image at the right is a screenshot of the backend of a J! 3.10.6 website with a few parts removed for demonstration purposes; click to enlarge it).  I created this website today and you will see that there's a notice about updating to J! 3.10.8.  We will ignore this notice and “update” the CMS to J! 3.10.7 by replacing the existing J! 3.10.6 files with those extracted from the J! 3.10.7 update package.

ucaP 01After “updating”—that is, replacing the files—the backend now displays “J! 3.10.7” at the bottom of the screen (the image at the right is a screenshot of the backend of the site; click to enlarge it).  Note:  I did not logout between the when the site was at J! 3.10.6 and now.  Everything appears to be normal and you can carry on as if nothing major has happened … until you logout and try to login again as the next screenshot will show.  So let's do that.

ucaP 03

Oh dear! What's happened? How can I login again?

How to login again?

phpMyAdmin screen showing _users table.  Note the location of the Add column feature at the bottom of the screen.Fortunately there is a workaround that will let you login to your J! website if you see the error message above. It involves making a small change to the _users table (by adding the missing column) and then you can login again and fix things properly.  The change involves using phpMyAdmin but, if you are uncomfortable using this tool then it would be better to go back J! 3.10.6 and use the Joomla! Update component instead of the “manual method” I used above.

Look closely at the image on the right (click to enlarge it) and you will see that the structure of the _users table does not have a column named authProvider.  The solution is to add that field.

If you are skilled in writing SQL queries, it is easy enough to write an ALTER TABLE statementALTER TABLE `#__users` ADD COLUMN `authProvider` VARCHAR(100) NOT NULL DEFAULT '' COMMENT 'Name of used authentication plugin'; and execute it, but I will show you an easier way to generate the required SQL query.  Look at the bottom of the screenshot where it says “Add 1 column(s)” and a Go button.  Press the Go button.

phpMyAdmin screen showing details to be completed when adding the authProvider columnNow look at the image on the left of the screen (click to enlarge it) and complete the details for the new column that you are going to add:

  1. The name of the new column is authProvider
  2. The type is VARCHAR
  3. The length is 100

Press the Go button again and the change has been made.

Now you can go back to your website and login again.

We're not quite finished yet but you should be able to go back to your website backend and login again.  After you login, go to Extensions » Manage » Database and you will probably see messages that indicate the database tables need to be fixed.  Press the Fix button on the top left of that screen and you should now how a working J! 3.10.7 website.  Your next activity is to backup your website and use the Joomla! Update component to update your current version to the later supported release.

About the author:

has worked in the information technology industry since 1971 and, since retiring from the workforce in 2007, is a website hobbyist specialising in Joomla, a former member of the Kunena project for more than 8 years, and contributor on The Joomla Forum™. The opinions expressed in this article are entirely those of the author. View his profile here.


No thoughts on “How to fix the “1054 Unknown column 'authProvider' in 'field list'” error in Joomla”

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive
 
Trending now