iteration not working

the first element is printed out but the rest is not

#start iteration.mcfunction

# Get amount of all the elements in the array to avoid looping twice.
execute store result score @s biomancer_vars.array.len run data get storage biomancer:crafting players_inv 1

# Set current amount of iterations to 0
scoreboard players set @s biomancer_vars.array 0

function biomancer:crafting/nbt_crafting/array_iteration/iteration
#iteration.mcfunction

# Print out current element
tellraw @a {"storage":"biomancer:crafting","nbt":"players_inv[0]"}

say iteration

# Indicate successful iteration
scoreboard players add @s biomancer_vars.array 1

# Switch onto the next element in the array
data modify storage biomancer:crafting players_inv append from storage biomancer:crafting players_inv[0]
data remove storage biomancer:crafting players_inv[0]

# Call itself unless it exceeded array's length
execute unless score @s biomancer_vars.array >= @s biomancer_vars.array.len run function biomancer:crafting/nbt_crafting/array_iteration/iteration
Continue to help post