I was going over failure recovery scenarios, trying to understand logic behind lost partitions functionality. In the case of native persistence, Ignite fully manages data persistence and availability. If enough nodes in the cluster become unavailable resulting in partitions marked lost, Ignite keeps track of those partitions. When nodes rejoin the cluster partitions are automatically discovered and loaded from disk. This can be shown by the fact that data actually becomes available and can be retrieved using normal get/query api's. However, lostPartitions() lists still contain some partitions that were previously lost and Ignite expects user to manually mark partitions available by calling Ignite.resetLostPartitions() api.
I found some discussion about issues with topology version handling in resetLostPartitions() in this ticket: https://issues.apache.org/jira/browse/IGNITE-7832, but it does not address the question, why user involvement is required at all. Thanks, Roman