Refactored to copy checkpoint object before persisting to prevent side effects when batch artifacts reuse checkpoint objects