It's a super daggy solution, but I've found being humble and putting a little message in the app to let users know of oddities goes a long way. E.g. "To download this song, you need to make it part of a playlist" would have been enough. Inconvenient for users wishing to download a song for offline listening, daggy for spotify's UI, but much better than the status quo of frustrating users.
^ I lied, there’s actually a fourth hidden state “Cached” that the UI presents as “In your Library” rather than “Downloaded”, and will give the same “Connect to data…” error if you directly click on it to play while offline. However, if you click Play on the album/playlist/etc itself, you can then navigate via the “Next Button” and “Up Next” queue to pick the song and if you played it recently, it’ll work. Great if find yourself in a plane and there are some songs you’ve been listening to lately but forgot to download.
I’ve been meaning to write a blog on “The Hidden Cache Apple Music Doesn’t Want You To Know About” for some time now lol. But knowing Apple I’d half-expect them to “patch the bug” by preventing the hidden cache from being played offline.
But yeah in general I agree that Spotify UX is less than optimal.
What a nightmare.