Question Server won't start, compiled from the latest git commit (currently d1b1c6f)

surfrock66

New member
Mar 14, 2022
11
0
1
Evening; I'm posting it here to help understand if it is a Paper issue, or an issue with a plugin/datapack. By the looks, we don't even get to plugin loading, so I don't think it's that. The only incompatible datapack is the "bukkit" one which appears to get generated? Even if I delete it it reappears. I'm attaching a crash log, but the relevant console output is here:

Code:
[20:46:20 ERROR]: Encountered an unexpected exception
org.spongepowered.configurate.serialize.SerializationException: [anticheat, anti-xray, hidden-blocks] of type java.lang.String: Value must be provided as a scalar!
    at org.spongepowered.configurate.serialize.ScalarSerializer.deserialize(ScalarSerializer.java:101) ~[configurate-core-4.1.2.jar:?]
    at org.spongepowered.configurate.serialize.AbstractListChildSerializer.deserialize(AbstractListChildSerializer.java:69) ~[configurate-core-4.1.2.jar:?]
    at org.spongepowered.configurate.objectmapping.ObjectMapperImpl.load0(ObjectMapperImpl.java:64) ~[configurate-core-4.1.2.jar:?]
    at org.spongepowered.configurate.objectmapping.ObjectMapperImpl.load(ObjectMapperImpl.java:48) ~[configurate-core-4.1.2.jar:?]
    at org.spongepowered.configurate.objectmapping.ObjectMapperFactoryImpl.deserialize(ObjectMapperFactoryImpl.java:204) ~[configurate-core-4.1.2.jar:?]
    at org.spongepowered.configurate.objectmapping.ObjectMapperImpl.load0(ObjectMapperImpl.java:64) ~[configurate-core-4.1.2.jar:?]
    at org.spongepowered.configurate.objectmapping.ObjectMapperImpl.load(ObjectMapperImpl.java:48) ~[configurate-core-4.1.2.jar:?]
    at org.spongepowered.configurate.objectmapping.ObjectMapperFactoryImpl.deserialize(ObjectMapperFactoryImpl.java:204) ~[configurate-core-4.1.2.jar:?]
    at org.spongepowered.configurate.objectmapping.ObjectMapperImpl.load0(ObjectMapperImpl.java:64) ~[configurate-core-4.1.2.jar:?]
    at org.spongepowered.configurate.objectmapping.ObjectMapperImpl.load(ObjectMapperImpl.java:48) ~[configurate-core-4.1.2.jar:?]
    at org.spongepowered.configurate.objectmapping.ObjectMapperFactoryImpl.deserialize(ObjectMapperFactoryImpl.java:204) ~[configurate-core-4.1.2.jar:?]
    at org.spongepowered.configurate.AbstractConfigurationNode.get(AbstractConfigurationNode.java:151) ~[configurate-core-4.1.2.jar:?]
    at org.spongepowered.configurate.ConfigurationNode.get(ConfigurationNode.java:520) ~[configurate-core-4.1.2.jar:?]
    at org.spongepowered.configurate.ConfigurationNode.require(ConfigurationNode.java:407) ~[configurate-core-4.1.2.jar:?]
    at io.papermc.paper.configuration.Configurations.initializeWorldDefaultsConfiguration(Configurations.java:139) ~[paper-1.19.jar:git-Paper-"d1b1c6f"]
    at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:221) ~[paper-1.19.jar:git-Paper-"d1b1c6f"]
    at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1121) ~[paper-1.19.jar:git-Paper-"d1b1c6f"]
    at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:302) ~[paper-1.19.jar:git-Paper-"d1b1c6f"]
    at java.lang.Thread.run(Thread.java:833) ~[?:?]
    Suppressed: org.spongepowered.configurate.serialize.SerializationException: [anticheat, anti-xray, replacement-blocks] of type java.lang.String: Value must be provided as a scalar!
        at org.spongepowered.configurate.serialize.ScalarSerializer.deserialize(ScalarSerializer.java:101) ~[configurate-core-4.1.2.jar:?]
        at org.spongepowered.configurate.serialize.AbstractListChildSerializer.deserialize(AbstractListChildSerializer.java:69) ~[configurate-core-4.1.2.jar:?]
        at org.spongepowered.configurate.objectmapping.ObjectMapperImpl.load0(ObjectMapperImpl.java:64) ~[configurate-core-4.1.2.jar:?]
        at org.spongepowered.configurate.objectmapping.ObjectMapperImpl.load(ObjectMapperImpl.java:48) ~[configurate-core-4.1.2.jar:?]
        at org.spongepowered.configurate.objectmapping.ObjectMapperFactoryImpl.deserialize(ObjectMapperFactoryImpl.java:204) ~[configurate-core-4.1.2.jar:?]
        at org.spongepowered.configurate.objectmapping.ObjectMapperImpl.load0(ObjectMapperImpl.java:64) ~[configurate-core-4.1.2.jar:?]
        at org.spongepowered.configurate.objectmapping.ObjectMapperImpl.load(ObjectMapperImpl.java:48) ~[configurate-core-4.1.2.jar:?]
        at org.spongepowered.configurate.objectmapping.ObjectMapperFactoryImpl.deserialize(ObjectMapperFactoryImpl.java:204) ~[configurate-core-4.1.2.jar:?]
        at org.spongepowered.configurate.objectmapping.ObjectMapperImpl.load0(ObjectMapperImpl.java:64) ~[configurate-core-4.1.2.jar:?]
        at org.spongepowered.configurate.objectmapping.ObjectMapperImpl.load(ObjectMapperImpl.java:48) ~[configurate-core-4.1.2.jar:?]
        at org.spongepowered.configurate.objectmapping.ObjectMapperFactoryImpl.deserialize(ObjectMapperFactoryImpl.java:204) ~[configurate-core-4.1.2.jar:?]
        at org.spongepowered.configurate.AbstractConfigurationNode.get(AbstractConfigurationNode.java:151) ~[configurate-core-4.1.2.jar:?]
        at org.spongepowered.configurate.ConfigurationNode.get(ConfigurationNode.java:520) ~[configurate-core-4.1.2.jar:?]
        at org.spongepowered.configurate.ConfigurationNode.require(ConfigurationNode.java:407) ~[configurate-core-4.1.2.jar:?]
        at io.papermc.paper.configuration.Configurations.initializeWorldDefaultsConfiguration(Configurations.java:139) ~[paper-1.19.jar:git-Paper-"d1b1c6f"]
        at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:221) ~[paper-1.19.jar:git-Paper-"d1b1c6f"]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1121) ~[paper-1.19.jar:git-Paper-"d1b1c6f"]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:302) ~[paper-1.19.jar:git-Paper-"d1b1c6f"]
        at java.lang.Thread.run(Thread.java:833) ~[?:?]
