When the feed file is being generated, the data is first exported to a temporary (.tmp) feed file, which is converted into the permanent file as soon as the feed generation is complete.
Sometimes, the feed generation process may fail due to the server related issues, such as high server load or insufficient PHP parameters, or due to incorrect feed configuration. In such cases, a temporary feed file is not converted into a permanent one and remains on the server. When the feed generation is launched again, the products are exported to the existing temporary file, which may result in duplicate entries in the feed.
In order to avoid this issue, it is recommended to remove temporary feed files after a failure of the generation process. The temporary files are located in the "media/productsfeed" folder in Magento root and can be deleted using FTP/SFTP/SSH connection or File Manager tool in your hosting control panel.