Dataset.from_pandas insist on converting string to int64

I tried to convert a pandas dataframe to Dataset using the following code

datasets.Dataset.from_pandas(df, features={‘messages’: [{‘content’: [{‘index’: Value(dtype=‘string’),
‘text’: Value(dtype=‘string’),
‘type’: Value(dtype=‘string’, id=None)}],
‘role’: Value(dtype=‘string’, id=None)}],
‘images’: Sequence(feature=Image(mode=None, decode=True, id=None), length=-1, id=None)})

However, I keep getting the following error:
ArrowInvalid: (“Could not convert ‘’ with type str: tried to convert to int64”, ‘Conversion failed for column messages with type object’)

It seems very strange since there is no int64 in my feature.