Grief Prevention

Grief Prevention

1M Downloads

Throwing errors when caching offline players after 1.21.5 upgrade

Closed this issue ยท 5 comments

commented

Observed Behavior

When testing upgrade from 1.21.4 to 1.21.5, GriefPrevention is throwing errors at the console over and over after server startup.
It seems to have to do with offline player caching.
We have been running a public server for over 9 years, and have more than 70k playerdata files in the world/playerdata/ folder. Parsing some of those seems to be causing the issue, which has never been an issue before and is not an issue on the production server running 1.21.4.

Expected Behavior

No errors to be thrown.

Reproduction steps

  1. Create a brand new Paper server version 1.21.5
  2. Add only the GriefPrevention plugin with default config
  3. Start the server, no errors are thrown, stop it again.
  4. Copy over the 'world/playerdata/' folder from the old 1.21.4 server (which for us contains more than 70k files)
  5. Start the server
  6. GriefPrevention throws errors over and over while doing offline player caching

Stack trace or error log

[09:02:02] [ServerMain/INFO]: [bootstrap] Running Java 21 (OpenJDK 64-Bit Server VM 21.0.5+11-LTS; Amazon.com Inc. Corretto-21.0.5.11.1) on Linux 5.15.0-125-generic (amd64)
[09:02:02] [ServerMain/INFO]: [bootstrap] Loading Paper 1.21.5-102-main@4765010 (2025-05-28T19:40:17Z) for Minecraft 1.21.5
[09:02:02] [ServerMain/INFO]: [PluginInitializerManager] Initializing plugins...
[09:02:02] [ServerMain/INFO]: [PluginInitializerManager] Initialized 1 plugin
[09:02:02] [ServerMain/INFO]: [PluginInitializerManager] Bukkit plugins (1):
 - GriefPrevention (16.18.4)
