Not sure what you mean by that. All prune is working on is file names, so if these chunks are not referenced, prune will remove them even if they’re broken (zero size), as prune doesn’t need to read non-metadata chunks. Exhaustive will remove all files under /chunks that are not referenced chunk names, even if you put some random files in there (e.g. not chunks at all). If chunks folder happen to have a referenced chunk name then prune indeed won’t remove these, which is true whether these are zero-size or not. Prune is not check, so if it sees referenced chunk name, it will leave it alone; the chunk may be corrupted (e.g. zero size), but prune won’t know about it, that is check’s job.
Don’t know if that’s true for all backends, but normally you shouldn’t see properly named chunks that are partially uploaded, as upload first happens into temp file, which is renamed into a proper chunk name on completion. So exhaustive prune may preemptively dump partially uploaded file from a concurrent upload, but it will only lead to failing on chunk upload as on rename partially uploaded chunk won’t be there. It shouldn’t leave partial chunks that are properly named. But again, I could be wrong here for some backends, I don’t know.