The current strategy is "best effort": ignore errors and keep parsing as much as we can.
However this has undesirable consequences: we just ran into a case where the query to system_schema.keyspaces times out. Parsing proceeds with an empty keyspace list, SchemaRefresh thinks all keyspaces have been removed and notifies schema listeners.
We should instead:
abort the refresh and keep the previous version of the metadata
surface the error to the user if it was triggered manually, otherwise log a warning