{"id":382725,"date":"2026-10-14T05:03:21","date_gmt":"2026-10-14T05:03:21","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/upaccn-queue-health-for-action-scheduler\/"},"modified":"2026-10-14T05:03:06","modified_gmt":"2026-10-14T05:03:06","slug":"modelgain-queue-health-for-action-scheduler","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/modelgain-queue-health-for-action-scheduler\/","author":23559745,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.1","stable_tag":"0.1.1","tested":"7.1.3","requires":"6.9","requires_php":"7.4","requires_plugins":null,"header_name":"ModelGain Queue Health for Action Scheduler","header_author":"upaccn","header_description":"Diagnose failed, overdue, and stuck Action Scheduler jobs and identify likely causes before taking action.","assets_banners_color":"","last_updated":"2026-10-14 05:03:06","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":77,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.1":{"tag":"0.1.1","author":"upaccn","date":"2026-10-14 05:03:06","revision":3745336}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.1"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[225911,4567,278329,151481,286],"plugin_category":[45,59],"plugin_contributors":[284600],"plugin_business_model":[],"class_list":["post-382725","plugin","type-plugin","status-publish","hentry","plugin_tags-action-scheduler","plugin_tags-cron","plugin_tags-scheduled-actions","plugin_tags-site-health","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-utilities-and-tools","plugin_contributors-upaccn","plugin_committers-upaccn"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/modelgain-queue-health-for-action-scheduler.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Action Scheduler powers background work for WooCommerce and many other WordPress plugins. When Scheduled Actions begin to fail or become past due, the built-in queue tells you what exists but can still leave the most important questions unanswered: Is the backlog abnormal? Which hook is causing most of it? Which plugin probably owns that hook? Is the default runner available?<\/p>\n\n<p>ModelGain Queue Health for Action Scheduler adds a read-only diagnostic screen under <strong>Tools \u2192 Action Scheduler Health<\/strong>.<\/p>\n\n<p>The first release focuses on diagnosis rather than cleanup:<\/p>\n\n<ul>\n<li>See Pending, Past Due, recent Failed, and long-running action counts.<\/li>\n<li>See the age of the oldest overdue action.<\/li>\n<li>Check WP-Cron, the default Action Scheduler runner hook, and the next scheduled queue run.<\/li>\n<li>Rank the hooks contributing the strongest overdue or failure signal.<\/li>\n<li>Map currently registered callbacks back to a likely plugin, must-use plugin, theme, or WordPress core file.<\/li>\n<li>Review recent failure evidence without exposing Action Scheduler arguments.<\/li>\n<li>Copy a privacy-conscious support report for troubleshooting.<\/li>\n<\/ul>\n\n<p>The dashboard uses <strong>Healthy<\/strong>, <strong>Review<\/strong>, and <strong>Critical<\/strong> states as troubleshooting guidance. A small transient backlog can be normal, and ownership evidence does not prove that a plugin is the root cause.<\/p>\n\n<p>The plugin does not cancel, delete, rerun, reschedule, or edit third-party actions. It makes no external API calls and does not send telemetry.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin or install it from WordPress.org when available.<\/li>\n<li>Activate <strong>ModelGain Queue Health for Action Scheduler<\/strong> from the Plugins screen.<\/li>\n<li>Open <strong>Tools \u2192 Action Scheduler Health<\/strong>.<\/li>\n<\/ol>\n\n<p>If no active plugin or theme has loaded Action Scheduler, the plugin will simply report that no Action Scheduler runtime was detected.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20delete%20or%20repair%20scheduled%20actions%3F\"><h3>Does this plugin delete or repair scheduled actions?<\/h3><\/dt>\n<dd><p>No. Version 0.1.1 is deliberately read-only. It diagnoses the queue and gives conservative next-step guidance, but it does not mutate scheduled actions.<\/p><\/dd>\n<dt id=\"is%20every%20past-due%20action%20a%20problem%3F\"><h3>Is every past-due action a problem?<\/h3><\/dt>\n<dd><p>No. A short-lived backlog can occur during normal queue processing. The health state considers counts, age, recent failures, long-running work, and runner signals together.<\/p><\/dd>\n<dt id=\"how%20does%20plugin%20ownership%20detection%20work%3F\"><h3>How does plugin ownership detection work?<\/h3><\/dt>\n<dd><p>When a callback for a problematic hook is currently registered, the plugin inspects the callback source file and maps it to WordPress core, a plugin, a must-use plugin, or a theme. This is evidence about ownership, not proof that the component caused the failure.<\/p><\/dd>\n<dt id=\"does%20the%20support%20report%20include%20order%20or%20customer%20data%3F\"><h3>Does the support report include order or customer data?<\/h3><\/dt>\n<dd><p>The report intentionally excludes Action Scheduler arguments. It contains queue counts, runner diagnostics, hook names, and likely owner information.<\/p><\/dd>\n<dt id=\"does%20it%20require%20woocommerce%3F\"><h3>Does it require WooCommerce?<\/h3><\/dt>\n<dd><p>No. It works with any active Action Scheduler runtime, whether Action Scheduler is provided by WooCommerce or another plugin or theme.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>Fixed paths and unique prefixes following WordPress.org review.<\/li>\n<li>Renamed plugin to ModelGain Queue Health for Action Scheduler.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial read-only queue health dashboard.<\/li>\n<li>Added overdue, recent-failure, and long-running action diagnostics.<\/li>\n<li>Added dominant-hook ranking and callback-based ownership evidence.<\/li>\n<li>Added runner diagnostics and a privacy-conscious support report.<\/li>\n<\/ul>","raw_excerpt":"Find overdue and failed Action Scheduler jobs, identify the dominant hooks, and see which plugin likely owns them before changing the queue.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/382725","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=382725"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/upaccn"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=382725"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=382725"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=382725"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=382725"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=382725"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=382725"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}