Seem like st.container is not stable?

I am getting this bad message format error when I click on button which calls this function. What could be the issue?

def records(data):
        with tab_ribbon[1]:
            st.subheader(f":blue[{keyword}] : {len(data)} :eyes:", divider='rainbow')
            count = 1
            for row in data.values:
                uid = row[0]
                converted = row[5]
                keywords = row[6]
                closing = row[7]
                with st.container(border=True):
                    top_row = st.columns(6)
                    top_row[0].markdown(f"[**{count}**]")
                    top_row[1].markdown(f":blue[**Id:**] {uid}")

                    with st.container():
                        st.markdown(f":blue[**Converted:**] {converted}")
                    with st.container():
                        st.markdown(f":blue[**Keywords:**] {keywords}")
                    with st.container():
                        st.markdown(f":blue[**Closing**] {closing}")
                count+=1
st.button(f"{key} : {val}",key=counter,  on_click=records, kwargs={"data":data}, use_container_width=True)

container :speech_balloon: Show the Community! debugging discussion