Function not fully running from advancement reward, but runs normally when using `/function`

Hello! For my modpack, I need to run some commands on world creation. I made an advancement with the minecraft:tick trigger, which runs my function. And for all I can tell, it runs the function partially (?) Here is the function: # Prevent the function from running on rejoin # TODO does this actually work? say "Executing function init..." execute if data storage minecraft:world created run return 1 data modify storage minecraft:world created set value 1 say "Executing function init (for real this time)..." # Place initial cube say "Placing blocks..." fill -10 -1 -10 10 20 10 minecraft:bedrock fill -3 0 -3 3 6 3 minecraft:air setblock 0 0 0 minecraft:torch say "Placed blocks!" # Give initial items say "Giving items..." clear @a give @a minecraft:dirt give @a minecraft:oak_sapling give @a supplementaries:flax_seeds say "Gave items!" # Teleport player into the cube say "Teleporting player..." tp @a 0 0 0 setworldspawn 0 0 0 spawnpoint @a 0 0 0 say "Teleported player!" Now what happens is that no blocks get placed, but I am given the starter items and am teleported to 0/0/0, ending up with me falling into the void (I use a void world preset). Curiously, when I use /function to run that exact same function, the blocks are placed as expected. I tried some things, including the say commands to verify it's actually running, and commenting out everything that isn't the fill and setblock commands, to no avail.
Continue to help post