The logic for looping over imported OBJ faces and checking whether any of them are "invalid" (duplicate vertices) was wrongly skipping validation of the next face right after some invalid face. It was the previously invalid face, moving the last into its place, but then the loop was incrementing the face index and that just-moved face was not properly validated. Fixes #104593 - importing attached obj file (which contains some faces that have duplicate indices). Added test coverage with a much smaller obj file.