I’ve managed to possibly narrow down exactly what the cause of this five year old bug is after a few minutes of investigating what was going on with the network requests being sent out when the admin page errors.
It turns out that when the page is loaded there are a set of page locations for the group api loaded with the group admin page. They are initialized by a javascript element with the following code:
function() {
Roblox.GroupAdmin.InitializeGlobalVars(group_id_here, "/long_hash_here", "/long_hash_here", "/long_hash_here");
});
Anyone can find the above code by CTRL+F’ing “InitializeGlobalVars” on the page’s DOM and you can scrape the specific URLs out of the function’s raw code.
All three of the URLs are visitable, but you’ll just be directed to a part of the website that generates the html that the search menu uses or the settings page uses.
Through various experimentation with these URLs, I’ve noticed the times that the group admin page errors is when the the websites it requests to the pre-loaded website URL and for some reason the endpoint is now non-existent.
For example, go to the group admin page of any group you own and make sure the page works properly. If it does, (assuming google chrome) open the F12 console and paste the following code into the console:
Roblox.GroupAdmin.GroupMembers()
You’ll be given the rest of the URL that points to the endpoint of the website that fetches the member list of the group admin page. If you visit the page www.roblox.com/HASH_FROM_ABOVE_CODE_HERE?groupId=GROUP_ID_HERE&pageNum=1 fast enough you’ll see the list of members from the first page of the website.
Now, here is where the problem comes in. If you wait long enough, you’ll find that the page eventually gets removed. You can confirm this by waiting about 10-15 minutes, then refreshing. You’ll get an error saying the page doesn’t exist.
How does this tie into the group admin breaking? The page you’re on has the pointer to that now broken endpoint saved, and therefore if it tries to send a request to the page to fetch information it’ll error because the page no longer exists. You can confirm this too by waiting 10-15 minutes, then on another tab verifying the page has been removed, and trying to switch to a different rank or even just searching for a group member. It will error.
If you refresh and run the code again, the page has changed to something else.
I’ve noticed that in particular with large groups, it takes a few moments (upwards to a minute in some of my tests even after refreshing several times) for the fetched page to receive the new endpoint url. Sometimes, the page receives the new endpoint, and then when you refresh it has the old one again. I found that especially weird. I could not replicate this with small groups.
speculation
- I assume ROBLOX is changing the endpoint periodically for security reasons (wouldn’t make sense because exile doesn’t do this).
- I assume the endpoint changes every 10 to 15 minutes because there seems to be a consistent time period for it to become something else and the old one becoming invalidated
- I assume the page doesn’t keep up to date with the endpoint and hence why idling on the group admin page will eventually lead to an error
- I assume that, proportional of the number of members in your group, it takes time for the web server to update/propagate the new endpoint to the group admin (???)
possible how to fix?
I don’t know why the endpoint needs to change every 10-15 minutes, just keep it static. There needs to be a nice way to fetch group members anyway.
I understand ROBLOX is doing the overhaul and all for groups this year, but this bug is beyond annoying. I physically want to strangle my computer whenever I try to update my group (200K+ members) member’s ranks manually and this happens for MINUTES at a time.
Please look into based on this? I’m not even sure if this is related, just random stuff I’ve correlated with the group admin page breaking.