Situations like the one in your question can be described with the slightly technical term malfunction:
to fail to work or operate correctly
It's usually used in contexts that talk about some sort of mechanical equipment working incorrectly, but I think it is also possible to use this term in the context of computer algorithms. For example:
As of now, the program will likely malfunction and crash if you feed it unsanitized data. So, there still needs to be some work done before calling the program fully functional.
Also, consider the expression go haywire:
to stop working correctly
That one is somewhat similar in spirit to malfunction, but tends to be used in more informal contexts. For example:
Don't run the program yet. It's not in a working state. If you do, it will likely go haywire and make the eintire operating system crash.