Equipping an arrow as armour or a saddle allows you to shoot the arrow from that slot. Attempting to shoot after that will show the bow’s drawing animation, but releasing will not fire anything unless you have more arrows in your inventory.
Reloading the world without any arrows equipped fixes the issue.
Replication:
Give yourself an equippable arrow and equip it by using it.
/give @s minecraft:arrow[minecraft:equippable={slot:"body"}]
for example
Give yourself a bow and attempt to fire it by using it.
The first shot will fire the arrow from the armour slot you equipped it to.
This can be verified by collecting the arrow and re-equipping it.
Attempt to fire another arrow.
The draw animation will play, but releasing the button will not fire anything.
Can confirm in 1.21.8 aswell, and not only the body slot, doing the same thing for any armor slot for players results in the same thing