If the connection to the ClickHouse database is interrupted while a query is executing, asynch is unable to recover from it. Any subsequent queries fail with the following exception:
ProgrammingError: some records have not been fetched. fetch the remaining records before executing the next query
It looks like this is because the is_query_executing attribute on the Connection remains True if the end of stream packet was missed.
I'm not even sure how to work around this. I've had to restart my application to recover from this, which is far from ideal.