more verbose error
should return nil if initial depth is 0