:help quickfix-error-lists describes how you can navigate between recent quickfix lists with :colder and :newer. It adds this note:
When adding a new error list, it becomes the current list.
When ":colder" has been used and ":make" or ":grep" is used to add a new error list, one newer list is overwritten. This is especially useful if you are browsing with ":grep" |grep|. If you want to keep the more recent error lists, use ":cnewer 99" first.
Consider always running :cnewer 99 before loading something in the quickfix since when AsyncCommand populates the quickfix is unpredictable by the user.
Note: I haven't actually encountered this problem.