The bug
Using a knowledge book gives the player the recipes first and then removes itself from the inventory of the player. This creates some problems if an advancement has a trigger for the gives recipes. For example trying to change the item in the slot the knowledge book was in fails because the knowledge book clears this slot afterwards.
How to reproduce
Download the attached advancement
and place it in the following directory of your world folder
data\advancements\custom
Open the world
Take the anvil recipe
/recipe take @s anvil
Give yourself a knowledge book containing the anvil recipe
/give @s knowledge_book 1 0 {Recipes:[anvil]}
Switch to Survival or Adventure mode
Right click the knowledge book
→ It prints in the chat that you have a knowledge book meaning that when the test happens the knowledge book has not been removed yet
Could be intended since advancement commands are executed instantaneously. This means it could be the case that right clicking the knowledge book first gives the recipes which then trigger the advancement and after that the usage method continues and removes the (new) knowledge book.
But that is only an assumption and it does not mean the knowledge book could not first remove itself from the inventory and after that give the recipes, which would probably better.