docs: def _ProcessRegularFlowMessages(self, flow_obj, notification):
      """Processes messages for a given flow."""
      session_id = notification.session_id
      if not isinstance(flow_obj, flow.FlowBase):
        logging.warning("%s is not a proper flow object (got %s)", session_id,
                        type(flow_obj))
  
        stats_collector_instance.Get().IncrementCounter(
            "worker_bad_flow_objects", fields=[str(type(flow_obj))])
        raise FlowProcessingError("Not a GRRFlow.")
  
      runner = flow_obj.GetRunner()
      try:
        runner.ProcessCompletedRequests(notification, self.thread_pool)
      except Exception as e:  # pylint: disable=broad-except
        # Something went wrong - log it in the flow.
        runner.context.state = rdf_flow_runner.FlowContext.State.ERROR
        runner.context.backtrace = traceback.format_exc()
        logging.error("Flow %s: %s", flow_obj, e)
        raise FlowProcessingError(e)