Is there a reason you’re not using acf_form()?
When you use acf_form() additional JavaScript is added when there’s an image field. This extra JS will include a basic file/image uploader when the user does not have access to the media library. acf_form() also adds additional JS to the footer of the page that can cause the ACF fields not to save properly if it’s not included.