The file ingestion task doesn't automatically reprocess file events that are in success, failed, or duplicate status. If an event in one of these statuses reaches the file ingestion task, the file ingestion job informs the file listener that the event is processed even if it encountered errors in processing the file or in writing it to the target. Therefore, at-least-once reliability exists only between the file listener and the file ingestion task, and not between the file listener and the target.
You need to manually identify files that aren't successfully transferred to the target due to an error, for example, by using the transfer logs. To resolve the problem, either move the files or modify them manually, so that the file listener picks them up. For example, if the last modified time of a file changes, the file listener identifies the file as updated even if the contents haven't changed.