Simple Membership Plugin › Forums › Simple Membership Plugin › wp-admin session invalidated (reauth=1) after updating to 4.8.3
- This topic has 1 reply, 1 voice, and was last updated 1 week, 4 days ago by
admin.
-
AuthorPosts
-
September 23, 2026 at 5:14 am #32348
guiacepa
ParticipantSubject: wp-admin session invalidated (reauth=1) after updating to 4.8.3 — isolated to Simple Membership
Hi,
I’m reporting a bug on my site guiacepa.com that I’ve isolated to Simple Membership after a week of testing.
ENVIRONMENT
– WordPress Core: 7.0.6 (was 7.0.4 when the issue started; auto-updated to 7.0.5 on 2026-09-17, then to 7.0.6 on 2026-09-22, unrelated to the fix attempts)
– PHP: 8.3
– Simple Membership: 4.8.3 (updated from 4.8.2 on 2026-09-17)
– Active theme: GeneratePress Child
– Hosting: Hostinger, LiteSpeed server (LiteSpeed Cache plugin 7.9.1 installed but conclusively ruled out as the cause — see below)SYMPTOM
Login to wp-admin works, but clicking any menu item (Posts, Pages, Users, Comments, any section) immediately logs the admin out, redirecting to wp-login.php?redirect_to=…&reauth=1. The reauth=1 parameter indicates the auth cookie is present but rejected as invalid — not missing or expired. The public site (including Stripe checkout and the membership login shortcode) works normally throughout. Reproduced in pure incognito, multiple browsers and devices.TIMELINE
The issue began immediately after an automatic update on 2026-09-17 at 21:39 UTC, which updated WordPress Core (7.0.4→7.0.5) AND Simple Membership (4.8.2→4.8.3) in the same event. Hostinger’s own update log marked the site “Inaccessible” right after that event, the only day in two weeks it did so.That same night, I logged a batch of 19 HTTP 500 errors in the window 21:24–21:53 UTC. The automatic update completed at 21:39 UTC — squarely inside that error window.
RULED OUT
Over several days I ruled out, with evidence: .htaccess rules (line-by-line review), COOKIE_DOMAIN, siteurl/home mismatches, browser/cookies/incognito/VPN, file ownership fixes, wp-config.php salts regeneration, server resource saturation, and — most extensively — LiteSpeed Cache and its object-cache.php drop-in. On the LiteSpeed front specifically: I set define(‘LSCWP_OBJECT_CACHE’, false) in wp-config.php, did a full clean reinstall of the plugin (deactivate, remove object-cache.php, delete plugin, reinstall from repository, reactivate), and toggled the plugin on/off repeatedly. Result was identical in every case — the failure still occurs, once even with no object-cache.php file present at all and faster than before. LiteSpeed is conclusively ruled out.ISOLATION TEST
With all other ~22 plugins active (LiteSpeed Cache included) and only Simple Membership deactivated (since 16:35 local time on 2026-09-22), the wp-admin panel has been stable for over 2 hours 45 minutes and counting — navigating Posts, our custom “guias” post type, editing content, no reauth failures. Reactivating Simple Membership alone should confirm this as the definitive isolation test; I’m doing that next unless you can point me to a known issue first.I reviewed the 4.8.3 changelog on wordpress.org. Nothing obviously targets wp-admin session handling — most changes are Stripe/PayPal payment and annual membership date logic. The one login-related item (“auto-login after registration no longer includes the password in the redirect URL”) appears specific to the registration flow, not general session validation.
QUESTION
Is there a known change in 4.8.3 that touches wp-admin session/cookie validation, hooks into WordPress’s auth cookie lifecycle, or interacts with object caching of usermeta/session tokens? Has this been reported by other users on Hostinger/LiteSpeed stacks? Is there a fix planned, or should I roll back to 4.8.2 in the meantime?Happy to provide debug logs, wp-config details, or a screen recording if useful.
Thanks,
CarlosSeptember 23, 2026 at 5:21 am #32350admin
KeymasterHi Carlos,
Short answer first: there’s no change in 4.8.3 that touches wp-admin session or cookie validation, so rolling back to 4.8.2 probably won’t help you. Your isolation result is still real though, and I can point you at the exact code in the plugin that’s capable of producing reauth=1, plus why one of your own troubleshooting steps may have made it worse.
On 4.8.3
I went through the full 4.8.2 to 4.8.3 diff before replying. The changes are Stripe/PayPal IPN handling and payment button ID validation, annual fixed-date expiry calculation, some new opt-in subscription renewal email settings, the login event auto-prune window, and moving the auto-login-after-registration handler out of init. None of it calls into WordPress’s auth cookie or session APIs. You read the changelog correctly. We also have no other reports of this from Hostinger or LiteSpeed users.
How the plugin can still cause it
There are three code paths in Simple Membership that call wp_destroy_current_session() and wp_clear_auth_cookie(). They all run on init or wp_loaded, which fire before auth_redirect() in wp-admin. So if one of them triggers, WordPress’s session token check fails milliseconds later in the same request, and you get bounced to wp-login.php?…&reauth=1. That’s exactly your symptom, and it’s why deactivating the plugin makes wp-admin stable.
The most likely of the three is our cookie integrity check. Our auth cookie’s HMAC is derived from your AUTH_KEY and AUTH_SALT values. You mentioned regenerating the salts in wp-config.php as one of your fix attempts, and that invalidates every Simple Membership cookie already sitting in a browser. Our code reacts to a failed check by clearing the WordPress session too. If the stale cookie then doesn’t get removed cleanly (which happens when COOKIE_DOMAIN or COOKIEPATH don’t match whatever originally set it, www vs non-www being the usual culprit), it keeps re-triggering on every request. It’s possible the salt regeneration turned an intermittent problem into a permanent one.
One thing I’d gently push back on: “the public site works” doesn’t actually clear the cookie layer. reauth=1 means auth_redirect() rejected the wordpress_[hash] / wordpress_sec_[hash] cookie, and that one is scoped to /wp-admin. The logged_in cookie at path / can be completely valid at the same time, which is why your front end behaves normally. That also means object caching of the session_tokens user meta isn’t fully ruled out by the tests you ran, even though I agree you’ve been thorough with LiteSpeed.
What would settle this
#1) Clear all cookies for guiacepa.com in your test browser, both www and non-www. This is necessary after a salt change regardless, and it might be the whole fix.
#2) Turn on our auth debug log: WP Membership, Settings, Advanced Settings, “Enable Debug”. Reactivate the plugin, reproduce the logout, then check the wp-content/plugins/simple-membership/log-auth-*.txt. If it shows Validate() function – Bad hash or Active login limit feature – login session token expired at the time of the logout, that narrows it to one specific branch.
#3) Log the WordPress side too. Drop this into wp-content/mu-plugins/auth-debug.php, reproduce, and send the matching lines from your PHP error log:
<?php add_action('auth_cookie_bad_hash', function($c){ error_log('SWPM-DBG bad_hash '.print_r($c,true)); }); add_action('auth_cookie_bad_session_token', function($c){ error_log('SWPM-DBG bad_session_token '.print_r($c,true)); }); add_action('auth_cookie_expired', function($c){ error_log('SWPM-DBG expired '.print_r($c,true)); }); add_action('clear_auth_cookie', function(){ error_log('SWPM-DBG clear_auth_cookie '.wp_debug_backtrace_summary()); });bad_session_token means something destroyed the session. bad_hash points at salts or a cookie scope mismatch. And the clear_auth_cookie backtrace will name the function responsible outright, so if it’s our code, our file will be right there in the trace.
#4) Check three settings under Advanced Settings and tell me whether each is on or off: “Force WP User Synchronization”, “Enable Active Login Limit”, and “Disable Access to WP Dashboard”. All three interact with session handling.
#5) Is your admin WordPress account also a member record? Check for the same username or the same email address under WP Membership, Members. If it is, that links the two session systems together and makes the paths above reachable for your admin user.
#6) Delete and reinstall Simple Membership 4.8.3 from scratch, rather than updating in place. Those 19 HTTP 500s bracketing the 21:39 update, plus Hostinger flagging the site as Inaccessible, look a lot like an interrupted or partially written update. A clean reinstall costs you nothing and rules it out. Your settings and member data live in the database, so nothing is lost.
#7) If you still have them, the PHP error log lines from 21:24 to 21:53 UTC on 2026-09-17 would be a very useful thing you could share with us.
If you’d rather keep the plugin deactivated while we work through this, that’s fine. Do steps 1 and 6 first, and just send the logs from step 2 or 3 if you can reproduce it once. With either log, I can tell you definitively whether this is our code or something in the environment, and if it’s ours, it goes into the next release.
-
AuthorPosts
- You must be logged in to reply to this topic.