Streamlit Aggrid not working with large dataframe

While using streamlit aggrid with large data (~25k records), I am facing issue exporting the data after applying filters. The app is getting disconnected when I am trying to export filtered data. Also, filtering the data also takes time
This is working fine with small dataset (~5k records).

here are the version details
streamlit - 1.40.1
streamlit-aggrid - 1.0.5
python - 3.11

import streamlit as st
import pandas as pd
from datetime import datetime
from st_aggrid import AgGrid, GridOptionsBuilder, DataReturnMode, GridUpdateMode

st.set_page_config(page_title="Aggrid", page_icon="⭐", layout="wide")


@st.cache_data(show_spinner=False)
def load_data():
    data = pd.read_csv('data\\companies_25k.csv', sep=';')
    return data

def prepare_data(filtered_data):
    return pd.DataFrame(filtered_data).to_csv(index=False).encode('utf-8')

if __name__ == "__main__":
    df = load_data()
    grid_builder = GridOptionsBuilder.from_dataframe(df)
    grid_builder.configure_default_column(filter = True)
    grid_builder.configure_pagination(enabled=True)
    grid_options = grid_builder.build()

    grid_response = AgGrid(data=df, gridOptions=grid_options, update_mode=GridUpdateMode.FILTERING_CHANGED, data_return_mode=DataReturnMode.FILTERED_AND_SORTED, enable_enterprise_modules=False)

    if st.download_button(
        label="Download as CSV",
        data=prepare_data(grid_response['data']),
        file_name=f'data_{datetime.now().strftime("%Y%m%d%H%M%S")}.csv',
        mime='text/plain'
    ):
        pass

PFA behavior while exporting data after applying filters
screen-capture