• I just upgraded from PHP 7.4 to PHP 8.1 and Query Monitor 3.11.0 started throwing numerous Uncaught Error: Class “QM_Component” not found errors.

    I’m on WordPress 6.1.1 and WooCommerce 7.2.2. The QM plugin may be sensing some other root cause issue on my site with respect to the PHP 8.1 upgrade, but regardless, can you be more robust and catch the error in the plugin and not throw a critical fault?

    Note, this error occurs when I attempt to “Visit Site” from the WordPress administrator menu. It’s a bit disconcerting to see the error trace message show on the screen as this is (almost) a “white screen of death”.

    Thanks for your help looking into this issue.

    The text from the WooCommerce log files follows:

    2023-01-02T20:13:13+00:00 CRITICAL Uncaught Error: Class "QM_Component" not found in /home/wmiles/.../wp-content/plugins/query-monitor/classes/Util.php:312
    Stack trace:
    #0 /home/wmiles/.../wp-content/plugins/query-monitor/classes/Backtrace.php(275): QM_Util::get_file_component('/home/wmiles/br...')
    #1 /home/wmiles/.../wp-content/plugins/query-monitor/classes/Backtrace.php(209): QM_Backtrace::get_frame_component(Array)
    #2 /home/wmiles/.../wp-content/plugins/query-monitor/collectors/php_errors.php(280): QM_Backtrace->get_component()
    #3 /home/wmiles/.../wp-content/plugins/query-monitor/vendor/composer/ClassLoader.php(578): QM_Collector_PHP_Errors->error_handler(8192, 'Return type of ...', '/home/wmiles/br...', 60)
    #4 /home/wmiles/.../wp-content/plugins/query-monitor/vendor/composer/ClassLoader.php(578): include('/home/wmiles/br...')
    #5 /home/wmiles/.../wp-content/plugins/query-monitor/vendor/composer/ClassLoader.php(432): Composer\Autoload\ClassLoader::Composer\Autoload\{closure}('/home/wmiles/br...')
    #6 /home/wmiles/.../wp-content/plugins/query-monitor/classes/Util.php(312): Composer\Autoload\ClassLoader->loadClass('QM_Component')
    #7 /home/wmiles/.../wp-content/plugins/query-monitor/classes/Util.php(414): QM_Util::get_file_component('/home/wmiles/br...')
    #8 /home/wmiles/.../wp-content/plugins/query-monitor/classes/Hook.php(40): QM_Util::populate_callback(Array)
    #9 /home/wmiles/.../wp-content/plugins/query-monitor/collectors/hooks.php(64): QM_Hook::process('registered_taxo...', Array, true, false)
    #10 /home/wmiles/.../wp-content/plugins/query-monitor/classes/Collectors.php(84): QM_Collector_Hooks->process()
    #11 /home/wmiles/.../wp-content/plugins/query-monitor/classes/Dispatcher.php(108): QM_Collectors->process()
    #12 /home/wmiles/.../wp-content/plugins/query-monitor/dispatchers/REST.php(40): QM_Dispatcher->get_outputters('headers')
    #13 /home/wmiles/.../wp-includes/class-wp-hook.php(308): QM_Dispatcher_REST->filter_rest_post_dispatch(Object(WP_REST_Response), Object(WP_REST_Server), Object(WP_REST_Request))
    #14 /home/wmiles/.../wp-includes/plugin.php(205): WP_Hook->apply_filters(Object(WP_REST_Response), Array)
    #15 /home/wmiles/.../wp-includes/rest-api/class-wp-rest-server.php(465): apply_filters('rest_post_dispa...', Object(WP_REST_Response), Object(WP_REST_Server), Object(WP_REST_Request))
    #16 /home/wmiles/.../wp-includes/rest-api.php(410): WP_REST_Server->serve_request('/wc-admin/optio...')
    #17 /home/wmiles/.../wp-includes/class-wp-hook.php(308): rest_api_loaded(Object(WP))
    #18 /home/wmiles/.../wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters(NULL, Array)
    #19 /home/wmiles/.../wp-includes/plugin.php(565): WP_Hook->do_action(Array)
    #20 /home/wmiles/.../wp-includes/class-wp.php(399): do_action_ref_array('parse_request', Array)
    #21 /home/wmiles/.../wp-includes/class-wp.php(780): WP->parse_request('')
    #22 /home/wmiles/.../wp-includes/functions.php(1332): WP->main('')
    #23 /home/wmiles/.../wp-blog-header.php(16): wp()
    #24 /home/wmiles/bronzeart.ca/index.php(17): require('/home/wmiles/br...')
    #25 {main}
      thrown in /home/wmiles/.../wp-content/plugins/query-monitor/classes/Util.php on line 312
    

