Serverside Items Get Replaced By Clientside Representations
Possibly related to #204 but with a different cause.
Bug
After a server crash and restart, all Polymer items that were loaded within a certain period of time were replaced with their clientside representations. This included items from the inventory, ender chest, and chests.
A similar issue has happened before on the server when a previous version of a mod loaded too much data into a Polymer item data component.
Environment
- Minecraft 1.21.1
- Polymer 0.9.17+1.21.1
Context
On the Dystoria Cobblemon server we use many Polymer items from both public and private mods. After a server crash and reboot, many players reported to us that their items from the following mods were not working:
- Gimme That Gimmick
- Daycare+
- MoreTools
- private Dystoria mods (which actually just borrow GTG's register methods)
Newly crafted and newly spawned items from those mods worked as normal. The affected item stacks were wholey converted into their clientside representations; this was inspected via /data and provided a very similar output to the issue described in #204.
Some players reported that their items were working again after some time. Other players dropped their items to an admin for help, only for those items to suddenly be normal again. However, most players' items did not randomly fix themselves.
Request
Ideally this bug could be fixed, but I also understand that this very difficult to reproduce and seems at minimum to be related to the strain on the server.
So if the bug cannot be easily fixed, it would be great if the Polymer API offered a way to reverse-engineer an item from its clientside representation. Such as the version sent to the player having a flag in the NBT to mark it as being a real serverside item and not an item that was created intentionally with the command that gives you the clientside version. This way we'd be able to quickly remedy the problem if it happens again.
Logs
Here are the complete server logs from before and after the incident.