One of your programs, rather than ending properly, is calling the higher level program again. You have something like this going on:
DEF Program1()
Program2()
END
DEF PROGRAM 2()
Program3()
END
DEF PROGRAM3()
Program1() ; DO NOT DO THIS!!!! Simply let the program run to the END statement and the pointer will return to Program2 naturally.
END
Except under very specific conditions, a program should never call itself, or the program that called it, or the program that called the program that called it. What's happening in the example above is that Program3 never ends, but instead calls a new second instance of Program1, which calls a new second instance of Program2, and so on. The KRC controller can do this, but only up to a limited point -- the stack can only hold so many programs. When you call one program too many, the error occurs.
Without seeing your code, I can't tell you
where your bug is, but it's definitely something like this.