don't fail if 'new-contents' return a string instead of a descriptor