Currently if the applier has an error it will fassert and terminate the mongod. Some errors should probably be ignored and some should lead to a restart of initial sync.
One example is here where an IndexOptionsConflict error led to an fassert. If this error had been ignored it probably would have been fine. Alternatively initial sync could have just restarted.
At the very least we should restart initial sync on errors like this.