How to reproduce:
1. grant an advancement and wait a little bit, (or hit escape to force save the data)
2. run these 2 commands in quick succession: /advancement revoke @s only <granted advancement> then /reload
3. open your advancement menu, you will see the advancement was not revoked, and thus can be re-revoked using the same command.
(might need to repeat the steps if it doesn't work.
What happens (most likely):
- Advancement revoke does not get written to disk before the advancements are reloaded.
- The /reload will interrupt the game before it can save the revoked advancement.
What should happen:
- The advancements that have been revoked between now and before /reload is executed should be saved to disk.
Below a video containing the process with the steps clearly shown: