Skip to content

PHP Fatal error after upgrade to 14.0.0 #11225

Description

@doronbehar

Steps to reproduce

  1. Upgrade to 14.0.0.
  2. restart httpd.

Expected behaviour

I don't get any errors and my Nextcloud instance works.

Actual behaviour

I get a fatal PHP error in httpd's logs:

http logs
[Fri Sep 14 17:36:59.957533 2018] [php7:error] [pid 7653] [client <>:47634] PHP Fatal error:  Uncaught OCP\\AppFramework\\QueryException: Could not resolve defaultTokenProvider! Class defaultTokenProvider does not exist in /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php:110
Stack trace:
#0 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(125): OC\\AppFramework\\Utility\\SimpleContainer->resolve('defaultTokenPro...')
#1 /usr/share/webapps/nextcloud/lib/private/ServerContainer.php(132): OC\\AppFramework\\Utility\\SimpleContainer->query('defaultTokenPro...')
#2 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(81): OC\\ServerContainer->query('defaultTokenPro...')
#3 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(104): OC\\AppFramework\\Utility\\SimpleContainer->buildClass(Object(ReflectionClass))
#4 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(125): OC\\AppFramework\\Utility\\SimpleContainer->resolve('OC\\\\Authenticati...')
#5 /usr/share/webapps/nextcl in /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php on line 11

Server configuration

  • Operating system: Arch Linux

  • Web server: Apache 2.4.34

  • Database: Postgresql

  • PHP version: 7.2.10

  • Nextcloud version: 14.0.0

  • Updated from an older Nextcloud/ownCloud or fresh install: 13.0.6

  • Where did you install Nextcloud from: Distribution repositories.

  • Signing status: I can't login as admin user into your Nextcloud and access http://example.com/index.php/settings/integrity/failed since the server doesn't work at all.

  • Running sudo -u http php occ app:list gives:

sudo -u http php occ app:list
An unhandled exception has been thrown:
OCP\AppFramework\QueryException: Could not resolve defaultTokenProvider! Class defaultTokenProvider does not exist in /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php:110
Stack trace:
#0 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(125): OC\AppFramework\Utility\SimpleContainer->resolve('defaultTokenPro...')
#1 /usr/share/webapps/nextcloud/lib/private/ServerContainer.php(132): OC\AppFramework\Utility\SimpleContainer->query('defaultTokenPro...')
#2 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(81): OC\ServerContainer->query('defaultTokenPro...')
#3 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(104): OC\AppFramework\Utility\SimpleContainer->buildClass(Object(ReflectionClass))
#4 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(125): OC\AppFramework\Utility\SimpleContainer->resolve('OC\\Authenticati...')
#5 /usr/share/webapps/nextcloud/lib/private/ServerContainer.php(132): OC\AppFramework\Utility\SimpleContainer->query('OC\\Authenticati...')
#6 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(171): OC\ServerContainer->query('OC\\Authenticati...')
#7 /usr/share/webapps/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(114): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(OC\Server))
#8 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(123): Pimple\Container->offsetGet('OC\\Authenticati...')
#9 /usr/share/webapps/nextcloud/lib/private/ServerContainer.php(132): OC\AppFramework\Utility\SimpleContainer->query('OC\\Authenticati...')
#10 /usr/share/webapps/nextcloud/lib/private/Server.php(364): OC\ServerContainer->query('OC\\Authenticati...')
#11 /usr/share/webapps/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(118): OC\Server->OC\{closure}(Object(OC\Server))
#12 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(123): Pimple\Container->offsetGet('OCP\\IUserSessio...')
#13 /usr/share/webapps/nextcloud/lib/private/ServerContainer.php(132): OC\AppFramework\Utility\SimpleContainer->query('OCP\\IUserSessio...')
#14 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(171): OC\ServerContainer->query('OCP\\IUserSessio...')
#15 /usr/share/webapps/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(114): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(OC\Server))
#16 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(123): Pimple\Container->offsetGet('UserSession')
#17 /usr/share/webapps/nextcloud/lib/private/ServerContainer.php(132): OC\AppFramework\Utility\SimpleContainer->query('UserSession')
#18 /usr/share/webapps/nextcloud/lib/private/Server.php(1408): OC\ServerContainer->query('UserSession')
#19 /usr/share/webapps/nextcloud/lib/private/Server.php(683): OC\Server->getUserSession()
#20 /usr/share/webapps/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(118): OC\Server->OC\{closure}(Object(OC\Server))
#21 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(123): Pimple\Container->offsetGet('OC\\App\\AppManag...')
#22 /usr/share/webapps/nextcloud/lib/private/ServerContainer.php(132): OC\AppFramework\Utility\SimpleContainer->query('OC\\App\\AppManag...')
#23 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(171): OC\ServerContainer->query('OC\\App\\AppManag...')
#24 /usr/share/webapps/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(114): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(OC\Server))
#25 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(123): Pimple\Container->offsetGet('AppManager')
#26 /usr/share/webapps/nextcloud/lib/private/ServerContainer.php(132): OC\AppFramework\Utility\SimpleContainer->query('AppManager')
#27 /usr/share/webapps/nextcloud/lib/private/Server.php(1703): OC\ServerContainer->query('AppManager')
#28 /usr/share/webapps/nextcloud/lib/private/legacy/app.php(342): OC\Server->getAppManager()
#29 /usr/share/webapps/nextcloud/lib/private/legacy/app.php(113): OC_App::getEnabledApps()
#30 /usr/share/webapps/nextcloud/lib/base.php(654): OC_App::loadApps(Array)
#31 /usr/share/webapps/nextcloud/lib/base.php(1070): OC::init()
#32 /usr/share/webapps/nextcloud/console.php(46): require_once('/usr/share/weba...')
#33 /usr/share/webapps/nextcloud/occ(11): require_once('/usr/share/weba...')
#34 {main}
  • Running sudo -u http php occ config:list system gives: Same result.

  • Contents of config.php:

Contents of config.php
<?php
$CONFIG = array (
  'instanceid' => '***',
  'passwordsalt' => '***',
  'secret' => '***',
  'trusted_domains' => 
  array (
    0 => 'nextcloud.doronbehar.com',
  ),
  'datadirectory' => '/usr/share/webapps/nextcloud/data',
  'overwrite.cli.url' => 'https://nextcloud.doronbehar.com/nextcloud',
  'dbtype' => 'pgsql',
  'version' => '14.0.0.19',
  'dbname' => '***',
  'dbhost' => 'localhost',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'dbuser' => 'nextcloud',
  'dbpassword' => '***',
  'installed' => true,
  'mail_from_address' => 'nextcloud-noreply',
  'mail_smtpmode' => 'php',
  'mail_smtpauthtype' => 'LOGIN',
  'mail_domain' => 'doronbehar.com',
  'theme' => '',
  'loglevel' => 2,
  'maintenance' => false,
);

  • Are you using external storage, if yes which one: no

  • Are you using encryption: no

  • Are you using an external user-backend, if yes which one: no

Client configuration

  • Browser: Any

  • Operating system: Any

Logs

Web server error log

Same as posted above:

Web server error log
[Fri Sep 14 17:36:59.957533 2018] [php7:error] [pid 7653] [client <>:47634] PHP Fatal error:  Uncaught OCP\\AppFramework\\QueryException: Could not resolve defaultTokenProvider! Class defaultTokenProvider does not exist in /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php:110
Stack trace:
#0 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(125): OC\\AppFramework\\Utility\\SimpleContainer->resolve('defaultTokenPro...')
#1 /usr/share/webapps/nextcloud/lib/private/ServerContainer.php(132): OC\\AppFramework\\Utility\\SimpleContainer->query('defaultTokenPro...')
#2 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(81): OC\\ServerContainer->query('defaultTokenPro...')
#3 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(104): OC\\AppFramework\\Utility\\SimpleContainer->buildClass(Object(ReflectionClass))
#4 /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(125): OC\\AppFramework\\Utility\\SimpleContainer->resolve('OC\\\\Authenticati...')
#5 /usr/share/webapps/nextcl in /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php on line 11

Nextcloud log (data/nextcloud.log)

Nextcloud log

I get mainly errors with strings such as:

"method":"GET",
"url":"http:\/\/54.37.204.184:80\/phpmyadmin\/",
"message":"Exception: {\"Exception\":\"Exception\",\"Message\":\"The requested uri(http:\\\/54.37.204.184:80\\\/phpmyadmin\\\/) cannot be processed by the script '\\\/nextcloud\\\/index.php')

Browser log

Irrelevant

