The bug
I loaded a resource pack containing a json model. This model uses a texture whose name contains uppercase letters (see picture attached). Whether this texture exists or not does not matter, the uppercase letters in the json file resulted in multiple errors (see log above).
Finally, minecraft did not load the resource pack, but the default assets were not loaded (see pictures attached).
Workaround
A simple reload(F3 + T) lets the default assets appear.
Changing the uppercase letters to lowercase makes the use of the resource pack possible again.
Steps to reproduce
Load the attached
[media]
[...]
21:09:45 dfb Unable to load model: 'minecraft:item/pickaxe' referenced from: minecraft:iron_pickaxe#inventory: java.io.FileNotFoundException: minecraft:models/item/pickaxe.json
21:09:45 cfs Caught error stitching, removing all assigned resourcepacks
i: Non [a-z0-9/._-] character in path of location: minecraft:halb/leggings/item (1)
at pc.<init>(SourceFile:38)
at pc.<init>(SourceFile:43)
at cvb.a(SourceFile:200)
at cvb$$Lambda$937/2015935595.accept(Unknown Source)
at java.util.ArrayList.forEach(ArrayList.java:1249)
at cvb.a(SourceFile:200)
at cvb.a(SourceFile:196)
at cvb$$Lambda$935/876084303.accept(Unknown Source)
at java.util.ArrayList.forEach(ArrayList.java:1249)
at cvb.a(SourceFile:191)
at dfb.a(SourceFile:336)
at dfb$$Lambda$931/1985894997.apply(Unknown Source)
at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:267)
at java.util.HashMap$ValueSpliterator.forEachRemaining(HashMap.java:1612)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
at dfb.a(SourceFile:336)
at dfc.a(SourceFile:24)
at vh.c(SourceFile:124)
at vh.a(SourceFile:107)
at cfs.f(SourceFile:684)
at cmo$2.a(SourceFile:65)
at cgt.mouseClicked(SourceFile:103)
at chp.mouseClicked(SourceFile:46)
at cfu.b(SourceFile:83)
at cfu$$Lambda$1007/1191848005.run(Unknown Source)
at ckc.a(SourceFile:430)
at cfu.a(SourceFile:83)
at cfu$$Lambda$838/41975027.invoke(Unknown Source)
at org.lwjgl.glfw.GLFWMouseButtonCallbackI.callback(GLFWMouseButtonCallbackI.java:36)
at org.lwjgl.system.JNI.invokeV(Native Method)
at org.lwjgl.glfw.GLFW.glfwWaitEventsTimeout(GLFW.java:3108)
at cgc.a(SourceFile:321)
at cfs.c(SourceFile:875)
at cfs.a(SourceFile:395)
at net.minecraft.client.main.Main.main(SourceFile:144)
21:09:45 vh Reloading ResourceManager: Default
I loaded a resource pack containing a json model. This model uses a texture whose name contains uppercase letters (see picture attached). Whether this texture exists or not does not matter, the uppercase letters in the json file resulted in multiple errors (see log above).
Finally, minecraft did not load the resource pack, but the default assets were not loaded (see pictures attached).
A simple reload(F3 + T) lets the default assets appear.
Changing the uppercase letters to lowercase makes the use of the resource pack possible again.
Steps to reproduce
Load the attached
[media]Attachments
Comments 19
That's not the problem. The problem is that minecraft unloads EVERY resource, even those that were not changed by any resource pack. It's impossible to read any Text (and hard to exit, you don't know where to click). Even if you manage to get into the resource pack menu, only the default pack will be shown as active. This makes it impossible to undo.
The bug is not that the resource pack does not load. The bug is that minecraft then unloads all resources.
So, if an invalid resource pack would crash the entire game, that would be an invalid report, too?
It would make sense, if only the affected resource pack would get unloaded, in fact this is what happened in 1.12. But unloading every single resource pack, including even default, making it impossible to play and very hard to even close the game? Well, that should certainly considered to be a bug imho.
Crashing would even be better than this, honestly, because of the unreadable buttons and how hard it is to exit the game. A crash on the other hand exits the game automatically.
Minecraft even warns you when you try to load an incompatible resource pack. Honestly, if you dismiss the warning, you should know that things can break.
As incompatible resource packs will be automatically unloaded when upgrading to 1.13, this won't be a problem to anyone who doesn't ignore the warning.
Confirmed for 1.16.2. After failing to load the incompatible resource pack, other resource packs get disabled.Â
Resource packs and data packs may not contain files with upper case letters. To be exact, they may only use letters in [a-z0-9/._-], that's it. If a pack contains characters not in this set, it is incompatible with 1.13+.