In vi-mode backspace doesn't currently delete characters that were typed before switching to normal mode and back to insert mode.
E.g.:
1) Type something
2) Leave insert mode/enter normal mode
3) Enter insert mode again
4) Try to delete the previously typed string using backspace.
Here is what I mean:

Confirmed.
@ghost @kwinczek guys, you've implemented vi-mode in Spaceship. Can you help with that?
I'm pretty sure this is the normal behavior and has nothing to do with spaceship. See here for a solution.
Thanks to @noctuid, the solution of this problem is add this line in your .zshrc.
bindkey "^?" backward-delete-char
If you have this problem in vim, you can add
set backspace=indent,eol,start
in your .vimrc to solve the problem.
Is this issue still relevant? @sean8purdue is your solution would fit into spaceship as a fix (I don't use vi-mode, so have no idea if it's a fault on our side, or it the user's business).
I think it would be unexpected for spaceship to alter the default keybinding. I think the issue can be closed.
Okay, thank you.
Most helpful comment
Thanks to @noctuid, the solution of this problem is add this line in your
.zshrc.bindkey "^?" backward-delete-charRef
If you have this problem in vim, you can add
set backspace=indent,eol,startin your
.vimrcto solve the problem.