The guardian loop is broken, since get_fiber_id can throw an error if the fiber is dead.
fiber:id() for dead fibers doesn't work starting from Tarantool 1.4 I think.
If a fiber dies before guardian loop checks its status, the guardian itself can die with an exception.
The same bug is present in 1.5 version at http://github.com/mailru/tntlua
Use fiber:status() to find out fiber status, it doesn't throw.