It's likely to do with the lag between the client and server. The client handles where the player moves, and the server handles where the blocks spawn, so there's a (very difficult to solve) slight desync between them there. I have only ever written spells on servers, so I'm used to having to cast my bridges one or two blocks in front of my feet so that the server has time to tell my client that the next block is ready before I try to step on it and fall to my doom.