Certain chunks not updating
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 12.7k
- Forks
- 3.5k
- Avg merge
- 3d 13h
- Merged PRs (30d)
- 11
Description
Expected behavior
Chunk to update from 1.20.4 to 1.20.6 without issue
Observed/Actual behavior
The chunk was reset to default world generation, another chunk lost all its entities.
Steps/models to reproduce
These are comparisons between the world in 1.20.4 and 1.20.6. I simply had the world in a 1.20.4 server then swapped the server jar from the 1.20.4 paper jar to 1.20.6 paper jar and when exploring discovered these chunks had been reset and in the one entities removed.
Plugin and Datapack List
Plugins: FreedomChat, Luckperms, spark
Datapacks: Vanilla, Bukkit, lwvoting, lwmeteorite, Timer, lwcommands, lwbiomes, paper, lwloot, beacons
Their are two different plugins lists as we tried this on two separate paper servers, datapacks remained the same however and issues remained the same
Plugins on 2nd server: Fast ASync Voxel Sniper, Fast ASync World Edit, freedomchat
Paper version
This server is running Paper version 1.20.6-137-master@bd5867a (2024-06-04T21:04:28Z) (Implementing API version 1.20.6-R0.1-SNAPSHOT)\nYou are running the latest version\nPrevious version: 1.20.6-115-9d6f2cc (MC: 1.20.6)
Other
This is a custom map. If you load the world in singleplayer or outside of paper the chunks stay their unless the world has already been loaded by paper.
These stack traces appeared when this occured(I have the stack traces for 2 of the chunks but I haven't found the stack trace for chunk #3 yet)
java.lang.NullPointerException: Cannot invoke "ca.spottedleaf.dataconverter.types.ListType.size()" because "armor" is null
at ca.spottedleaf.dataconverter.minecraft.versions.V3808$1BodyArmorConverter.convert(V3808.java:47) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.versions.V3808$1BodyArmorConverter.convert(V3808.java:17) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType$1.convert(IDDataType.java:30) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType$1.convert(IDDataType.java:24) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType.convert(IDDataType.java:97) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.versions.V704.lambda$register$2(V704.java:386) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType.convert(IDDataType.java:133) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.walkers.generic.WalkerUtils.convert(WalkerUtils.java:20) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.versions.V99.lambda$register$11(V99.java:339) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.datatypes.MCDataType.convert(MCDataType.java:111) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.walkers.generic.WalkerUtils.convertList(WalkerUtils.java:35) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.versions.V705.lambda$register$1(V705.java:184) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType.convert(IDDataType.java:145) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.walkers.generic.WalkerUtils.convertList(WalkerUtils.java:35) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.versions.V99.lambda$register$8(V99.java:309) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.datatypes.MCDataType.convert(MCDataType.java:111) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.datatypes.MCDataType.convert(MCDataType.java:13) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.MCDataConverter.convert(MCDataConverter.java:56) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.MCDataConverter.convertTag(MCDataConverter.java:30) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at net.minecraft.world.level.chunk.storage.EntityStorage.upgradeChunkTag(EntityStorage.java:136) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at io.papermc.paper.chunk.system.scheduling.ChunkLoadTask$EntityDataLoadTask.runOffMain(ChunkLoadTask.java:470) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at io.papermc.paper.chunk.system.scheduling.GenericDataLoadTask$ProcessOffMainTask.run(GenericDataLoadTask.java:307) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadedTaskQueue$PrioritisedTask.executeInternal(PrioritisedThreadedTaskQueue.java:351) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadedTaskQueue.executeTask(PrioritisedThreadedTaskQueue.java:118) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadPool$PrioritisedThread.pollTasks(PrioritisedThreadPool.java:274) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedQueueExecutorThread.run(PrioritisedQueueExecutorThread.java:50) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
[03:53:39] [Tuinity Chunk System Worker #0/ERROR]: [NewChunkHolder] Unhandled entity data load exception, data data will be lost:
java.lang.NullPointerException: Cannot invoke "ca.spottedleaf.dataconverter.types.ListType.size()" because "armor" is null
at ca.spottedleaf.dataconverter.minecraft.versions.V3808$1BodyArmorConverter.convert(V3808.java:47) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.versions.V3808$1BodyArmorConverter.convert(V3808.java:17) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType$1.convert(IDDataType.java:30) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType$1.convert(IDDataType.java:24) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType.convert(IDDataType.java:97) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.versions.V704.lambda$register$2(V704.java:386) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType.convert(IDDataType.java:133) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.walkers.generic.WalkerUtils.convert(WalkerUtils.java:20) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.versions.V99.lambda$register$11(V99.java:339) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.datatypes.MCDataType.convert(MCDataType.java:111) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.walkers.generic.WalkerUtils.convertList(WalkerUtils.java:35) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.versions.V705.lambda$register$1(V705.java:184) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType.convert(IDDataType.java:145) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.walkers.generic.WalkerUtils.convertList(WalkerUtils.java:35) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.versions.V99.lambda$register$8(V99.java:309) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.datatypes.MCDataType.convert(MCDataType.java:111) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.datatypes.MCDataType.convert(MCDataType.java:13) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.MCDataConverter.convert(MCDataConverter.java:56) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.MCDataConverter.convertTag(MCDataConverter.java:30) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at net.minecraft.world.level.chunk.storage.EntityStorage.upgradeChunkTag(EntityStorage.java:136) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at io.papermc.paper.chunk.system.scheduling.ChunkLoadTask$EntityDataLoadTask.runOffMain(ChunkLoadTask.java:470) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at io.papermc.paper.chunk.system.scheduling.GenericDataLoadTask$ProcessOffMainTask.run(GenericDataLoadTask.java:307) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadedTaskQueue$PrioritisedTask.executeInternal(PrioritisedThreadedTaskQueue.java:351) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadedTaskQueue.executeTask(PrioritisedThreadedTaskQueue.java:118) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadPool$PrioritisedThread.pollTasks(PrioritisedThreadPool.java:274) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedQueueExecutorThread.run(PrioritisedQueueExecutorThread.java:50) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
[03:53:39] [Tuinity Chunk System Worker #0/ERROR]: [ChunkLoadTask] Failed to parse chunk data for task: GenericDataLoadTask{class: io.papermc.paper.chunk.system.scheduling.ChunkLoadTask$ChunkDataLoadTask, world: world, chunk: (7,-32), hashcode: 813850109, priority: COMPLETING, type: CHUNK_DATA}, chunk data will be lost
net.minecraft.ReportedException: Updated chunk
at net.minecraft.world.level.chunk.storage.ChunkStorage.upgradeChunkTag(ChunkStorage.java:141) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at io.papermc.paper.chunk.system.scheduling.ChunkLoadTask$ChunkDataLoadTask.runOffMain(ChunkLoadTask.java:333) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at io.papermc.paper.chunk.system.scheduling.GenericDataLoadTask$ProcessOffMainTask.run(GenericDataLoadTask.java:307) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadedTaskQueue$PrioritisedTask.executeInternal(PrioritisedThreadedTaskQueue.java:351) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadedTaskQueue.executeTask(PrioritisedThreadedTaskQueue.java:118) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadPool$PrioritisedThread.pollTasks(PrioritisedThreadPool.java:274) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedQueueExecutorThread.run(PrioritisedQueueExecutorThread.java:50) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
Caused by: java.lang.NullPointerException: Cannot invoke "ca.spottedleaf.dataconverter.types.ListType.size()" because "armor" is null
at ca.spottedleaf.dataconverter.minecraft.versions.V3808$1BodyArmorConverter.convert(V3808.java:47) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.versions.V3808$1BodyArmorConverter.convert(V3808.java:17) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType$1.convert(IDDataType.java:30) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType$1.convert(IDDataType.java:24) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType.convert(IDDataType.java:97) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.versions.V704.lambda$register$2(V704.java:386) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType.convert(IDDataType.java:133) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType.convert(IDDataType.java:15) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.walkers.generic.DataWalkerListPaths.walk(DataWalkerListPaths.java:29) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.walkers.generic.DataWalkerListPaths.walk(DataWalkerListPaths.java:8) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType.convert(IDDataType.java:145) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.walkers.generic.WalkerUtils.convertList(WalkerUtils.java:35) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.versions.V2843.lambda$register$0(V2843.java:72) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.datatypes.MCDataType.convert(MCDataType.java:111) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.datatypes.MCDataType.convert(MCDataType.java:13) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.MCDataConverter.convert(MCDataConverter.java:56) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at ca.spottedleaf.dataconverter.minecraft.MCDataConverter.convertTag(MCDataConverter.java:30) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
at net.minecraft.world.level.chunk.storage.ChunkStorage.upgradeChunkTag(ChunkStorage.java:123) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
... 6 more```
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with V3808.java's BodyArmorConverter and trace the failure through EntityStorage.java, ChunkStorage.java, and ChunkLoadTask.java using the supplied stack traces. Reproduce the 1.20.4-to-1.20.6 upgrade with the affected chunks and verify that chunk data and entities are preserved without conversion or parsing errors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend, game-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100