It appears that Sultan isn't throwing any errors if the user doesn't have permissions to do a mv. It simply swallows it, and the error doesn't get thrown.
with Sultan.load() as s:
s.mv(source_file, deployed).run()
Also, why is it swallowing errors and not throwing them if it encounters it?