So the "minecraft" namespace works just fine for (non-vanilla) recipes. It's when you have more than one namespace in a datapack that creates the issue. Here are my testing results: Same datapack, two different namespaces, same file name(same recipe): 'Encountered an unexpected exception java.lang.IllegalStateException: Duplicate recipe ignored with ID _playerdata:dirt_to_diamond' Same datapack, two different namespaces, different file names(same recipe): 'Encountered an unexpected exception java.lang.IllegalStateException: Duplicate recipe ignored with ID _playerdata:dirt_to_diamond' Same datapack, two different namespaces, same file name(different recipes) 'Encountered an unexpected exception java.lang.IllegalStateException: Duplicate recipe ignored with ID _playerdata:dirt_to_diamond' Same datapack, two different namespaces, different file names(different recipes): 'Encountered an unexpected exception java.lang.IllegalStateException: Duplicate recipe ignored with ID _recipes:diamond_to_dirt' Two unique datapacks, two different namespaces, same file name: Works as intended (replaces) same datapack, 1 namespace with functions the other namespace with recipes: 'MinecraftServer Encountered an unexpected exception java.lang.IllegalStateException: Duplicate recipe ignored with ID _recipes:diamond_to_dirt' 1 datapack, 1 namespace (minecraft), recipes: Works as intended Okay, further testing also shows that trying to replace default recipes in a minecraft folder also produce the same error: 'Encountered an unexpected exception java.lang.IllegalStateException: Duplicate recipe ignored with ID minecraft:armor_stand'