Saved item attributes break when moving from 1.21.1 to 1.21.4+ (and 1.21.5)
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
When updating from 1.21.1 to 1.21.4 or 1.21.5 item meta serialization should automatically change from the old serialization to new one. All item attributes / components should be kept
Observed/Actual behavior
Updating from 1.21.1 to 1.21.4 or 1.21.5 breaks all item attributes of saved item meta when serializing in 1.21.1 with ConfigurationSerializable.serialize() and deserializing with ConfigurationSerialization.deserializeObject()
I did not test the methods, I looked them up on Shopkeepers source here where the item attributes are lost on conversion.
Steps/models to reproduce
- Save items in 1.21.1 with a plugin that uses
ConfigurationSerializable.serialize()andConfigurationSerialization.deserializeObject(). (for example Shopkeepers, ItemEdit, ExcellentCrates or playerkits2) - Update to 1.21.4 or 1.21.5 (and possibly update plugins if necessary).
- Take items from the save, and test if they have attributes or not
Plugin and Datapack List
nightcore 2.7.5.2 (for excellentCrates), ExcellentCrates 6.2.0, ItemEdit 3.7.0, Shopkeepers 2.23.5
Paper version
Old version
This server is running Paper version 1.21.1-133-ver/1.21.1@3cb8529 (2025-03-28T16:14:36Z) (Implementing API version 1.21.1-R0.1-SNAPSHOT)
You are running the latest version
Earlier test
This server is running Paper version 1.21.4-229-ver/1.21.4@e2ca477 (2025-05-09T15:52:06Z) (Implementing API version 1.21.4-R0.1-SNAPSHOT)
You are 2 version(s) behind
Download the new version at: https://papermc.io/downloads/paper
Previous version: 1.21.1-21-cfa3c61 (MC: 1.21.1)
New test
This server is running Paper version 1.21.5-93-main@87349c3 (2025-05-21T16:27:20Z) (Implementing API version 1.21.5-R0.1-SNAPSHOT)
You are running the latest version
Previous version: 1.21.1-133-3cb8529 (MC: 1.21.1)
Other
I do not know what is the version where the error first occurs, but it's between 1.21.1 and 1.21.4.
It's also possible that other methods than ConfigurationSerializable.serialize() and ConfigurationSerialization.deserializeObject() are affected, as I did not look up other than what method Shopkeepers uses.
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 by reproducing the migration from Paper 1.21.1 to 1.21.4 or 1.21.5 using ConfigurationSerializable.serialize() and ConfigurationSerialization.deserializeObject(). Compare the serialized item metadata before and after conversion, using the Shopkeepers ItemSerialization.java reference mentioned in the report. Done means item attributes/components are preserved across the version migration and the affected serialization path is identified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100