Issue with a large number of plugins, yggdrasil ProfileSearchResultsResponse.getProfiles() is null
Currently looking into an issue with a server that I Admin for, we have suddenly started getting an issue with a large number of our plugins all giving an extremely similar error from the Mojang Authentication Yggdrasil methods.
The server is a Waterfall linked Bungee server of around 9 separate servers, all running the most recent version of Paper. This issue started around Wednesday last week with the only thing that we can see was changed was a Paper update.
We have tested reverting the paper version but no results, also entirely unable to replicate this issue on multiple local test servers.
Plugins that are currently giving the issue are as follows:
Citizens
ChestShop
Spartan
HeadDatabase
VersionChecker
AJLeaderboards
And likely a few more.
All of our main servers that have a mixture of these plugins have various issues, with some not being able to run certain functions of the plugins, and some plugins completely refusing to enable on startup. We have attempted disabling each plugin one by one to find some pattern, but these all seem to have some sort of ‘weight’ in casing it with some being more likely to cause the issue but all are contributors.
We have discussed with multiple of these plugin developers but all are saying that they have no idea and that it is not their plugin causing any issues. I will post some error logs that we are getting from a few of the plugins as comments here.
Has anyone ever seen this before, or any ideas on what to do at all?
7 Replies
Thanks for asking your question!
Make sure to provide as much helpful information as possible such as logs/what you tried and what your exact issue is
Make sure to mark solved when issue is solved!!!
/close
!close
!solved
!answered
Requested by xyaafol#0
[06:01:45] [Server thread/ERROR]: Error occurred while enabling ChestShop v3.12.3-SNAPSHOT (build 389) (Is it up to date?)
java.lang.NullPointerException: Cannot read the array length because the return value of "com.mojang.authlib.yggdrasil.response.ProfileSearchResultsResponse.getProfiles()" is null
at com.mojang.authlib.yggdrasil.YggdrasilGameProfileRepository.findProfilesByNames(YggdrasilGameProfileRepository.java:59) ~[paper-1.20.1.jar:?]
at com.destroystokyo.paper.profile.PaperGameProfileRepository.findProfilesByNames(PaperGameProfileRepository.java:44) ~[paper-1.20.1.jar:git-Paper-116]
at net.minecraft.server.players.GameProfileCache.lookupGameProfile(GameProfileCache.java:110) ~[?:?]
at net.minecraft.server.players.GameProfileCache.get(GameProfileCache.java:181) ~[?:?]
at org.bukkit.craftbukkit.v1_20_R1.CraftServer.getOfflinePlayer(CraftServer.java:1961) ~[paper-1.20.1.jar:git-Paper-116]
at org.bukkit.Bukkit.getOfflinePlayer(Bukkit.java:1335) ~[paper-api-1.20.1-R0.1-SNAPSHOT.jar:?]
at com.Acrobot.ChestShop.UUIDs.NameManager.load(NameManager.java:347) ~[ChestShop.389.jar:?]
at com.Acrobot.ChestShop.ChestShop.loadConfig(ChestShop.java:190) ~[ChestShop.389.jar:?]
at com.Acrobot.ChestShop.ChestShop.onEnable(ChestShop.java:158) ~[ChestShop.389.jar:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:281) ~[paper-api-1.20.1-R0.1-SNAPSHOT.jar:?]
09:16:35] [Craft Scheduler Thread - 17 - Citizens/WARN]: [Citizens] Plugin Citizens v2.0.32-SNAPSHOT (build 3156) generated an exception while executing task 322
java.lang.NullPointerException: Cannot read the array length because the return value of "com.mojang.authlib.yggdrasil.response.ProfileSearchResultsResponse.getProfiles()" is null
at com.mojang.authlib.yggdrasil.YggdrasilGameProfileRepository.findProfilesByNames(YggdrasilGameProfileRepository.java:59) ~[paper-1.20.1.jar:?]
at com.destroystokyo.paper.profile.PaperGameProfileRepository.findProfilesByNames(PaperGameProfileRepository.java:44) ~[paper-1.20.1.jar:git-Paper-118]
at net.citizensnpcs.npc.profile.ProfileFetchThread.fetchRequests(ProfileFetchThread.java:134) ~[Citizens.2.0.32.4.jar:?]
at net.citizensnpcs.npc.profile.ProfileFetchThread.run(ProfileFetchThread.java:195) ~[Citizens.2.0.32.4.jar:?]
at org.bukkit.craftbukkit.v1_20_R1.scheduler.CraftTask.run(CraftTask.java:101) ~[paper-1.20.1.jar:git-Paper-118]
at org.bukkit.craftbukkit.v1_20_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) ~[paper-1.20.1.jar:git-Paper-118]
at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[paper-1.20.1.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
[09:18:54] [Profile Lookup Executor #0/ERROR]: Uncaught exception in thread Profile Lookup Executor #0
java.lang.NullPointerException: Cannot invoke "java.util.Optional.isPresent()" because "optional" is null
at net.minecraft.Util.ifElse(Util.java:449) ~[?:?]
at net.minecraft.world.level.block.entity.SkullBlockEntity.lambda$updateGameprofile$5(SkullBlockEntity.java:141) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
:thonk: Mojang API ratelimit / block
That was something that I considered, but everything I can find on the ratelimit seems to say 600 per 10mins - we can get the issue, then disable one or two of the issue plugins and restart within the 10 mins and it all work with no issues
Just checking again now and found a source saying 200 per min for UUID to profile checks
Maybe one plugins spam requests? When the problem occurs what does the API return if you query it directly from the server
Apologies for my newness to the Mojang API side, how would I query from the server?
Looking at the logs it seems to be the findprofilebynames endpoint so
E.g
Only works if you have console access on linux