Activity

  1. nextcloud-bot commented on Sep 14, 2018

    @nextcloud-bot
    Member

    GitMate.io thinks possibly related issues are #6299 (Fatal Errors), #1282 ( Authentication problem after upgrade to 10.0.0), #8754 (White page / Error 500 after Upgrade from Nextcloud 12.0.4 to 13 ), and #7788 (Android client unable to login via default login method (class appName does not exist)).

  2. doronbehar commented on Sep 14, 2018

    @doronbehar
    Author

    BTW I have tried to downgrade back to 13.0.6 and I still get the same errors. This lead me to conclude it be related to a recent PHP upgrade so I tried to downgrade these as well and I still get the same errors.

  3. jwrangel commented on Sep 14, 2018

    @jwrangel

    Same here.
    Centos 7.5.1804
    Apache/2.4.6 (CentOS)
    PHP 7.1.22

    [14-Sep-2018 18:18:29 UTC] PHP Fatal error:  Uncaught OCP\AppFramework\QueryException: Could not resolve defaultTokenProvider! Class defaultTokenProvider does not exist in /nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php:110
    Stack trace:
    #0 /nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(125): OC\AppFramework\Utility\SimpleContainer->resolve('defaultTokenPro...')
    #1 /nextcloud/lib/private/ServerContainer.php(132): OC\AppFramework\Utility\SimpleContainer->query('defaultTokenPro...')
    #2 /nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(81): OC\ServerContainer->query('defaultTokenPro...')
    #3 /nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(104): OC\AppFramework\Utility\SimpleContainer->buildClass(Object(ReflectionClass))
    #4 /nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(125): OC\AppFramework\Utility\SimpleContainer->resolve('OC\\Authenticati...')
    #5 /nextcloud/lib/private/Serve in /nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php on line 110
    
  4. jwrangel commented on Sep 15, 2018

    @jwrangel

    OK - It has been fixed!
    This error occured after an restore of the mysql.users table, where the nextcloud user was missing!
    After add and grand access for the nextcloud user, everythings works fine now.

  5. chris42 commented on Sep 15, 2018

    @chris42

    I get a similar error after upgrading to version 14. However server was running good for a day, now I cannot access it via frontend, nor by backend. Always get:

    ...
    2018/09/15 16:15:25 [error] 6#6: *17 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught OCP\AppFramework\QueryException: Could not resolve defaultTokenProvider! Class defaultTokenProvider does not exist in /var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php:110
    Stack trace:
    #0 /var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php(125): OC\AppFramework\Utility\SimpleContainer->resolve('defaultTokenPro...')
    #1 /var/www/html/lib/private/ServerContainer.php(132): OC\AppFramework\Utility\SimpleContainer->query('defaultTokenPro...')
    #2 /var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php(81): OC\ServerContainer->query('defaultTokenPro...')
    #3 /var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php(104): OC\AppFramework\Utility\SimpleContainer->buildClass(Object(ReflectionClass))
    #4 /var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php(125): OC\AppFramework\Utility\SimpleContainer->resolve('OC\\Authenticati...')
    #5 /var/www/html/lib/private/ServerContainer.php(132): OC\AppFramework\Utility\Simp...
    ...
    

    I checked mysql.user and user nextcloud is still available.
    I am using the official docker image with fpm (dded33639e42).

  6. doronbehar commented on Sep 15, 2018

    @doronbehar
    Author

    Thanks @jwrangel for pointing me to check on my SQL service as well, I use PostgreSQL and from some reason it fails to start on boot. Right after I restarted it everything goes back to normal so that's not a problem from Nextcloud side.

  7. chris42 commented on Sep 15, 2018

    @chris42

    Found a mysql connection error as well. Sorry for the confusion.

    Only question: Why is there not an error coming up, like "Cannot connect to DB"

  8. pjsanon commented on Sep 17, 2018

    @pjsanon

    @chris42 what kind of mysql connection error where you getting and where was it logged?
    Thank you.

  9. chris42 commented on Sep 17, 2018

    @chris42

    @pjsanon
    As said, I did not get an error in nextcloud or nginx (Or any other sensible place). Found the error in my docker setup with a container trying to connect to an IP non existent. Was lucky that I was checking IP traffic via iptables logs as trying to change some rules during that time.

  10. icewind1991 commented on Sep 21, 2018

    @icewind1991
    Member

    #11316 should help getting a meaningful error message

  11. MorrisJobke commented on Sep 27, 2018

    @MorrisJobke
    Member

    Could you apply the linked patch and check if the error message gets more helpful?

  12. chris42 commented on Sep 28, 2018

    @chris42

    @MorrisJobke you mean PR #11316 ?
    I can apply it on my test system and cut the db connection. However I do not have an upgrade scenario available.

  13. MorrisJobke commented on Sep 28, 2018

    @MorrisJobke
    Member

    @MorrisJobke you mean PR #11316 ?

    Yes.

  14. chris42 commented on Sep 29, 2018

    @chris42

    It seems to work. I get the following error when using PR #11316 and cutting the DB connection.

    Sep 29 23:54:18 docker/nginx[681]: PHP message: PHP Fatal error: Uncaught Doctrine\DBAL\DBALException: Failed to connect to the database: An exception occured in driver: SQLSTATE[HY000] [2002] Connection refused in /var/www/html/lib/private/DB/Connection.php:64

  15. MorrisJobke commented on Sep 30, 2018

    @MorrisJobke
    Member

    Sep 29 23:54:18 docker/nginx[681]: PHP message: PHP Fatal error: Uncaught Doctrine\DBAL\DBALException: Failed to connect to the database: An exception occured in driver: SQLSTATE[HY000] [2002] Connection refused in

    There is not much we can do, when the database refuses the connection. Check the forums for help with this, as this is more a setup issue then.

  16. jospoortvliet commented on Nov 20, 2018

    @jospoortvliet
    Member

    Let's close this if it is a configuration/database issue and not a bug. Feel free to re-open if you can confirm it isn't the database puking out but caused by something in Nextcloud code itself!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions