I think the resumeToken is per $watch, i.e. you cannot resume a different change stream using the other change streams resumeToken. I get invalid token when altering the pipeline for a db.$watch, even tho the change/resumeToken is 100% in the oplog