It seems there is a flaw in the cancel feature.
If a substitute player is selected to come on for a selected player, but then the user decides to not make this particular substitution, and he clicks on cancel, the player intended for substitution is 'blocked' and thus, cannot be used.
If 3 substitute players are selected for coming on, but then the manager clicks on cancel (for example, he changed his mind or selected the wrong player(s)), all 3 players are blocked, and not further substitution can be made in that particular match for that team.