PHP 8.1 Upgrade – Uncaught Error: Class “QM_Component” not found
-
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
-
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?
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
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.
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.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
@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?
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.
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.
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
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.
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.
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.52Thanks 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.
-
This reply was modified 2 years, 1 month ago by
- The topic ‘PHP 8.1 Upgrade – Uncaught Error: Class “QM_Component” not found’ is closed to new replies.