Isn't it the case that cleanup won't run if any of these promises fail because everything will be rejected?
So the cleanup should be in some `.fin` (Q language)