Hi Richard
A call stack in a programming language is used to track where the point of execution is. When you call another script from the currently executing script it places the location of the following instruction onto a call stack. When the newly called script completes, the location is pulled from the call stack and the code continues from where it left off.
In Dexterity you can call functions and procedures to almost any depth (you will eventually run out of memory and crash). However, when you use the run script command to execute the change script of a field, you can only go seven levels deep after which you will get the error "All call stacks are in use. Cannot start script" and the script will fail to execute.
A script log could probably show the calls and identify how you are getting down to the eighth level.
Depending on what your code is doing, one way for Dexterity developers to avoid this error (other than using functions and/or procedures) is to use run script delayed command rather than just run script command. The delayed keyword then will queue up the called script to run when all existing code as completed, thus starting back at the top of the call stack.
I hope that explains things a little.
Regards
David