[20:46:20 WARN]: Failed to get system info for World Generation
java.lang.NullPointerException: Cannot invoke "net.minecraft.world.level.storage.SaveData.B()" because "this.m" is null
    at net.minecraft.server.MinecraftServer.lambda$fillSystemReport$15(MinecraftServer.java:1692) ~[paper-1.19.jar:git-Paper-"d1b1c6f"]
    at net.minecraft.SystemReport.setDetail(SystemReport.java:61) ~[paper-1.19.jar:git-Paper-"d1b1c6f"]
    at net.minecraft.server.MinecraftServer.fillSystemReport(MinecraftServer.java:1691) ~[paper-1.19.jar:git-Paper-"d1b1c6f"]
    at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1213) ~[paper-1.19.jar:git-Paper-"d1b1c6f"]
    at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:302) ~[paper-1.19.jar:git-Paper-"d1b1c6f"]
    at java.lang.Thread.run(Thread.java:833) ~[?:?]
[20:46:20 ERROR]: This crash report has been saved to: /var/minecraft/./crash-reports/crash-2022-06-16_20.46.20-server.txt
 

surfrock66

New member
Mar 14, 2022
11
0
1
Hrmmm...I read the doc, I didn't see a config change that needed to be made and it worked in 1.18.2, is it possible it's a problem with the config format conversion?

Here is the relevant chunk of config I think:

Code:
anticheat:
  anti-xray:
    chunk-edge-mode: 3
    enabled: false
    engine-mode: 1
    hidden-blocks: {}
    lava-obscures: false
    max-block-height: 64
    max-chunk-section-index: 3
    replacement-blocks: {}
    update-radius: 2
    use-permission: false
 

Machine Maker

Paper Developer
Staff member
Dec 17, 2021
132
6
19
18
California
replacement-blocks and hidden-blocks need to be lists, not maps. {} denotes an empty map and [] denotes an empty list.

Can you post your old paper.yml? It should be backed up in config/legacy-backup/
 

surfrock66

New member
Mar 14, 2022
11
0
1
Interesting. In 1.18.2, in my paper.yml, I have the following entries:

Code:
world-settings:
  default:
    slime-spawn-height:
      swamp-biome:
        maximum: 70.0
        minimum: 50.0
      slime-chunk:
        maximum: 40.0
    monster-spawn-max-light-level: -1
    wateranimal-spawn-height:
      maximum: default
      minimum: default
    anticheat:
      obfuscation:
        items:
          hide-itemmeta: false
          hide-durability: false

Code:
    anti-xray:
      max-block-height: 64
      use-permission: false
      lava-obscures: false
      enabled: false
      engine-mode: 1
      chunk-edge-mode: 3
      max-chunk-section-index: 3
      update-radius: 2
      hidden-blocks: {}
      replacement-blocks: {}

Was this a change I missed in the move to 1.19, or should this have been handled by the config conversion process (that made the config directory and split the files)?

It's easy enough to fix, but given it worked before, I can't be the only person who will run into this.
 

Machine Maker

Paper Developer
Staff member
Dec 17, 2021
132
6
19
18
California
Was this a change I missed in the move to 1.19, or should this have been handled by the config conversion process (that made the config directory and split the files)?

This should've been handled. I'm not sure why you've got empty map ({}) in your older config. I assumed they'd all be empty lists.
 

surfrock66

New member
Mar 14, 2022
11
0
1
Should I file a bug? Or was this some older issue; my 1.18.2 config should never have been allowed in that state? Just let me know how I can help, I appreciate your time :)
 

electronicboy

Administrator
Staff member
Dec 11, 2021
225
10
38
28
that OG config was invalid, but the logic reads that config would of just basically ignored that and probably just used the default list, which is not saved back; given that anti-xray is disabled in that config this wouldn't of had any side effects bar the fact that the invalid config is hidden; maybe this can be shimmied but from what I see, not technically a bug