Bookkeeping information about what is downloaded must be maintained in the download transaction. This information is updated atomically with the download being applied to the remote database.
If a failure occurs before the entire download is applied to the remote database, and if you change SendDownloadAck to ON, then the MobiLink server does not get confirmation for the download and rolls back the download transaction. Since the bookkeeping information is part of the download transaction, it is also rolled back. Next time the download is built, it will use the original bookkeeping information.
See SendDownloadACK (sa) extended option and Send Download Acknowledgment synchronization parameter.
When testing your synchronization scripts, you should add logic to your end_download script that causes occasional failures. This will ensure that your scripts can handle a failed download.
Resuming failed downloads