merge_recursive: abort properly upon errors