Write an index vector and a dictionary with a dictionary vector of the type Struct using an ArrowStreamWriter. Reading this again fails with an exception.
Code to reproduce:
If I see it corretly the error happens in DictionaryUtilities#toMessageFormat. If a dictionary encoded vector is encountered still the children of the memory format field are used (none because this is Int). However, the children of the field of the dictionary vector should be mapped to the message format and set as children.
I can create a fix and open a pull request.