Mads Sejersen added the comment:
It can actually be boiled down to an even more minimal example. It looks like
the problem is that the function call is stored for later when called, then
overwritten by other subsequent calls. Then, once awaited, the latest
registered call is added
New submission from Mads Sejersen :
When calling asyncio.gather the await_args_list is not correct. In the attached
minimal example it contains only the latest call and not each of the three
actual calls.
Expected output:
[call(0), call(1), call(2)]
[call(1), call(2), call(3)] # or any