modelData isn't always present. At least when I pass some totally fine models to the ComboBox, the content isn't visible when using qqc2-desktop-style and it is displayed in other themes.
The code does try to guard it: org.kde.desktop/ComboBox.qml: text: controlRoot.textRole ? (Array.isArray(controlRoot.model) ? modelData[controlRoot.textRole] : model[controlRoot.textRole]) : modelData code in QQC1 was: text: popup.textRole === '' ? modelData : ((popup.modelIsArray ? modelData[popup.textRole] : model[popup.textRole]) || '') @Emmanuel could you test if that works for your "totally fine model"
In my limited testing, this works text: controlRoot.textRole != undefined ? model[controlRoot.textRole] || "": ( Array.isArray(controlRoot.model) ? modelData[controlRoot.textRole] : modelData )