After upgrading to MainWP Child 6.2, premium plugin/theme update detection began failing on sites protected by Snicco Fortress with:
Unauthorized access
PREMIUM_ACTION_ERROR
WordPress.org plugin updates continued working normally, and premium plugins could be updated directly via WP-CLI, so the problem was isolated to MainWP’s premium-update path.
Tracing MainWP Child showed that 6.2’s new simulate_admin_visit() method checks:
current_user_can( 'manage_options' )
before performing the simulated admin request.
The MainWP connected user was successfully authenticated as an Administrator, but Fortress’s sudo-mode capability protection was filtering protected capabilities from the remote session. As a result, manage_options was false even though the connected user was the correct Administrator.
This appears to be a compatibility regression introduced by the new premium-update mechanism in MainWP Child 6.2. MainWP Child 6.1.8 did not use simulate_admin_visit() or this manage_options check for premium update detection.
I confirmed the cause using Fortress’s current DeterminingProtectedCapabilities event. Allowing the necessary protected capabilities for trusted MainWP process_premium_updates requests immediately changed premium detection from:
Unauthorized access / PREMIUM_ACTION_ERROR
to:
success => 1
I then tested an actual premium plugin update through MainWP. MainWP returned PREMIUM_ACTION_REQUESTED, launched the upgrade, and the plugin updated successfully.
So the issue is specifically the interaction between MainWP Child 6.2’s new premium plugin/theme update mechanism and security systems such as Fortress that restrict administrative capabilities when a remote authenticated session has not entered sudo mode.
It may be worth having MainWP review whether simulate_admin_visit() should depend on current_user_can( 'manage_options' ) in this context, since MainWP has already authenticated and authorized the remote request before reaching this code.