Forum Replies Created

Viewing 15 replies - 1 through 15 (of 23 total)
  • @pjsgsy It’s hard to say exactly which code is to blame for that error. It’s related to fetching data from the persistent object cache. So if you flush the object cache with wp cache flush it should start working. I just release 2.1.2 which adds protections to avoid this problem. so update or flush the cache or both.

    Thanks for reporting this @pjsgsy , and thanks @dkotter for pinpointing the cause. You were correct. Our connector was registering with authentication set to none because many local servers like Ollama and llama.cpp don’t require an API key. However, WordPress 7.0’s connector system and the AI plugin only recognize connectors that declare api_key authentication with a populated setting value, so although the connector appeared as “connected” on the Connectors page, it was invisible to any AI feature that checks for valid credentials. Most of my testing was with the SD AI Agent which does not make this check so I didn’t notice there was a problem. We’ve just released version 2.1.1 which fixes this. Please update and let us know if that resolves it for you.

    Plugin Author David Stone

    (@superdav42)

    Thanks for letting us know about this issue. It was recently fixed in a PR that was just released in 2.11.0. Please update to the latest version and let us know if it’s working for you.

    Plugin Author David Stone

    (@superdav42)

    Can you look for log files in /wp-admin/network/admin.php?page=wp-ultimo-view-logs on your site? It’s Network dashboard -> Events -> View Logs. Then in the right widget select the log to view. Look for logs like domain-creation.log and domain-domain-nameX.log. And anything with cpanel. You can paste the relevant parts of the logs here or use https://ultimatemultisite.com/support/

    Plugin Author David Stone

    (@superdav42)

    Did you configure the cPanel token according to the instructions on the page /wp-admin/network/admin.php?page=wp-ultimo-hosting-integration-wizard&integration=cpanel&step=instructions ?

    cPanel is not creating the addon domain?

    Plugin Author David Stone

    (@superdav42)

    What hosting integration are you using? Where do you expect the subdomain to be created automatically?

    There is a log file created for each domain. In Ultimate Multisite -> Events -> View Logs or this path on your main domain /wp-admin/network/admin.php?page=wp-ultimo-view-logs will let you review all the log files and may give a clue why the subdomain is not being created.

    If you can setup a wildcard *.domain.com in your host provider it will give the best experience for your customers but not all hosts will support wildcard subdomains.

    Plugin Author David Stone

    (@superdav42)

    Pay what you want should be fully working now. Update let me know how it goes.

    Plugin Author David Stone

    (@superdav42)

    2.6.0 has a bug fix for site selection in some context. Please update and try again.

    Plugin Author David Stone

    (@superdav42)

    Hi, thanks for reaching out! I’m pretty sure you are describing a bug that was just fixed in 2.6.0 that was released today. Please update and try again and let us know if there are any problems.

    Plugin Author David Stone

    (@superdav42)

    Here’s a draft response:

    Thanks for reaching out.

    The “My Sites” dropdown in the admin bar behaves differently depending on the user’s role:

    Super admins / network administrators — Ultimate Multisite intentionally hides customer-owned sites from this dropdown. On a network with many customer sites the list would become unmanageable, so it only shows non-customer sites (main site, templates, etc.). All customer sites remain accessible through the Ultimate Multisite > Sites page in the network admin.

    Regular customers / site owners — The plugin doesn’t modify the dropdown for these users at all. WordPress handles it natively and lists every site the user has a role on, regardless of how it was created.

    Could you help us narrow this down with a few details:

    1. Are the affected users super admins or regular customers?
    2. What status do the missing sites show under Ultimate Multisite > Sites — Customer-Owned, Pending, or something else?
    3. On one of the missing sites, if you go to Network Admin > Sites > Edit > Users tab, is the affected user listed with a role?

    If the users are super admins, this is expected behaviour. If they’re regular customers with active Customer-Owned sites and a role assigned, that would indicate a bug we’d want to investigate.

    David Stone

    (@superdav42)

    Hi Trinopoty,

    I ran tests on a similar MariaDB setup and can now explain exactly what’s happening.The Query Structure Is Identical

    WordPress did NOT change the query between versions. Both 6.6.1 and 6.9.4 generate the exact same SQL:

    SELECT wp_posts.ID 
    FROM wp_posts 
    LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) 
    WHERE wp_term_relationships.term_taxonomy_id IN (43,89,114,...)
      AND wp_posts.post_type = 'post' 
      AND wp_posts.post_status = 'publish' 
    ORDER BY wp_posts.post_date DESC 
    LIMIT 0, 10

    What Actually Changed

    The difference is MySQL’s query optimizer choosing a different join order based on your data statistics. In my testing, I reproduced both plans on the same database:

    Plan A (Fast – 0.01s) – What you had in 6.6.1

    -> wp_posts (type_status_date index) → 38 rows
      -> wp_term_relationships (PRIMARY key) → 10 rows

    Why it’s fast: Starts with highly selective wp_posts filter (post_type=’post’, post_status=’publish’), already sorted by post_date from the index.

    Plan B (Slow – 1.20s) – What you have now

    -> wp_term_relationships (term_taxonomy_id index) → 196,836 rows  
      -> wp_posts (PRIMARY key lookup per row) → filter down to 10
      -> Filesort required (using temporary table)

    Why it’s slow: Starts with the term relationships, fetches ~200k rows, then filters. The filesort on that large intermediate result kills performance. Why Did This Happen?

    Most likely one of these changed between your versions:

    1. Your data grew – More posts were added, making the optimizer think the term_taxonomy_id filter is more selective than the post_type/post_status filter
    2. Statistics refreshed – Running ANALYZE TABLE or the auto-analyze triggered after the WordPress upgrade
    3. Index cardinality estimates shifted – The optimizer’s cost model now incorrectly estimates that starting with term_relationships is cheaper

    I verified this by using FORCE INDEX hints to make MariaDB use the “bad” plan – the same query went from 0.3ms to 1.3ms even on my small test database (105 posts, 23 relationships).

    Solutions (in order of effectiveness)

    1. Object Caching (Recommended – immediate fix)

    Install a object cache plugin. There’s many to choose from that use memcache or redis. I like docket cache which just uses php files and is the easiest to install and setup.

    2. Enable split_the_query (WordPress built-in)

    add_filter( 'split_the_query', '__return_true', 20 );

    This forces WordPress to run two simpler queries instead of one complex JOIN, which often avoids optimizer issues.

    3. MySQL Optimizer Hints (might work)

    add_filter( 'posts_clauses', function( $clauses ) {
        if ( strpos( $clauses['join'], 'term_relationships' ) !== false ) {
            // Force join order: posts first
            $clauses['join'] = 'STRAIGHT_JOIN ' . $clauses['join'];
        }
        return $clauses;
    }, 10, 2 );

    Long-term Fix

    This is a known WordPress core issue tracked in Trac #54346 (https://core.trac.ww.wp.xz.cn/ticket/54346). The proposed fix converts the LEFT JOIN to a subquery, which eliminates the join order ambiguity:

    SELECT wp_posts.ID FROM wp_posts 
    WHERE wp_posts.ID IN (
        SELECT object_id FROM wp_term_relationships 
        WHERE term_taxonomy_id IN (43,89,114,...)
    )
    AND wp_posts.post_type = 'post' 
    AND wp_posts.post_status = 'publish' 
    ORDER BY wp_posts.post_date DESC 
    LIMIT 0, 10

    I recommend:

    1. Immediate: Implement object caching (Solution 1)
    2. Short-term: Comment on Trac #54346 with your EXPLAIN output to help prioritize the fix
    3. Long-term: Monitor that ticket for the subquery rewrite merge
    Plugin Author David Stone

    (@superdav42)

    Thanks for reporting this problem. We’ll look at it and get a fix ready for next release.

    Plugin Author David Stone

    (@superdav42)

    First of all these notices should be suppressed and not displayed on your site. I see at http://www.linu.tr it does display the Notice. To prevent this add:

    // Disable display of errors and warnings
    define( 'WP_DEBUG_DISPLAY', false );
    @ini_set( 'display_errors', 0 );

    to wp-config.php See Debugging in WordPress for more information.

    Secondly I think this notice is only happening when using Loco translate plugin which is why it wasn’t detected before. It should be fixed in the next release but you can update the config above to suppress the notice now.

    Plugin Author David Stone

    (@superdav42)

    Hi @mirshadrahman ,

    Thanks for reporting this — we’ve tracked down the issue and it turns out there were actually three related bugs in our site duplication code that were causing URLs in Elementor elements (buttons, links, etc.) to not get updated when creating a new site from a template.

    Here’s what was happening in simple terms:

    1. Replacement was getting skipped prematurely. When we duplicate a site, we replace URLs in a specific order — upload folder URLs first, then the main site URL. On subdirectory installs like yours, once the upload URL was updated (e.g. /mirshad/wp-content/uploads → /mysite2/wp-content/uploads), our code saw that the new site name already existed in the data and incorrectly assumed the job was done — skipping the
      replacement for all remaining URLs like button links.
    2. Elementor’s data format wasn’t fully accounted for. Elementor stores its page data as JSON, which escapes forward slashes (/ becomes \/). Our search-and-replace was looking for normal slashes and never matched the escaped versions, so Elementor URLs were silently skipped.
    3. Deeply nested data wasn’t being processed. Some URL references buried inside nested data structures were also being missed.

    Would you be able to test the fix on your site? You can install the branch version by downloading it from the PR page. Or directly https://nightly.link/Ultimate-Multisite/ultimate-multisite/actions/runs/21490680774/ultimate-multisite.zip After installing, try creating a new site from your template and check whether the button and element URLs are now correctly pointing to the new site. Let us know how it goes!

    Plugin Author David Stone

    (@superdav42)

    I’m glad to hear you found the plugin conflict. It is our goal to avoid such conflicts. I think I know what cause the problem and it was basically because Ultimate Multisite’s code was not robust enough. Could you please test the build in this PR https://github.com/Ultimate-Multisite/ultimate-multisite/pull/332#issuecomment-3819341858
    It should allow the checkout to work even with Jetgridbuilder active.

Viewing 15 replies - 1 through 15 (of 23 total)