When you use recursiveDelete twice, it incorrectly uses the old container listings the second time. For instance: - create foo/bar - recursiveDelete foo/ (correctly deletes foo/bar and then foo/) - create foo/baz - recursiveDelete foo/ (incorrectly tries to delete foo/bar and then foo/, instead of foo/baz and then foo/)