A checkpoint on a language tree is a certain point on the tree that users can test out of to prove that they have mastered all concepts in previous skills. It functions as a form of review for the user, reusing vocabulary, grammar and sentence structures from recent skills.
If passed, the skills in the first row following the checkpoint become available, as they now are purple and in level 0. It is not possible to fail a checkpoint, per se, but all sentences used in the checkpoint have to be translated correctly before proceeding.Sometimes, Android and iOS apps will have different checkpoints. For example, the English for Spanish course on Android has fewer checkpoints. The numbers of skills before each checkpoint in Android is 9, 11, 14, 13; the last 104 skills don't have a checkpoint; In iOS or web those numbers are 9, 17, 16, 21, 19, 22, 27 and 20.
The only way to reset the checkpoints is by removing or resetting the course.
In older versions of Duolingo (that is, pre-2020), a checkpoint was a way for a user to skip all skills up to that point so they wouldn't need to individually test out of every skill.
However, the checkpoint test-out for a language had to be passed in a certain amount of tries, or else the checkpoint would be removed and the user would be unable to test out to that checkpoint for that language.