問題点
item.name.first() は空文字でクラッシュするという点です。
text = item.name.first().toString()
このように実装するとnameが空文字 のときNoSuchElementExceptionがスローされます。
.first() について調べてみたのですが、String.first() は Iterable の拡張関数で、要素がゼロ(= 空文字)のとき例外を投げます。
修正
text = item.name.take(1)
こちらを使うようにします。
これなら先頭 n 文字を返すだけなので、文字数が足りなくても安全です。
同じように書けるもので、
text = firstOrNull()?.toString() ?: ""
もあるのですが、.take(n)で書いた方が簡潔書けるのでいいと思いました。