Skip to content

[Bug]: Cannot make instance of internal class lazy #55364

@marius-wieschollek

Description

@marius-wieschollek

⚠️ This issue respects the following points: ⚠️

Bug description

Nextcloud 32 with enable_lazy_objects enabled attempts to lazy load internal PHP classes such as Random\Randomizer and crashes.

Steps to reproduce

  1. Create App with a class that has Random\Randomizer injected

or

  1. Try to run the Passwords app

Expected behavior

Classes are injected properly, no errors

Nextcloud Server version

32

Operating system

Debian/Ubuntu

PHP engine version

PHP 8.4

Web server

Nginx

Database engine version

MariaDB

Is this bug present after an update or on a fresh install?

Upgraded to a MAJOR version (ex. 31 to 32)

Are you using the Nextcloud Server Encryption module?

None

What user-backends are you using?

  • Default user-backend (database)
  • LDAP/ Active Directory
  • SSO - SAML
  • Other

Configuration report

{
    "system": {
        "memcache.local": "\\OC\\Memcache\\APCu",
        "apps_paths": [
            {
                "path": "\/var\/www\/html\/apps",
                "url": "\/apps",
                "writable": false
            },
            {
                "path": "\/var\/www\/html\/custom_apps",
                "url": "\/custom_apps",
                "writable": true
            }
        ],
        "mail_smtpmode": "smtp",
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpport": "1025",
        "mail_smtpsecure": "",
        "mail_smtpauth": false,
        "mail_smtpauthtype": "LOGIN",
        "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
        "upgrade.disable-web": true,
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "localhost",
            "passwords.local"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "mysql",
        "version": "32.0.0.13",
        "overwrite.cli.url": "https:\/\/localhost",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbtableprefix": "oc_",
        "mysql.utf8mb4": true,
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "loglevel": 0,
        "defaultapp": "passwords",
        "allow_local_remote_servers": true,
        "preview_imaginary_url": "***REMOVED SENSITIVE VALUE***",
        "preview_imaginary_key": "***REMOVED SENSITIVE VALUE***",
        "default_phone_region": "DE",
        "maintenance": false,
        "enable_lazy_objects": true
    }
}

List of activated Apps

Enabled:
  - activity: 5.0.0-dev.0
  - bruteforcesettings: 5.0.0-dev.0
  - circles: 32.0.0
  - cloud_federation_api: 1.16.0
  - comments: 1.22.0
  - contactsinteraction: 1.13.1
  - dashboard: 7.12.0
  - dav: 1.34.2
  - federatedfilesharing: 1.22.0
  - federation: 1.22.0
  - files: 2.4.0
  - files_downloadlimit: 5.0.0-dev.0
  - files_pdfviewer: 5.0.0-dev.0
  - files_reminders: 1.5.0
  - files_sharing: 1.24.0
  - files_trashbin: 1.22.0
  - files_versions: 1.25.0
  - logreader: 5.0.0-dev.0
  - lookup_server_connector: 1.20.0
  - nextcloud_announcements: 4.0.0-dev.0
  - notifications: 5.0.0-dev.0
  - oauth2: 1.20.0
  - password_policy: 4.0.0-dev.0
  - passwords: 2025.9.20
  - photos: 5.0.0-dev.1
  - privacy: 4.0.0-dev.0
  - profile: 1.1.0
  - provisioning_api: 1.22.0
  - recommendations: 5.0.0-dev.0
  - related_resources: 3.0.0-dev.0
  - serverinfo: 4.0.0-dev.0
  - settings: 1.15.1
  - sharebymail: 1.22.0
  - support: 4.0.0-dev.0
  - survey_client: 4.0.0-dev.0
  - systemtags: 1.22.0
  - text: 6.0.0-dev.0
  - theming: 2.7.0
  - twofactor_backupcodes: 1.21.0
  - updatenotification: 1.22.0
  - user_status: 1.12.0
  - viewer: 5.0.0-dev.0
  - weather_status: 1.12.0
  - webhook_listeners: 1.3.0
  - workflowengine: 2.14.0
Disabled:
  - admin_audit: 1.22.0
  - app_api: 32.0.0 (installed 32.0.0-dev.5)
  - encryption: 2.20.0
  - files_external: 1.24.0
  - firstrunwizard: 5.0.0-dev.0 (installed 5.0.0-dev.0)
  - suspicious_login: 10.0.0-dev.0
  - twofactor_nextcloud_notification: 6.0.0-dev.0
  - twofactor_totp: 14.0.0
  - user_ldap: 1.23.0

Nextcloud Signing status

No errors have been found.

Nextcloud Logs