Viewing 15 replies - 1 through 15 (of 15 total)
  • Plugin Author John Blackbourn

    (@johnbillion)

    WordPress Core Developer

    Thanks for the report. Does the same error appear if you switch back to PHP 7.4? I can’t think of anything in the plugin that would cause that error that’s specific to the PHP version.

    Could you provide a list of the plugins and their versions that are active on your site?

    Thread Starter wmiles

    (@wmiles)

    I don’t think your plugin is the root cause of the problem. But, it probably shouldn’t blow up, which is mostly the concern.

    I have deactivated and reactivated the QM plugin and even deleted and reinstalled, to no effect. The problem returns when the plugin is active.

    I should state, that when deleted and reinstalled, when I went to “Visit Site” the first time, it worked. When I went back to administrator mode and tried to “Visit Site” a second time, the Uncaught Error on class QM_Component returned.

    Before the upgrade I was running on PHP 7.4 with your plugin active with no issues. I’ll drop back and retry the upgrade and report back tomorrow.

    Before the upgrade, I did look at my plugins and upgraded to WordPress supported versions where I could. I also ran my theme and other non-current plugin code through Composer and “squizlabs/php_codesniffer” to check for PHP 8.2 compatibility issues. Everything seemed clean except for some old MCRYPT code in Captcha by BestWebSoft that’s been outdated since PHP 7.1 and is no longer executed by their plugin.

    Current plugins:

    Active plugins (21)
    Captcha by BestWebSoft 	  	by BestWebSoft – 5.1.7
    Classic Editor 	  	by WordPress Contributors – 1.6.2
    Classic Widgets 	  	by WordPress Contributors – 0.3
    Enable Media Replace 	  	by ShortPixel – 4.0.1
    EWWW Image Optimizer 	  	by Exactly WWW – 6.9.3
    Force Regenerate Thumbnails 	  	by Exactly WWW – 2.1.1
    GazChap's WooCommerce Auto Category Product Thumbnails 	  	by Gareth 'GazChap' Griffiths – 1.4
    iframe 	  	by webvitaly – 4.5
    Shipping Canada Post WooCommerce 	  	by Jeremy Carter and Daphne Volante – 0.2.0
    Sticky Menu (or Anything!) on Scroll 	  	by WebFactory Ltd – 2.32
    W3 Total Cache 	  	by BoldGrid – 2.2.9
    Woo Empty Cart Button 	  	by WPCodelibrary – 1.4.0
    Captcha for WooCommerce 	  	by William Miles – 5.1.7
    WooCommerce PayPal Payments 	  	by WooCommerce – 2.0.1
    WooCommerce Square 	  	by WooCommerce – 3.4.2
    WooCommerce 	  	by Automattic – 7.2.2
    WooSidebars 	  	by WooCommerce – 1.4.6
    Yoast SEO 	  	by Team Yoast – 19.13
    WP Crontrol 	  	by John Blackbourn & contributors – 1.15.1
    WP Mail SMTP 	  	by WPForms – 3.7.0
    XML Sitemap & Google News 	  	by RavanH – 5.3.3 
    Thread Starter wmiles

    (@wmiles)

    So, I reverted back to PHP 7.4 and everything worked. I upgraded again to PHP 8.1 and the Uncaught Error: Class “QM_Component” returned.

    I can say that the problem is intermittent, it doesn’t occur on all transitions to “Visit Site”, but the error will typically show up after a number of repeated transitions into the administrator console and back to the site.

    I was not able to isolate the issue to any one plugin after deactivation and testing. Not all plugins were tested, but I did test all suspect ones that are not common or standard WordPress or WooCommerce extensions.

    When on my site testing pages I did observe that QM at times did not populate any results in the “Query Monitor” tab on the WordPress toolbar at the top of the screen. No dropdown menu showed. At other times the Query Monitor tab would show actual results.

    Note that when logged in to my site and testing (as administrator) no caching of pages or minification of Javascript or CSS is being performed (W3-Total-Cache). Object caching is still happening.

    So, I don’t know what the problem can be? I’ll leave it with you, as I continue to validate my PHP 8.1 upgrade.

    Thanks for your help.

    Plugin Author John Blackbourn

    (@johnbillion)

    WordPress Core Developer

    I’ve been digging into this a bit and it seems to be caused if the Composer class autoloader triggers a PHP error. This prevents the QM_Component class from being loaded. I’ll continue investigating.

    Thread Starter wmiles

    (@wmiles)

    Thank you for looking into this. Knowing you are investigating, I reinstalled your QM plugin to confirm that the failure still exists. It does. It occurred on the 8th attempt to transition to my site from administrator mode. After this, the error continually showed in the Woocommerce log files.

    I then de-activated your plugin and re-activated it, at which time the plugin failed on activation. The trace logs from the activation failure follow. Note, this trace show a failure on a PHP str_replace() function that may point to the issue?

    I then de-installed your plugin and re-installed it. After this, I was then unable to recreate the error by swapping back and forth from administrator view to my site, until such time as I performed a logout from my site, at which time the error appeared.

    I am running on PHP 8.1 now without issues. Your plugin is the only one that fails. So, I’m baffled?

    2023-02-01T03:08:57+00:00 CRITICAL Uncaught Error: Class "QM_Component" not found in /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Util.php:312
    Stack trace:
    #0 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(275): QM_Util::get_file_component('/home/wmiles/br...')
    #1 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(209): QM_Backtrace::get_frame_component(Array)
    #2 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php(272): QM_Backtrace->get_component()
    #3 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/ewww-image-optimizer/vendor/composer/ClassLoader.php(571): QM_Collector_PHP_Errors->error_handler(8192, 'Return type of ...', '/home/wmiles/br...', 60)
    #4 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/ewww-image-optimizer/vendor/composer/ClassLoader.php(571): include('/home/wmiles/br...')
    #5 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/ewww-image-optimizer/vendor/composer/ClassLoader.php(428): Composer\Autoload\includeFile('/home/wmiles/br...')
    #6 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Util.php(312): Composer\Autoload\ClassLoader->loadClass('QM_Component')
    #7 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(275): QM_Util::get_file_component('/home/wmiles/br...')
    #8 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(209): QM_Backtrace::get_frame_component(Array)
    #9 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php(272): QM_Backtrace->get_component()
    #10 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php(100): QM_Collector_PHP_Errors->error_handler(8192, 'str_replace(): ...', '/home/wmiles/br...', 2162, NULL, false)
    #11 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Collectors.php(39): QM_Collector_PHP_Errors->set_up()
    #12 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php(563): QM_Collectors::add(Object(QM_Collector_PHP_Errors))
    #13 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/QueryMonitor.php(48): include_once('/home/wmiles/br...')
    #14 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/query-monitor.php(82): QueryMonitor->set_up()
    #15 /home/wmiles/bronzeart.ca/wordpress/wp-admin/includes/plugin.php(2314): include_once('/home/wmiles/br...')
    #16 /home/wmiles/bronzeart.ca/wordpress/wp-admin/includes/plugin.php(661): plugin_sandbox_scrape('query-monitor/q...')
    #17 /home/wmiles/bronzeart.ca/wordpress/wp-admin/plugins.php(58): activate_plugin('query-monitor/q...', 'https://www.bro...', false)
    #18 {main}
      thrown in /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Util.php on line 312
    
    2023-02-01T03:08:58+00:00 CRITICAL Uncaught Error: Class "QM_Component" not found in /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Util.php:312
    Stack trace:
    #0 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(275): QM_Util::get_file_component('/home/wmiles/br...')
    #1 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(209): QM_Backtrace::get_frame_component(Array)
    #2 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php(272): QM_Backtrace->get_component()
    #3 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/ewww-image-optimizer/vendor/composer/ClassLoader.php(571): QM_Collector_PHP_Errors->error_handler(8192, 'Return type of ...', '/home/wmiles/br...', 60)
    #4 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/ewww-image-optimizer/vendor/composer/ClassLoader.php(571): include('/home/wmiles/br...')
    #5 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/ewww-image-optimizer/vendor/composer/ClassLoader.php(428): Composer\Autoload\includeFile('/home/wmiles/br...')
    #6 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Util.php(312): Composer\Autoload\ClassLoader->loadClass('QM_Component')
    #7 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(275): QM_Util::get_file_component('/home/wmiles/br...')
    #8 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(209): QM_Backtrace::get_frame_component(Array)
    #9 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php(272): QM_Backtrace->get_component()
    #10 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php(100): QM_Collector_PHP_Errors->error_handler(8192, 'str_replace(): ...', '/home/wmiles/br...', 2162, NULL, false)
    #11 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Collectors.php(39): QM_Collector_PHP_Errors->set_up()
    #12 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php(563): QM_Collectors::add(Object(QM_Collector_PHP_Errors))
    #13 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/QueryMonitor.php(48): include_once('/home/wmiles/br...')
    #14 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/query-monitor.php(82): QueryMonitor->set_up()
    #15 /home/wmiles/bronzeart.ca/wordpress/wp-admin/includes/plugin.php(2314): include_once('/home/wmiles/br...')
    #16 /home/wmiles/bronzeart.ca/wordpress/wp-admin/plugins.php(192): plugin_sandbox_scrape('query-monitor/q...')
    #17 {main}
      thrown in /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Util.php on line 312
    
    2023-02-01T03:08:58+00:00 CRITICAL Uncaught Error: Class "QM_Component" not found in /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Util.php:312
    Stack trace:
    #0 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(275): QM_Util::get_file_component('/home/wmiles/br...')
    #1 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(209): QM_Backtrace::get_frame_component(Array)
    #2 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php(272): QM_Backtrace->get_component()
    #3 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/ewww-image-optimizer/vendor/composer/ClassLoader.php(571): QM_Collector_PHP_Errors->error_handler(8192, 'Return type of ...', '/home/wmiles/br...', 60)
    #4 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/ewww-image-optimizer/vendor/composer/ClassLoader.php(571): include('/home/wmiles/br...')
    #5 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/ewww-image-optimizer/vendor/composer/ClassLoader.php(428): Composer\Autoload\includeFile('/home/wmiles/br...')
    #6 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Util.php(312): Composer\Autoload\ClassLoader->loadClass('QM_Component')
    #7 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(275): QM_Util::get_file_component('/home/wmiles/br...')
    #8 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(209): QM_Backtrace::get_frame_component(Array)
    #9 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php(272): QM_Backtrace->get_component()
    #10 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php(100): QM_Collector_PHP_Errors->error_handler(8192, 'str_replace(): ...', '/home/wmiles/br...', 2162, NULL, false)
    #11 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Collectors.php(39): QM_Collector_PHP_Errors->set_up()
    #12 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php(563): QM_Collectors::add(Object(QM_Collector_PHP_Errors))
    #13 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/QueryMonitor.php(48): include_once('/home/wmiles/br...')
    #14 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/query-monitor.php(82): QueryMonitor->set_up()
    #15 /home/wmiles/bronzeart.ca/wordpress/wp-admin/includes/plugin.php(2314): include_once('/home/wmiles/br...')
    #16 /home/wmiles/bronzeart.ca/wordpress/wp-admin/plugins.php(192): plugin_sandbox_scrape('query-monitor/q...')
    #17 {main}
      thrown in /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Util.php on line 312
    
    
    Plugin Author John Blackbourn

    (@johnbillion)

    WordPress Core Developer

    @wmiles The cause here is the “Return type of …” PHP error that’s being triggered inside the autoloader (stack frame #3 in each of your logs). Is there a way you’re able to get the full error message? For example, is there a configuration for WooCommerce to log the full message instead of truncating it? Or is the same error logged in the PHP error log in your server logs?

    Thread Starter wmiles

    (@wmiles)

    I don’t know why WooCommerce truncates the message? I can check the raw server logs for further information, if such PHP information exists, but it will be tomorrow before I can get to this. I also don’t know if I can re-create the error on activation.

    I will reply tomorrow.

    Thread Starter wmiles

    (@wmiles)

    The reason you have trace message parameters truncated to 15 characters in the log file is due to a new configuration parameter in php.ini :

    “zend.exception_string_param_max_len” default value “15”

    This parameter was introduced in PHP 8.0.0. See https://www.php.net/manual/en/ini.core.php

    I changed my server configuration to specify a 200 character value for this parameter for a new trace, but sadly I now seem unable to recreate the fault. Isn’t this always the way things happen?

    You might want to check if you can use ini_set() to change this value when your plugin runs?

    I’ll keep testing with your plugin for a while and post again if I see a new fault.

    Thread Starter wmiles

    (@wmiles)

    I caught another failure incident today. The trace follows.

    To explain, I discovered today that I had messed up my update to php.ini for the “zend.exception_string_param_max_len” parameter. As a result of this, PHP Opcode cache on my PHP 8.1 was no longer operational. Both your plugin and W3TC reported this condition. For the two days while this condition was in place I have been unable to recreate the fault.

    Recognizing my error I corrected my php.ini update and confirmed with phpinfo.php that the “zend.exception_string_param_max_len” was now set to 200 characters, Your plugin and W3TC both now confirmed that “Zend OPcache” was now recognized and Opcode caching was operational. Then, within one minute of testing your plugin failed.

    I don’t know if the Opcode cache is related to the failure?

    I will keep testing and post again if I discover something new.

    2023-02-04T21:35:01+00:00 CRITICAL Uncaught Error: Class "QM_Component" not found in /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Util.php:312
    Stack trace:
    #0 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(275): QM_Util::get_file_component('/home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/woocommerce-square/vendor/woocommerce/action-scheduler/classes/ActionScheduler_DateTime.php')
    #1 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(209): QM_Backtrace::get_frame_component(Array)
    #2 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php(272): QM_Backtrace->get_component()
    #3 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/vendor/composer/ClassLoader.php(578): QM_Collector_PHP_Errors->error_handler(8192, 'Return type of ActionScheduler_DateTime::setTimezone($timezone) should either be compatible with DateTime::setTimezone(DateTimeZone $timezone): DateTime, or the #[\\ReturnTypeWillChange] attribute shou...', '/home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/woocommerce-square/vendor/woocommerce/action-scheduler/classes/ActionScheduler_DateTime.php', 60)
    #4 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/vendor/composer/ClassLoader.php(578): include('/home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php')
    #5 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/vendor/composer/ClassLoader.php(432): Composer\Autoload\ClassLoader::Composer\Autoload\{closure}('/home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/vendor/composer/../../classes/QM_Component.php')
    #6 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Util.php(312): Composer\Autoload\ClassLoader->loadClass('QM_Component')
    #7 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(275): QM_Util::get_file_component('/home/wmiles/bronzeart.ca/wordpress/wp-includes/global-styles-and-settings.php')
    #8 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(209): QM_Backtrace::get_frame_component(Array)
    #9 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/transients.php(91): QM_Backtrace->get_component()
    #10 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/transients.php(59): QM_Collector_Transients->setted_transient('global_styles_mystile-child', 'blog', 'body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2...', 60)
    #11 /home/wmiles/bronzeart.ca/wordpress/wp-includes/class-wp-hook.php(308): QM_Collector_Transients->action_setted_blog_transient('global_styles_mystile-child', 'body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2...', 60)
    #12 /home/wmiles/bronzeart.ca/wordpress/wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters('', Array)
    #13 /home/wmiles/bronzeart.ca/wordpress/wp-includes/plugin.php(517): WP_Hook->do_action(Array)
    #14 /home/wmiles/bronzeart.ca/wordpress/wp-includes/option.php(1022): do_action('setted_transient', 'global_styles_mystile-child', 'body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2...', 60)
    #15 /home/wmiles/bronzeart.ca/wordpress/wp-includes/global-styles-and-settings.php(157): set_transient('global_styles_mystile-child', 'body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2...', 60)
    #16 /home/wmiles/bronzeart.ca/wordpress/wp-includes/script-loader.php(2434): wp_get_global_stylesheet()
    #17 /home/wmiles/bronzeart.ca/wordpress/wp-includes/class-wp-hook.php(308): wp_enqueue_global_styles('')
    #18 /home/wmiles/bronzeart.ca/wordpress/wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters(NULL, Array)
    #19 /home/wmiles/bronzeart.ca/wordpress/wp-includes/plugin.php(517): WP_Hook->do_action(Array)
    #20 /home/wmiles/bronzeart.ca/wordpress/wp-includes/script-loader.php(2180): do_action('wp_enqueue_scripts')
    #21 /home/wmiles/bronzeart.ca/wordpress/wp-includes/class-wp-hook.php(308): wp_enqueue_scripts('')
    #22 /home/wmiles/bronzeart.ca/wordpress/wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters(NULL, Array)
    #23 /home/wmiles/bronzeart.ca/wordpress/wp-includes/plugin.php(517): WP_Hook->do_action(Array)
    #24 /home/wmiles/bronzeart.ca/wordpress/wp-includes/general-template.php(3043): do_action('wp_head')
    #25 /home/wmiles/bronzeart.ca/wordpress/wp-content/themes/mystile-child/header-index.php(51): wp_head()
    #26 /home/wmiles/bronzeart.ca/wordpress/wp-includes/template.php(783): require_once('/home/wmiles/bronzeart.ca/wordpress/wp-content/themes/mystile-child/header-index.php')
    #27 /home/wmiles/bronzeart.ca/wordpress/wp-includes/template.php(718): load_template('/home/wmiles/bronzeart.ca/wordpress/wp-content/themes/mystile-child/header-index.php', true, Array)
    #28 /home/wmiles/bronzeart.ca/wordpress/wp-includes/general-template.php(48): locate_template(Array, true, true, Array)
    #29 /home/wmiles/bronzeart.ca/wordpress/wp-content/themes/mystile-child/index.php(16): get_header('index')
    #30 /home/wmiles/bronzeart.ca/wordpress/wp-includes/template-loader.php(106): include('/home/wmiles/bronzeart.ca/wordpress/wp-content/themes/mystile-child/index.php')
    #31 /home/wmiles/bronzeart.ca/wordpress/wp-blog-header.php(19): require_once('/home/wmiles/bronzeart.ca/wordpress/wp-includes/template-loader.php')
    #32 /home/wmiles/bronzeart.ca/index.php(17): require('/home/wmiles/bronzeart.ca/wordpress/wp-blog-header.php')
    #33 {main}
      thrown in /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Util.php on line 312
    
    2023-02-04T21:35:44+00:00 CRITICAL Uncaught Error: Class "QM_Component" not found in /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Util.php:312
    Stack trace:
    #0 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(275): QM_Util::get_file_component('/home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/woocommerce-square/vendor/woocommerce/action-scheduler/classes/ActionScheduler_DateTime.php')
    #1 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(209): QM_Backtrace::get_frame_component(Array)
    #2 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php(272): QM_Backtrace->get_component()
    #3 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/vendor/composer/ClassLoader.php(578): QM_Collector_PHP_Errors->error_handler(8192, 'Return type of ActionScheduler_DateTime::setTimezone($timezone) should either be compatible with DateTime::setTimezone(DateTimeZone $timezone): DateTime, or the #[\\ReturnTypeWillChange] attribute shou...', '/home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/woocommerce-square/vendor/woocommerce/action-scheduler/classes/ActionScheduler_DateTime.php', 60)
    #4 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/vendor/composer/ClassLoader.php(578): include('/home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php')
    #5 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/vendor/composer/ClassLoader.php(432): Composer\Autoload\ClassLoader::Composer\Autoload\{closure}('/home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/vendor/composer/../../classes/QM_Component.php')
    #6 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Util.php(312): Composer\Autoload\ClassLoader->loadClass('QM_Component')
    #7 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Util.php(414): QM_Util::get_file_component('/home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/wordpress-seo/inc/options/class-wpseo-options.php')
    #8 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Hook.php(40): QM_Util::populate_callback(Array)
    #9 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/hooks.php(64): QM_Hook::process('registered_taxonomy', Array, true, false)
    #10 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Collectors.php(84): QM_Collector_Hooks->process()
    #11 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Dispatcher.php(108): QM_Collectors->process()
    #12 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/dispatchers/REST.php(40): QM_Dispatcher->get_outputters('headers')
    #13 /home/wmiles/bronzeart.ca/wordpress/wp-includes/class-wp-hook.php(308): QM_Dispatcher_REST->filter_rest_post_dispatch(Object(WP_REST_Response), Object(WP_REST_Server), Object(WP_REST_Request))
    #14 /home/wmiles/bronzeart.ca/wordpress/wp-includes/plugin.php(205): WP_Hook->apply_filters(Object(WP_REST_Response), Array)
    #15 /home/wmiles/bronzeart.ca/wordpress/wp-includes/rest-api/class-wp-rest-server.php(465): apply_filters('rest_post_dispatch', Object(WP_REST_Response), Object(WP_REST_Server), Object(WP_REST_Request))
    #16 /home/wmiles/bronzeart.ca/wordpress/wp-includes/rest-api.php(410): WP_REST_Server->serve_request('/wc-admin/options')
    #17 /home/wmiles/bronzeart.ca/wordpress/wp-includes/class-wp-hook.php(308): rest_api_loaded(Object(WP))
    #18 /home/wmiles/bronzeart.ca/wordpress/wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters(NULL, Array)
    #19 /home/wmiles/bronzeart.ca/wordpress/wp-includes/plugin.php(565): WP_Hook->do_action(Array)
    #20 /home/wmiles/bronzeart.ca/wordpress/wp-includes/class-wp.php(399): do_action_ref_array('parse_request', Array)
    #21 /home/wmiles/bronzeart.ca/wordpress/wp-includes/class-wp.php(780): WP->parse_request('')
    #22 /home/wmiles/bronzeart.ca/wordpress/wp-includes/functions.php(1332): WP->main('')
    #23 /home/wmiles/bronzeart.ca/wordpress/wp-blog-header.php(16): wp()
    #24 /home/wmiles/bronzeart.ca/index.php(17): require('/home/wmiles/bronzeart.ca/wordpress/wp-blog-header.php')
    #25 {main}
      thrown in /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Util.php on line 312
    
    
    Thread Starter wmiles

    (@wmiles)

    And here is the trace from the “Activate Plugin’ failure with the expanded parameter trace …

    With the PHP Opcode cache now working as it once did, or something else, your plugin appears to be failing like it once did before. I will disable it until I hear back from you.

    Thank you for your assistance.

    2023-02-04T22:45:55+00:00 CRITICAL Uncaught Error: Class "QM_Component" not found in /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Util.php:312
    Stack trace:
    #0 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(275): QM_Util::get_file_component('/home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/woocommerce-square/vendor/woocommerce/action-scheduler/classes/ActionScheduler_DateTime.php')
    #1 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(209): QM_Backtrace::get_frame_component(Array)
    #2 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php(272): QM_Backtrace->get_component()
    #3 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/ewww-image-optimizer/vendor/composer/ClassLoader.php(571): QM_Collector_PHP_Errors->error_handler(8192, 'Return type of ActionScheduler_DateTime::setTimezone($timezone) should either be compatible with DateTime::setTimezone(DateTimeZone $timezone): DateTime, or the #[\\ReturnTypeWillChange] attribute shou...', '/home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/woocommerce-square/vendor/woocommerce/action-scheduler/classes/ActionScheduler_DateTime.php', 60)
    #4 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/ewww-image-optimizer/vendor/composer/ClassLoader.php(571): include('/home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php')
    #5 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/ewww-image-optimizer/vendor/composer/ClassLoader.php(428): Composer\Autoload\includeFile('/home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/vendor/composer/../../classes/QM_Component.php')
    #6 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Util.php(312): Composer\Autoload\ClassLoader->loadClass('QM_Component')
    #7 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(275): QM_Util::get_file_component('/home/wmiles/bronzeart.ca/wordpress/wp-includes/functions.php')
    #8 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(209): QM_Backtrace::get_frame_component(Array)
    #9 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php(272): QM_Backtrace->get_component()
    #10 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php(100): QM_Collector_PHP_Errors->error_handler(8192, 'str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated', '/home/wmiles/bronzeart.ca/wordpress/wp-includes/functions.php', 2162, NULL, false)
    #11 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Collectors.php(39): QM_Collector_PHP_Errors->set_up()
    #12 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php(563): QM_Collectors::add(Object(QM_Collector_PHP_Errors))
    #13 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/QueryMonitor.php(48): include_once('/home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php')
    #14 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/query-monitor.php(82): QueryMonitor->set_up()
    #15 /home/wmiles/bronzeart.ca/wordpress/wp-admin/includes/plugin.php(2314): include_once('/home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/query-monitor.php')
    #16 /home/wmiles/bronzeart.ca/wordpress/wp-admin/includes/plugin.php(661): plugin_sandbox_scrape('query-monitor/query-monitor.php')
    #17 /home/wmiles/bronzeart.ca/wordpress/wp-admin/plugins.php(58): activate_plugin('query-monitor/query-monitor.php', 'https://www.bronzeart.ca/wordpress/wp-admin/plugins.php?error=true&plugin=query-monitor%2Fquery-monitor.php', false)
    #18 {main}
      thrown in /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Util.php on line 312
    
    2023-02-04T22:45:57+00:00 CRITICAL Uncaught Error: Class "QM_Component" not found in /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Util.php:312
    Stack trace:
    #0 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(275): QM_Util::get_file_component('/home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/woocommerce-square/vendor/woocommerce/action-scheduler/classes/ActionScheduler_DateTime.php')
    #1 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(209): QM_Backtrace::get_frame_component(Array)
    #2 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php(272): QM_Backtrace->get_component()
    #3 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/ewww-image-optimizer/vendor/composer/ClassLoader.php(571): QM_Collector_PHP_Errors->error_handler(8192, 'Return type of ActionScheduler_DateTime::setTimezone($timezone) should either be compatible with DateTime::setTimezone(DateTimeZone $timezone): DateTime, or the #[\\ReturnTypeWillChange] attribute shou...', '/home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/woocommerce-square/vendor/woocommerce/action-scheduler/classes/ActionScheduler_DateTime.php', 60)
    #4 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/ewww-image-optimizer/vendor/composer/ClassLoader.php(571): include('/home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php')
    #5 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/ewww-image-optimizer/vendor/composer/ClassLoader.php(428): Composer\Autoload\includeFile('/home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/vendor/composer/../../classes/QM_Component.php')
    #6 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Util.php(312): Composer\Autoload\ClassLoader->loadClass('QM_Component')
    #7 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(275): QM_Util::get_file_component('/home/wmiles/bronzeart.ca/wordpress/wp-includes/functions.php')
    #8 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(209): QM_Backtrace::get_frame_component(Array)
    #9 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php(272): QM_Backtrace->get_component()
    #10 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php(100): QM_Collector_PHP_Errors->error_handler(8192, 'str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated', '/home/wmiles/bronzeart.ca/wordpress/wp-includes/functions.php', 2162, NULL, false)
    #11 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Collectors.php(39): QM_Collector_PHP_Errors->set_up()
    #12 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php(563): QM_Collectors::add(Object(QM_Collector_PHP_Errors))
    #13 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/QueryMonitor.php(48): include_once('/home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php')
    #14 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/query-monitor.php(82): QueryMonitor->set_up()
    #15 /home/wmiles/bronzeart.ca/wordpress/wp-admin/includes/plugin.php(2314): include_once('/home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/query-monitor.php')
    #16 /home/wmiles/bronzeart.ca/wordpress/wp-admin/plugins.php(192): plugin_sandbox_scrape('query-monitor/query-monitor.php')
    #17 {main}
      thrown in /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Util.php on line 312
    
    2023-02-04T22:45:57+00:00 CRITICAL Uncaught Error: Class "QM_Component" not found in /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Util.php:312
    Stack trace:
    #0 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(275): QM_Util::get_file_component('/home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/woocommerce-square/vendor/woocommerce/action-scheduler/classes/ActionScheduler_DateTime.php')
    #1 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(209): QM_Backtrace::get_frame_component(Array)
    #2 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php(272): QM_Backtrace->get_component()
    #3 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/ewww-image-optimizer/vendor/composer/ClassLoader.php(571): QM_Collector_PHP_Errors->error_handler(8192, 'Return type of ActionScheduler_DateTime::setTimezone($timezone) should either be compatible with DateTime::setTimezone(DateTimeZone $timezone): DateTime, or the #[\\ReturnTypeWillChange] attribute shou...', '/home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/woocommerce-square/vendor/woocommerce/action-scheduler/classes/ActionScheduler_DateTime.php', 60)
    #4 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/ewww-image-optimizer/vendor/composer/ClassLoader.php(571): include('/home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php')
    #5 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/ewww-image-optimizer/vendor/composer/ClassLoader.php(428): Composer\Autoload\includeFile('/home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/vendor/composer/../../classes/QM_Component.php')
    #6 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Util.php(312): Composer\Autoload\ClassLoader->loadClass('QM_Component')
    #7 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(275): QM_Util::get_file_component('/home/wmiles/bronzeart.ca/wordpress/wp-includes/functions.php')
    #8 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Backtrace.php(209): QM_Backtrace::get_frame_component(Array)
    #9 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php(272): QM_Backtrace->get_component()
    #10 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php(100): QM_Collector_PHP_Errors->error_handler(8192, 'str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated', '/home/wmiles/bronzeart.ca/wordpress/wp-includes/functions.php', 2162, NULL, false)
    #11 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Collectors.php(39): QM_Collector_PHP_Errors->set_up()
    #12 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php(563): QM_Collectors::add(Object(QM_Collector_PHP_Errors))
    #13 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/QueryMonitor.php(48): include_once('/home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php')
    #14 /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/query-monitor.php(82): QueryMonitor->set_up()
    #15 /home/wmiles/bronzeart.ca/wordpress/wp-admin/includes/plugin.php(2314): include_once('/home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/query-monitor.php')
    #16 /home/wmiles/bronzeart.ca/wordpress/wp-admin/plugins.php(192): plugin_sandbox_scrape('query-monitor/query-monitor.php')
    #17 {main}
      thrown in /home/wmiles/bronzeart.ca/wordpress/wp-content/plugins/query-monitor/classes/Util.php on line 312
    
    
    • This reply was modified 2 years, 1 month ago by wmiles.
    Plugin Author John Blackbourn

    (@johnbillion)

    WordPress Core Developer

    Thanks! That’s very helpful. As I suspected, a PHP error is being triggered by another plugin during the class autoloading, which prevents the class from loading, and results in the fatal error.

    I’ll investigate to see what I can do about this.

    jbbailly

    (@jbbailly)

    HI guys.

    I’m interested in the thread as I get some error for similar config (PHP 8.1 /ubuntu 22 security release 8.1.2-1ubuntu2.10 ) with Query Monitor 3.11.2, and WP 6.1.1
    I don’t use Wooocommerce on this site.
    @johnbillion do you need more feedback ?

    I have similar problems on my test site. First the plugin stopped working (the menu button was visible in the top bar, but wasn’t populated with any entries). The I got the following error:

     Fatal error: Uncaught Error: Class "QM_Component" not found
    in /var/www/html/wp-content/plugins/query-monitor/classes/Util.php on line 312
    
    Call stack:
    
        QM_Util::get_file_component()
        wp-content/plugins/query-monitor/classes/Backtrace.php:276
        QM_Backtrace::get_frame_component()
        wp-content/plugins/query-monitor/classes/Backtrace.php:210
        QM_Backtrace::get_component()
        wp-content/plugins/query-monitor/collectors/php_errors.php:274
        QM_Collector_PHP_Errors::error_handler()
        wp-content/plugins/query-monitor/vendor/composer/ClassLoader.php:582
        include()
        wp-content/plugins/query-monitor/vendor/composer/ClassLoader.php:582
        Composer\Autoload\{closure}()
        wp-content/plugins/query-monitor/vendor/composer/ClassLoader.php:433
        Composer\Autoload\ClassLoader::loadClass()
        wp-content/plugins/query-monitor/classes/Util.php:312
        QM_Util::get_file_component()
        wp-content/plugins/query-monitor/classes/Backtrace.php:276
        QM_Backtrace::get_frame_component()
        wp-content/plugins/query-monitor/classes/Backtrace.php:210
        QM_Backtrace::get_component()
        wp-content/plugins/query-monitor/collectors/http.php:210
        QM_Collector_HTTP::filter_http_request_args()
        wp-includes/class-wp-hook.php:308
        WP_Hook::apply_filters()
        wp-includes/plugin.php:205
        apply_filters()
        wp-includes/class-wp-http.php:233
        WP_Http::request()
        wp-includes/class-wp-http.php:633
        WP_Http::get()
        wp-includes/http.php:162
        wp_remote_get()
        wp-content/plugins/jetpack/class.jetpack.php:4953
        Jetpack::permit_ssl()
        wp-content/plugins/jetpack/class.jetpack.php:3303
        Jetpack::admin_init()
        wp-includes/class-wp-hook.php:308
        WP_Hook::apply_filters()
        wp-includes/class-wp-hook.php:332
        WP_Hook::do_action()
        wp-includes/plugin.php:517
        do_action()
        wp-admin/admin.php:175
        require_once()
        wp-admin/index.php:10

    WP 6.2
    Ubuntu 22.04
    PHP 8.1.2-1ubuntu2.11
    10.6.12-MariaDB-0ubuntu0.22.04.1
    Apache/2.4.52

    Plugin Author John Blackbourn

    (@johnbillion)

    WordPress Core Developer

    Thanks for the messages and the stack traces. I’m still trying to determine exactly how a PHP error can be triggered during the class autoloading, and which plugin might cause it. I’ll carry on investigating how to reproduce it and what the fix could be.

    First off, thanks for the plugin, it’s very useful!

    I was just wondering if there are any updates on this? I went through and disabled all of the plugins besides QM on my development site (running PHP 8.1.2), and get the same type of errors mentioned by other users above, even with QM as the only active plugin.

Viewing 15 replies - 1 through 15 (of 15 total)
  • The topic ‘PHP 8.1 Upgrade – Uncaught Error: Class “QM_Component” not found’ is closed to new replies.