[09:02:06] [ServerMain/INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, name=PROD]
[09:02:08] [ServerMain/INFO]: Loaded 1373 recipes
[09:02:08] [ServerMain/INFO]: Loaded 1484 advancements
[09:02:08] [Server thread/INFO]: Starting minecraft server version 1.21.5
[09:02:08] [Server thread/INFO]: Loading properties
[09:02:08] [Server thread/INFO]: This server is running Paper version 1.21.5-102-main@4765010 (2025-05-28T19:40:17Z) (Implementing API version 1.21.5-R0.1-SNAPSHOT)
[09:02:08] [Server thread/INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling
[09:02:08] [Server thread/INFO]: Server Ping Player Sample Count: 12
[09:02:08] [Server thread/INFO]: Using 4 threads for Netty based IO
[09:02:09] [Server thread/INFO]: [MoonriseCommon] Paper is using 1 worker threads, 1 I/O threads
[09:02:09] [Server thread/INFO]: [ChunkTaskScheduler] Chunk system is using population gen parallelism: true
[09:02:09] [Server thread/INFO]: Default game type: SURVIVAL
[09:02:09] [Server thread/INFO]: Generating keypair
[09:02:09] [Server thread/INFO]: Starting Minecraft server on 0.0.0.0:31337
[09:02:09] [Server thread/INFO]: Using epoll channel type
[09:02:09] [Server thread/INFO]: Paper: Using libdeflate (Linux x86_64) compression from Velocity.
[09:02:09] [Server thread/INFO]: Paper: Using OpenSSL 3.x.x (Linux x86_64) cipher from Velocity.
[09:02:09] [Server thread/INFO]: [GriefPrevention] Loading server plugin GriefPrevention v16.18.4
[09:02:09] [Server thread/INFO]: Server permissions file permissions.yml is empty, ignoring it
[09:02:09] [Server thread/INFO]: Preparing level "world"
[09:02:10] [Server thread/INFO]: Preparing start region for dimension minecraft:overworld
[09:02:10] [Server thread/INFO]: Preparing spawn area: 0%
[09:02:11] [Server thread/INFO]: Preparing spawn area: 0%
[09:02:11] [Server thread/INFO]: Time elapsed: 777 ms
[09:02:11] [Server thread/INFO]: Preparing start region for dimension minecraft:the_nether
[09:02:11] [Server thread/INFO]: Preparing spawn area: 0%
[09:02:11] [Server thread/INFO]: Time elapsed: 126 ms
[09:02:11] [Server thread/INFO]: Preparing start region for dimension minecraft:the_end
[09:02:11] [Server thread/INFO]: Preparing spawn area: 0%
[09:02:11] [Server thread/INFO]: Time elapsed: 76 ms
[09:02:11] [Server thread/INFO]: [GriefPrevention] Enabling GriefPrevention v16.18.4
[09:02:11] [Server thread/INFO]: [GriefPrevention] Finished loading configuration.
[09:02:11] [Server thread/INFO]: [GriefPrevention] 0 total claims loaded.
[09:02:11] [Server thread/INFO]: [GriefPrevention] Customizable messages loaded.
[09:02:11] [Server thread/INFO]: [GriefPrevention] Finished loading data (File Mode).
[09:02:11] [Server thread/INFO]: [GriefPrevention] Boot finished.
[09:02:12] [Server thread/INFO]: [spark] Starting background profiler...
[09:02:12] [Server thread/INFO]: Done preparing level "world" (2.303s)
[09:02:12] [Server thread/INFO]: Running delayed init tasks
[09:02:12] [Server thread/INFO]: Done (10.867s)! For help, type "help"
[09:02:19] [Thread-5/WARN]: java.lang.ClassCastException: class com.mojang.serialization.Dynamic cannot be cast to class com.mojang.datafixers.util.Pair (com.mojang.serialization.Dynamic and com.mojang.dat
afixers.util.Pair are in unnamed module of loader java.net.URLClassLoader @2077d4de)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.optics.Proj1.view(Proj1.java:7)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.optics.Lens.lambda$eval$0(Lens.java:48)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$first$1(FunctionType.java:81)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.applyUnchecked(Comp.java:126)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.lambda$eval$2(Comp.java:118)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.lambda$mapRight$1(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either$Right.map(Either.java:99)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.mapRight(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$right$6(FunctionType.java:104)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.applyUnchecked(Comp.java:126)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.lambda$eval$2(Comp.java:118)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$first$1(FunctionType.java:81)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.applyUnchecked(Comp.java:126)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.lambda$eval$2(Comp.java:118)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$first$1(FunctionType.java:81)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.lambda$mapRight$1(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either$Right.map(Either.java:99)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.mapRight(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$right$6(FunctionType.java:104)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.applyUnchecked(Comp.java:126)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.lambda$eval$2(Comp.java:118)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.lambda$mapRight$1(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either$Right.map(Either.java:99)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.mapRight(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$right$6(FunctionType.java:104)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.applyUnchecked(Comp.java:126)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.lambda$eval$2(Comp.java:118)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.lambda$mapRight$1(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either$Right.map(Either.java:99)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.mapRight(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$right$6(FunctionType.java:104)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.applyUnchecked(Comp.java:126)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.lambda$eval$2(Comp.java:118)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.lambda$mapRight$1(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either$Right.map(Either.java:99)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.mapRight(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$right$6(FunctionType.java:104)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.lambda$mapRight$1(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either$Right.map(Either.java:99)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.mapRight(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$right$6(FunctionType.java:104)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.applyUnchecked(Comp.java:126)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.lambda$eval$2(Comp.java:118)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.lambda$mapRight$1(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either$Right.map(Either.java:99)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.mapRight(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$right$6(FunctionType.java:104)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.applyUnchecked(Comp.java:126)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.lambda$eval$2(Comp.java:118)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Fold.lambda$eval$2(Fold.java:91)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.lambda$mapRight$1(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either$Right.map(Either.java:99)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.mapRight(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$right$6(FunctionType.java:104)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$first$1(FunctionType.java:81)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.applyUnchecked(Comp.java:126)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.lambda$eval$2(Comp.java:118)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$first$1(FunctionType.java:81)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.applyUnchecked(Comp.java:126)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.lambda$eval$2(Comp.java:118)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.lambda$mapRight$1(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either$Right.map(Either.java:99)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.mapRight(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$right$6(FunctionType.java:104)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$first$1(FunctionType.java:81)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$first$1(FunctionType.java:81)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$first$1(FunctionType.java:81)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.lambda$mapRight$1(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either$Right.map(Either.java:99)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.mapRight(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$right$6(FunctionType.java:104)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.applyUnchecked(Comp.java:126)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.lambda$eval$2(Comp.java:118)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.lambda$mapRight$1(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either$Right.map(Either.java:99)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.mapRight(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$right$6(FunctionType.java:104)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.applyUnchecked(Comp.java:126)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.lambda$eval$2(Comp.java:118)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.lambda$mapRight$1(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either$Right.map(Either.java:99)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.mapRight(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$right$6(FunctionType.java:104)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.applyUnchecked(Comp.java:126)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.lambda$eval$2(Comp.java:118)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.lambda$mapRight$1(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either$Right.map(Either.java:99)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.mapRight(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$right$6(FunctionType.java:104)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.applyUnchecked(Comp.java:126)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.lambda$eval$2(Comp.java:118)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.lambda$mapRight$1(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either$Right.map(Either.java:99)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.mapRight(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$right$6(FunctionType.java:104)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.lambda$mapRight$1(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either$Right.map(Either.java:99)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.mapRight(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$right$6(FunctionType.java:104)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.applyUnchecked(Comp.java:126)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.lambda$eval$2(Comp.java:118)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.lambda$mapRight$1(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either$Right.map(Either.java:99)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.mapRight(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$right$6(FunctionType.java:104)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.applyUnchecked(Comp.java:126)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.lambda$eval$2(Comp.java:118)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Fold.lambda$eval$2(Fold.java:91)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.applyUnchecked(Comp.java:126)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.lambda$eval$2(Comp.java:118)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$wander$3(FunctionType.java:93)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.optics.ListTraversal.lambda$wander$0(ListTraversal.java:24)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$wander$4(FunctionType.java:94)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.lambda$mapRight$1(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either$Right.map(Either.java:99)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.util.Either.mapRight(Either.java:166)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$right$6(FunctionType.java:104)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$first$1(FunctionType.java:81)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.applyUnchecked(Comp.java:126)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.lambda$eval$2(Comp.java:118)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$first$1(FunctionType.java:81)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.applyUnchecked(Comp.java:126)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.lambda$eval$2(Comp.java:118)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$first$1(FunctionType.java:81)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.applyUnchecked(Comp.java:126)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.lambda$eval$2(Comp.java:118)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$first$1(FunctionType.java:81)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.applyUnchecked(Comp.java:126)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.lambda$eval$2(Comp.java:118)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.FunctionType$Instance.lambda$first$1(FunctionType.java:81)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.function.Function.lambda$compose$0(Function.java:68)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.applyUnchecked(Comp.java:126)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.functions.Comp.lambda$eval$2(Comp.java:118)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.types.Type.capWrite(Type.java:167)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.types.Type.lambda$readAndWrite$10(Type.java:159)
[09:02:19] [Thread-5/WARN]:     at com.mojang.serialization.DataResult$Success.flatMap(DataResult.java:201)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.types.Type.readAndWrite(Type.java:158)
[09:02:19] [Thread-5/WARN]:     at com.mojang.datafixers.DataFixerUpper.update(DataFixerUpper.java:78)
[09:02:19] [Thread-5/WARN]:     at net.minecraft.util.datafix.DataFixTypes.update(DataFixTypes.java:67)
[09:02:19] [Thread-5/WARN]:     at net.minecraft.util.datafix.DataFixTypes.update(DataFixTypes.java:75)
[09:02:19] [Thread-5/WARN]:     at net.minecraft.util.datafix.DataFixTypes.updateToCurrentVersion(DataFixTypes.java:79)
[09:02:19] [Thread-5/WARN]:     at net.minecraft.world.level.storage.PlayerDataStorage.lambda$load$2(PlayerDataStorage.java:116)
[09:02:19] [Thread-5/WARN]:     at java.base/java.util.Optional.map(Optional.java:260)
[09:02:19] [Thread-5/WARN]:     at net.minecraft.world.level.storage.PlayerDataStorage.load(PlayerDataStorage.java:114)
[09:02:19] [Thread-5/WARN]:     at org.bukkit.craftbukkit.CraftOfflinePlayer.getData(CraftOfflinePlayer.java:199)
[09:02:19] [Thread-5/WARN]:     at org.bukkit.craftbukkit.CraftOfflinePlayer.getBukkitData(CraftOfflinePlayer.java:203)
[09:02:19] [Thread-5/WARN]:     at org.bukkit.craftbukkit.CraftOfflinePlayer.getLastPlayed(CraftOfflinePlayer.java:238)
[09:02:19] [Thread-5/WARN]:     at GriefPrevention-16.18.4.jar//me.ryanhamshire.GriefPrevention.GriefPrevention$CacheOfflinePlayerNamesThread.run(GriefPrevention.java:3170)
[09:02:21] [Thread-5/WARN]: java.lang.ClassCastException: class com.mojang.serialization.Dynamic cannot be cast to class com.mojang.datafixers.util.Pair (com.mojang.serialization.Dynamic and com.mojang.dat
afixers.util.Pair are in unnamed module of loader java.net.URLClassLoader @2077d4de)

Server version

29.05 09:12:25 [Server] INFO This server is running Paper version 1.21.5-102-main@4765010 (2025-05-28T19:40:17Z) (Implementing API version 1.21.5-R0.1-SNAPSHOT)

GriefPrevention version

29.05 09:12:53 [Server] INFO GriefPrevention version 16.18.4

Configuration

# Default values are perfect for most servers.  If you want to customize and have a question, look for the answer here first: http://dev.bukkit.org/bukkit-plugins/grief-prevention/pages/setup-and-configuration/

GriefPrevention:
  SeaLevelOverrides:
    world: -1
    world_nether: -1
    world_the_end: -1
  Claims:
    Mode:
      world_the_end: Disabled
      world_nether: Disabled
      world: Survival
    PreventGlobalMonsterEggs: true
    PreventTheft: true
    ProtectCreatures: true
    PreventButtonsSwitches: true
    LockWoodenDoors: false
    LockTrapDoors: false
    LockFenceGates: true
    EnderPearlsRequireAccessTrust: true
    RaidTriggersRequireBuildTrust: true
    ProtectHorses: true
    ProtectDonkeys: true
    ProtectLlamas: true
    InitialBlocks: 100
    Claim Blocks Accrued Per Hour:
      Default: 100
    Max Accrued Claim Blocks:
      Default: 80000
    Accrued Idle Threshold: 0
    AccruedIdlePercent: 0
    AbandonReturnRatio: 1.0
    AutomaticNewPlayerClaimsRadius: 4
    AutomaticNewPlayerClaimsRadiusMinimum: 0
    ExtendIntoGroundDistance: 5
    MinimumWidth: 5
    MinimumArea: 100
    MaximumDepth: -2147483648
    InvestigationTool: STICK
    ModificationTool: GOLDEN_SHOVEL
    Expiration:
      ChestClaimDays: 7
      UnusedClaimDays: 14
      AllClaims:
        DaysInactive: 60
        ExceptWhenOwnerHasTotalClaimBlocks: 10000
        ExceptWhenOwnerHasBonusClaimBlocks: 5000
      AutomaticNatureRestoration:
        SurvivalWorlds: false
    AllowTrappedInAdminClaims: false
    MaximumNumberOfClaimsPerPlayer: 0
    CreationRequiresWorldGuardBuildPermission: true
    VillagerTradingRequiresPermission: true
    CommandsRequiringAccessTrust: /sethome
    DeliverManuals: true
    ManualDeliveryDelaySeconds: 30
    RavagersBreakBlocks: true
    FireSpreadsInClaims: false
    FireDamagesInClaims: false
    LecternReadingRequiresAccessTrust: true
  Spam:
    Enabled: true
    LoginCooldownSeconds: 60
    LoginLogoutNotificationsPerMinute: 5
    ChatSlashCommands: /me;/global;/local
    WhisperSlashCommands: /tell;/pm;/r;/whisper;/msg
    WarningMessage: Please reduce your noise level.  Spammers will be banned.
    BanOffenders: true
    BanMessage: Banned for spam.
    AllowedIpAddresses: 1.2.3.4; 5.6.7.8
    DeathMessageCooldownSeconds: 120
    Logout Message Delay In Seconds: 0
  PvP:
    RulesEnabledInWorld:
      world: true
      world_nether: true
      world_the_end: true
    ProtectFreshSpawns: true
    PunishLogout: true
    CombatTimeoutSeconds: 15
    AllowCombatItemDrop: false
    BlockedSlashCommands: /home;/vanish;/spawn;/tpa
    ProtectPlayersInLandClaims:
      PlayerOwnedClaims: true
      AdministrativeClaims: true
      AdministrativeSubdivisions: true
    AllowLavaDumpingNearOtherPlayers:
      PvPWorlds: true
      NonPvPWorlds: false
    AllowFlintAndSteelNearOtherPlayers:
      PvPWorlds: true
      NonPvPWorlds: false
    ProtectPetsOutsideLandClaims: false
  Economy:
    ClaimBlocksMaxBonus: 0
    ClaimBlocksPurchaseCost: 0.0
    ClaimBlocksSellValue: 0.0
  ProtectItemsDroppedOnDeath:
    PvPWorlds: false
    NonPvPWorlds: true
  BlockLandClaimExplosions: true
  BlockSurfaceCreeperExplosions: true
  BlockSurfaceOtherExplosions: true
  LimitSkyTrees: true
  LimitTreeGrowth: false
  PistonMovement: CLAIMS_ONLY
  PistonExplosionSound: true
  FireSpreads: false
  FireDestroys: false
  AdminsGetWhispers: true
  AdminsGetSignNotifications: true
  VisualizationAntiCheatCompatMode: false
  SmartBan: true
  Mute New Players Using Banned Words: true
  MaxPlayersPerIpAddress: 3
  SilenceBans: true
  Siege:
    Worlds: []
    BreakableBlocks:
    - LIME_WOOL
    - COBBLESTONE
    - OAK_PLANKS
    - ACACIA_PLANKS
    - BLUE_WOOL
    - GREEN_WOOL
    - ORANGE_WOOL
    - RED_WOOL
    - BLACK_WOOL
    - FERN
    - JUNGLE_PLANKS
    - SPRUCE_PLANKS
    - LIGHT_GRAY_WOOL
    - SHORT_GRASS
    - GRAVEL
    - SAND
    - CYAN_WOOL
    - YELLOW_WOOL
    - BIRCH_PLANKS
    - SNOW
    - GLASS
    - DIRT
    - WHITE_WOOL
    - GLASS_PANE
    - DARK_OAK_PLANKS
    - MAGENTA_WOOL
    - PINK_WOOL
    - BROWN_WOOL
    - GRASS_BLOCK
    - GRAY_WOOL
    - PURPLE_WOOL
    - DEAD_BUSH
    - LIGHT_BLUE_WOOL
    DoorsOpenDelayInSeconds: 300
    CooldownEndInMinutes: 60
  EndermenMoveBlocks: false
  SilverfishBreakBlocks: false
  CreaturesTrampleCrops: false
  RabbitsEatCrops: true
  HardModeZombiesBreakDoors: false
  MobProjectilesChangeBlocks: false
  Database:
    URL: ''
    UserName: ''
    Password: ''
  UseBanCommand: false
  BanCommandPattern: ban %name% %reason%
  Advanced:
    fixNegativeClaimblockAmounts: true
    ClaimExpirationCheckRate: 60
    OfflinePlayer_cache_days: 90
  Abridged Logs:
    Days To Keep: 7
    Included Entry Types:
      Social Activity: true
      Suspicious Activity: true
      Administrative Activity: false
      Debug: false
      Muted Chat Messages: false
  ConfigVersion: 1

Plugin list

29.05 09:14:22 [Server] INFO ? Server Plugins (1):
29.05 09:14:22 [Server] INFO Bukkit Plugins:
29.05 09:14:22 [Server] INFO - GriefPrevention

Running without GriefPrevention

  • I attempted running the server without GriefPrevention installed.
  • The problem does not occur when GriefPrevention is removed from the server.

Running with only GriefPrevention

  • I attempted running only GriefPrevention on the server.
  • The issue still occurs when GriefPrevention is the only plugin running.

Running on a fresh, clean server installation

  • I attempted testing for the issue on a new server.
  • The issue still occurs on a new server.

Using unmodified client

  • I attempted testing for the issue with the vanilla client.
  • The issue still occurs when using the vanilla client.

We appreciate you taking the time to fill out a bug report!

  • I searched for similar issues before submitting this bug report.
commented

You should report this to Paper - if a DFU is broken, they're the ones who would need to fix it. This is an internal server issue, not a GP issue.

You could try using --forceUpgrade, but that will likely just cause the DFU issues to appear earlier.

commented

You should report this to Paper - if a DFU is broken, they're the ones who would need to fix it. This is an internal server issue, not a GP issue.

You could try using --forceUpgrade, but that will likely just cause the DFU issues to appear earlier.

Thank you, I will report it to them.
Can I just ask what DFU is? I have no idea ๐Ÿ˜…

commented

Can I just ask what DFU is? I have no idea

DataFixerUpper, it's what Mojang calls its data migration tool it runs between each update on chunks.

commented

Can I just ask what DFU is? I have no idea

DataFixerUpper, it's what Mojang calls its data migration tool it runs between each update on chunks.

Thanks!
Just got an answer from Paper, and DFU is not yet ready for 1.21.5.
I'll just have to wait for it to be released.

Closing this one, thanks for the quick feedback!

commented

I'm assuming is related to #2467 ? and thus that one is also paper issue not spigot?