{"reqId":"4y3B4BPrhYVEDV7Rqzed","level":3,"time":"2025-09-27T20:11:04+00:00","remoteAddr":"172.18.0.1","user":"admin","app":"index","method":"GET","url":"/apps/passwords","message":"Cannot make instance of internal class lazy: Random\\Randomizer is internal","userAgent":"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0","version":"32.0.0.13","exception":{"Exception":"Error","Message":"Cannot make instance of internal class lazy: Random\\Randomizer is internal","Code":0,"Trace":[{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":68,"function":"newLazyGhost","class":"ReflectionClass","type":"->","args":[{"__class__":"Closure"}]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":123,"function":"buildClass","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":[{"__class__":"ReflectionClass","name":"Random\\Randomizer"}]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":141,"function":"resolve","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["Random\\Randomizer"]},{"file":"/var/www/html/lib/private/ServerContainer.php","line":154,"function":"query","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["Random\\Randomizer",true]},{"file":"/var/www/html/lib/private/AppFramework/DependencyInjection/DIContainer.php","line":327,"function":"query","class":"OC\\ServerContainer","type":"->","args":["Random\\Randomizer",true]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":91,"function":"query","class":"OC\\AppFramework\\DependencyInjection\\DIContainer","type":"->","args":["Random\\Randomizer",true]},{"function":"{closure:OC\\AppFramework\\Utility\\SimpleContainer::buildClassConstructorParameters():78}","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":78,"function":"array_map","args":[{"__class__":"Closure"},[{"__class__":"ReflectionParameter","name":"logger"},"*** sensitive parameters replaced ***"]]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":73,"function":"buildClassConstructorParameters","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":[{"__class__":"ReflectionMethod","name":"__construct","class":"OCA\\Passwords\\Helper\\Uuid\\UuidHelper"}]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":123,"function":"buildClass","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":[{"__class__":"ReflectionClass","name":"OCA\\Passwords\\Helper\\Uuid\\UuidHelper"}]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":141,"function":"resolve","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["OCA\\Passwords\\Helper\\Uuid\\UuidHelper"]},{"file":"/var/www/html/lib/private/AppFramework/DependencyInjection/DIContainer.php","line":352,"function":"query","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["OCA\\Passwords\\Helper\\Uuid\\UuidHelper"]},{"file":"/var/www/html/lib/private/AppFramework/DependencyInjection/DIContainer.php","line":324,"function":"queryNoFallback","class":"OC\\AppFramework\\DependencyInjection\\DIContainer","type":"->","args":["OCA\\Passwords\\Helper\\Uuid\\UuidHelper"]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":91,"function":"query","class":"OC\\AppFramework\\DependencyInjection\\DIContainer","type":"->","args":["OCA\\Passwords\\Helper\\Uuid\\UuidHelper",true]},{"function":"{closure:OC\\AppFramework\\Utility\\SimpleContainer::buildClassConstructorParameters():78}","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":78,"function":"array_map","args":[{"__class__":"Closure"},[{"__class__":"ReflectionParameter","name":"request"},{"__class__":"ReflectionParameter","name":"userSession"},{"__class__":"ReflectionParameter","name":"mapper"},"*** sensitive parameters replaced ***",{"__class__":"ReflectionParameter","name":"logger"},{"__class__":"ReflectionParameter","name":"environment"},{"__class__":"ReflectionParameter","name":"encryption"},{"__class__":"ReflectionParameter","name":"userSettings"}]]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":73,"function":"buildClassConstructorParameters","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":[{"__class__":"ReflectionMethod","name":"__construct","class":"OCA\\Passwords\\Services\\SessionService"}]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":123,"function":"buildClass","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":[{"__class__":"ReflectionClass","name":"OCA\\Passwords\\Services\\SessionService"}]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":141,"function":"resolve","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["OCA\\Passwords\\Services\\SessionService"]},{"file":"/var/www/html/lib/private/AppFramework/DependencyInjection/DIContainer.php","line":352,"function":"query","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["OCA\\Passwords\\Services\\SessionService"]},{"file":"/var/www/html/lib/private/AppFramework/DependencyInjection/DIContainer.php","line":324,"function":"queryNoFallback","class":"OC\\AppFramework\\DependencyInjection\\DIContainer","type":"->","args":["OCA\\Passwords\\Services\\SessionService"]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":91,"function":"query","class":"OC\\AppFramework\\DependencyInjection\\DIContainer","type":"->","args":["OCA\\Passwords\\Services\\SessionService",true]},{"function":"{closure:OC\\AppFramework\\Utility\\SimpleContainer::buildClassConstructorParameters():78}","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":78,"function":"array_map","args":[{"__class__":"Closure"},[{"__class__":"ReflectionParameter","name":"request"},{"__class__":"ReflectionParameter","name":"localisation"},{"__class__":"ReflectionParameter","name":"random"},{"__class__":"ReflectionParameter","name":"logger"},"*** sensitive parameters replaced ***",{"__class__":"ReflectionParameter","name":"tokenProvider"},{"__class__":"ReflectionParameter","name":"config"},{"__class__":"ReflectionParameter","name":"environment"}]]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":73,"function":"buildClassConstructorParameters","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":[{"__class__":"ReflectionMethod","name":"__construct","class":"OCA\\Passwords\\Helper\\Token\\ApiTokenHelper"}]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":123,"function":"buildClass","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":[{"__class__":"ReflectionClass","name":"OCA\\Passwords\\Helper\\Token\\ApiTokenHelper"}]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":141,"function":"resolve","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["OCA\\Passwords\\Helper\\Token\\ApiTokenHelper"]},{"file":"/var/www/html/lib/private/AppFramework/DependencyInjection/DIContainer.php","line":352,"function":"query","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["OCA\\Passwords\\Helper\\Token\\ApiTokenHelper"]},{"file":"/var/www/html/lib/private/AppFramework/DependencyInjection/DIContainer.php","line":324,"function":"queryNoFallback","class":"OC\\AppFramework\\DependencyInjection\\DIContainer","type":"->","args":["OCA\\Passwords\\Helper\\Token\\ApiTokenHelper"]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":91,"function":"query","class":"OC\\AppFramework\\DependencyInjection\\DIContainer","type":"->","args":["OCA\\Passwords\\Helper\\Token\\ApiTokenHelper",true]},{"function":"{closure:OC\\AppFramework\\Utility\\SimpleContainer::buildClassConstructorParameters():78}","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":78,"function":"array_map","args":[{"__class__":"Closure"},[{"__class__":"ReflectionParameter","name":"request"},"*** sensitive parameters replaced ***",{"__class__":"ReflectionParameter","name":"initialState"},{"__class__":"ReflectionParameter","name":"settings"},{"__class__":"ReflectionParameter","name":"environment"},{"__class__":"ReflectionParameter","name":"notifications"},{"__class__":"ReflectionParameter","name":"setupReportHelper"},{"__class__":"ReflectionParameter","name":"challengeService"},{"__class__":"ReflectionParameter","name":"das"},{"__class__":"ReflectionParameter","name":"config"}]]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":73,"function":"buildClassConstructorParameters","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":[{"__class__":"ReflectionMethod","name":"__construct","class":"OCA\\Passwords\\Controller\\PageController"}]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":123,"function":"buildClass","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":[{"__class__":"ReflectionClass","name":"OCA\\Passwords\\Controller\\PageController"}]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":141,"function":"resolve","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["OCA\\Passwords\\Controller\\PageController"]},{"file":"/var/www/html/lib/private/AppFramework/DependencyInjection/DIContainer.php","line":352,"function":"query","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["OCA\\Passwords\\Controller\\PageController"]},{"file":"/var/www/html/lib/private/AppFramework/DependencyInjection/DIContainer.php","line":324,"function":"queryNoFallback","class":"OC\\AppFramework\\DependencyInjection\\DIContainer","type":"->","args":["OCA\\Passwords\\Controller\\PageController"]},{"file":"/var/www/html/lib/private/AppFramework/App.php","line":133,"function":"query","class":"OC\\AppFramework\\DependencyInjection\\DIContainer","type":"->","args":["OCA\\Passwords\\Controller\\PageController"]},{"file":"/var/www/html/lib/private/Route/Router.php","line":321,"function":"main","class":"OC\\AppFramework\\App","type":"::","args":["OCA\\Passwords\\Controller\\PageController","index",{"__class__":"OC\\AppFramework\\DependencyInjection\\DIContainer"},{"_route":"passwords.page.index"}]},{"file":"/var/www/html/lib/base.php","line":1061,"function":"match","class":"OC\\Route\\Router","type":"->","args":["/apps/passwords"]},{"file":"/var/www/html/index.php","line":25,"function":"handleRequest","class":"OC","type":"::","args":[]}],"File":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","Line":68,"message":"Cannot make instance of internal class lazy: Random\\Randomizer is internal","exception":[],"CustomMessage":"Cannot make instance of internal class lazy: Random\\Randomizer is internal"},"id":"68d850966ac07"}

Additional info

Changing line 64 in \OC\AppFramework\Utility\SimpleContainer::buildClass to include an isInternal check seems to fix the issue.

		if (PHP_VERSION_ID >= 80400 && self::$useLazyObjects && !$class->isInternal()) {

Issue first reported in marius-wieschollek/passwords#748

Metadata

Metadata

Assignees

No one assigned

    Labels

    0. Needs triagePending check for reproducibility or if it fits our roadmap32-feedbackbug

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions