pub(crate) async fn run( state: Arc<ServerState>, shutdown: CancellationToken, ) -> Result<(), Box<dyn Error + Send + Sync>>