It’s hard to help you debug without the code. It could be that it should be a minus sign instead of a plus:
go.set_position(go.get_position() - message.normal * message.distance)
Feel free to share the project with me (bjorn.ritzl@king.com) and I can take a look.