The bug
When disabling a datapack in the nether or the end, the datapack doesn't get disabled. This happens when you either change the execution dimension with execute in ... run datapack disable <pack> to the nether or the end, or if you're are already in one of those dimensions and run datapack disable <pack>
How to reproduce
Open a world (which has the vanilla datapack enabled) and make sure you're in the overworld:
/execute in the overworld run teleport @s 0 0 0Run either one of these commands and it will not disable the vanilla datapack:
/execute in the_nether run datapack disable vanilla /execute in the_end run datapack disable vanillaCheck what datapacks are enabled
/datapack list→ as you can see, the vanilla datapack is still enabled
Teleport to the nether or the end
/execute in the_nether run teleport @s 0 0 0 /execute in the_end run teleport @s 0 0 0Disable the datapack
/datapack disable vanillaList all the datapacks
/datapack list→ the vanilla datapack is still enabled
It seems as though it is disabled, then instantly re-enabled.
Also I can confirm it affects user data packs as well as vanilla.