Plugin requests timing out
The support doesn work on Saturdays and Sundays, so some Friday requests can be answered on Monday. If you have problems with registration ask help on contact us page pleaseIf you not got email within 24~36 business hours, firstly check your spam box, and if no any email from the support there - back to the forum and read answer here. DO NOT ANSWER ON EMAILS [noreply@pluginus.net] FROM THE FORUM!! Emails are just for your info, all answers should be published only here.
The support doesn work on Saturdays and Sundays, so some Friday requests can be answered on Monday.
Quote from Beth on September 3, 2026, 15:25Hello,
I am raising this ticket on behalf of one of our clients who is using your plugin on their WooCommerce site. Whenever they open the plugin to do a bulk idt, the request times out and shows a 504 server error. I took this to our hosting team to investigate, as we were wondering if this is a resource issue, and they asked me to bring this to you.
What appears to be happening is that when the plugin opens, it clogs up the database with the following:
Id: 6294 User: masons_db Host: localhost db: masons_wp Command: Query Time: 335 State: executing Info: SELECT DISTINCT wp_users.ID,wp_users.display_name FROM wp_users INNER JOIN wp_usermeta ON ( wp_users.ID = wp_usermeta.user_id ) INNER JOIN wp_usermeta AS mt1 ON ( wp_users.ID = mt1.user_id ) INNER JOIN wp_usermeta AS mt2 ON ( wp_users.ID = mt2.user_id ) INNER JOIN wp_usermeta AS mt3 ON ( wp_users.ID = mt3.user_id ) INNER JOIN wp_usermeta AS mt4 ON ( wp_users.ID = mt4.user_id ) INNER JOIN wp_usermeta AS mt5 ON ( wp_users.ID = mt5.user_id ) WHERE 1=1 AND ( wp_usermeta.meta_key = 'wp_iufsr:administrator' OR mt1.meta_key = 'wp_iufsr:editor' OR mt2.meta_key = 'wp_iufsr:author' OR mt3.meta_key = 'wp_iufsr:shop_manager' OR mt4.meta_key = 'wp_iufsr:wpseo_manager' OR mt5.meta_key = 'wp_iufsr:wpseo_editor'This is a reproduceable error by running 'show fullprocesslist\G' in mysql whilst the plugin is trying to open. Would you be able to help us with this? If you need any assistance, we can run whatever is required!
Thanks!
Hello,
I am raising this ticket on behalf of one of our clients who is using your plugin on their WooCommerce site. Whenever they open the plugin to do a bulk idt, the request times out and shows a 504 server error. I took this to our hosting team to investigate, as we were wondering if this is a resource issue, and they asked me to bring this to you.
What appears to be happening is that when the plugin opens, it clogs up the database with the following:
Id: 6294
User: masons_db
Host: localhost
db: masons_wp
Command: Query
Time: 335
State: executing
Info: SELECT DISTINCT wp_users.ID,wp_users.display_name
FROM wp_users INNER JOIN wp_usermeta ON ( wp_users.ID = wp_usermeta.user_id ) INNER JOIN wp_usermeta AS mt1 ON ( wp_users.ID = mt1.user_id ) INNER JOIN wp_usermeta AS mt2 ON ( wp_users.ID = mt2.user_id ) INNER JOIN wp_usermeta AS mt3 ON ( wp_users.ID = mt3.user_id ) INNER JOIN wp_usermeta AS mt4 ON ( wp_users.ID = mt4.user_id ) INNER JOIN wp_usermeta AS mt5 ON ( wp_users.ID = mt5.user_id )
WHERE 1=1 AND (
wp_usermeta.meta_key = 'wp_iufsr:administrator'
OR
mt1.meta_key = 'wp_iufsr:editor'
OR
mt2.meta_key = 'wp_iufsr:author'
OR
mt3.meta_key = 'wp_iufsr:shop_manager'
OR
mt4.meta_key = 'wp_iufsr:wpseo_manager'
OR
mt5.meta_key = 'wp_iufsr:wpseo_editor'This is a reproduceable error by running 'show fullprocesslist\G' in mysql whilst the plugin is trying to open. Would you be able to help us with this? If you need any assistance, we can run whatever is required!
Thanks!
Quote from Alex Dev on September 4, 2026, 15:07Hello
Thank you for the process list output, that identified it immediately.
That query comes from the plugin. When the bulk editor opens, it builds the author drop-down for the filter and bulk edit panels. To do that it asks WordPress for every user holding a role that can publish, which on your client's site is six roles: administrator, editor, author, shop_manager, wpseo_manager and wpseo_editor. That is why you see six joins against wp_usermeta in the same statement.
One detail worth knowing. The meta keys in that query, wp_iufsr:administrator and so on, are not WordPress core. They are created by the plugin Index WP Users For Speed, which intercepts role based user queries and rewrites them to use its own index rows. So the statement your hosting team captured is that plugin's rewritten version of our query. Two things are worth checking on your side:
First, confirm that its background indexing has actually finished. It indexes users in WP_Cron batches, and until that completes the index rows are missing and the query has nothing to use.
Second, note that its approach adds one join per role. With six roles that is six self joins on wp_usermeta, which will be slow on a large user table regardless of indexing.
You do not need to wait for a plugin update to resolve this. The user query is filterable. Add this to the functions.php of the active theme, or to a small must-use plugin:
add_filter( 'woobe_users_args', function ( $args ) { global $wpdb; $author_ids = wp_cache_get( 'woobe_product_author_ids' ); if ( false === $author_ids ) { $author_ids = $wpdb->get_col( "SELECT DISTINCT post_author FROM {$wpdb->posts} WHERE post_type = 'product' AND post_status IN ( 'publish', 'draft', 'pending', 'private' )" ); $author_ids = array_map( 'intval', (array) $author_ids ); wp_cache_set( 'woobe_product_author_ids', $author_ids, '', 3600 ); } if ( empty( $author_ids ) ) { return $args; } return array( 'fields' => array( 'ID', 'display_name' ), 'include' => $author_ids, 'orderby' => 'display_name', ); } );This removes the wp_usermeta joins entirely. The products table is queried by post_type, which is indexed, and the users are then fetched by primary key. It also produces a more useful drop-down, since it lists only people who actually own products rather than everyone with a publishing role.If you want the simplest possible test first, before adding the code above, you can confirm the diagnosis in one line by returning a plain capped query instead:add_filter( 'woobe_users_args', function ( $args ) { return array( 'fields' => array( 'ID', 'display_name' ), 'number' => 200 ); } );
If the 504 disappears with that, the user query is confirmed as the cause and you can move to the first snippet for the proper behaviour.The filter is documented here: https://bulk-editor.com/document/more-settings-implicitPlease let us know the result either way.
Hello
Thank you for the process list output, that identified it immediately.
That query comes from the plugin. When the bulk editor opens, it builds the author drop-down for the filter and bulk edit panels. To do that it asks WordPress for every user holding a role that can publish, which on your client's site is six roles: administrator, editor, author, shop_manager, wpseo_manager and wpseo_editor. That is why you see six joins against wp_usermeta in the same statement.
One detail worth knowing. The meta keys in that query, wp_iufsr:administrator and so on, are not WordPress core. They are created by the plugin Index WP Users For Speed, which intercepts role based user queries and rewrites them to use its own index rows. So the statement your hosting team captured is that plugin's rewritten version of our query. Two things are worth checking on your side:
First, confirm that its background indexing has actually finished. It indexes users in WP_Cron batches, and until that completes the index rows are missing and the query has nothing to use.
Second, note that its approach adds one join per role. With six roles that is six self joins on wp_usermeta, which will be slow on a large user table regardless of indexing.
You do not need to wait for a plugin update to resolve this. The user query is filterable. Add this to the functions.php of the active theme, or to a small must-use plugin:
add_filter(
'woobe_users_args',
function ( $args ) {
global $wpdb;
$author_ids = wp_cache_get( 'woobe_product_author_ids' );
if ( false === $author_ids ) {
$author_ids = $wpdb->get_col(
"SELECT DISTINCT post_author
FROM {$wpdb->posts}
WHERE post_type = 'product'
AND post_status IN ( 'publish', 'draft', 'pending', 'private' )"
);
$author_ids = array_map( 'intval', (array) $author_ids );
wp_cache_set( 'woobe_product_author_ids', $author_ids, '', 3600 );
}
if ( empty( $author_ids ) ) {
return $args;
}
return array(
'fields' => array( 'ID', 'display_name' ),
'include' => $author_ids,
'orderby' => 'display_name',
);
}
);add_filter( 'woobe_users_args', function ( $args ) {
return array( 'fields' => array( 'ID', 'display_name' ), 'number' => 200 );
} );
Quote from Beth on September 7, 2026, 10:21Hi Alex,
Thank you for coming back to me so quickly, it is much appreciated! The first filter works wonderfully, thank you and the plugin is working as exepcted again. Thank you for your help!
Hi Alex,
Thank you for coming back to me so quickly, it is much appreciated! The first filter works wonderfully, thank you and the plugin is working as exepcted again. Thank you for your help!
Quote from Alex Dev on September 7, 2026, 13:58You are Welcome :)
You are Welcome :)