mojira.dev
MC-123756

Trying to load broken resource pack also disables all intact resource packs ("Caught error stitching, removing all assigned resourcepacks")

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

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+.

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.

Invalid resource pack -> invalid bug report.

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.

9 more comments

The removal of the default resource pack was fixed in 1.13.1

Is this still an issue in 1.15.2 or later?

Confirmed for 1.16.2. After failing to load the incompatible resource pack, other resource packs get disabled. 

Cannot reproduce in 1.17.1

Cannot reproduce this either in 1.18.2 with the provided resource pack. Please let us know if you still experience this in the latest versions.

David Schilling

(Unassigned)

Confirmed

(Unassigned)

assets, rendering, texture

Minecraft 17w50a, Minecraft 1.13-pre3, Minecraft 1.13-pre6, Minecraft 1.13-pre7, Minecraft 1.13, Minecraft 1.13.1, 1.16.2

Retrieved