Passing along a bug that fails silently, so others may be affected without knowing.
Issue: On MariaDB servers set to READ UNCOMMITTED transaction isolation, the adaptive filters term-count query fails every time.
Error: “WordPress database error: Update locks cannot be acquired during a READ UNCOMMITTED transaction”
It’s the adaptive terms query in app/utils/post-utils.php (~line 483) — the CTE with JSON_OBJECTAGG joining wp_term_relationships. MariaDB refuses the locking read that the CTE requires at that isolation level, so get_results() returns false. The is_array() check means execution continues normally and counts just come back empty. The customer never knew their adaptive filters weren’t working.
Environment: MariaDB at READ UNCOMMITTED (some shared hosts set this server-wide), PHP 8.3, Voxel 1.7.8.7, on archives with a location filter. Doesn’t reproduce on MySQL 8.0 at default REPEATABLE READ.
How it surfaced: The customer’s front end returned blank pages (HTTP 200, Content-Length 0) for logged-in admins only, on pages with a search form. Query Monitor was capturing every failed query including its full SQL — which embeds a geographic polygon, ~2KB each, one per taxonomy per load — then running out of resources at shutdown and discarding the page.
Suggestion: Log a notice when that query fails rather than returning empty counts silently. Sites can have adaptive filters broken for a long time without any signal.
©2026 Created by 27collective LLC. All rights reserved