A WordPress.com user contacted us in 346657-chat. They had issues trying to activate "Dusk to Dawn" theme - it was a new account so not sure why they were being shown this theme.
It shows up in their _/design_ - but can't be activated and the page gets 'stuck' when you click activate.
Able to reproduce this on two new test accounts, 5 months and 1 day old.
Chrome, Windows 10, latest.

Confirmed: retired themes show up at /design on a brand new account.
Dusk to Dawn, Ever After, and a few others.
Testing with https://wordpress.com/design/lancetest556.wordpress.com?s=dusk βΒ new signup, test user and blog.
Interesting to note API calls seem to return differently whether calling the theme search from Calypso:

Or when using WordPress.com dev console to call the API, logged in as this user at https://developer.wordpress.com/docs/api/console/

Could the Calypso call be missing a blog ID for context somehow?
Also: I think we should hide retired themes _completely_ in /design for _all_ users β not by user ID or age or anything else. This collection should be the best, not everything from early days before rigorous standards.
If an author really, really wants to use a retired theme β and has access β they can get to it via wp-admin/themes.php.
I think we should hide retired themes completely in /design for all users
This would allow us to remove some tricky code which has been a source of a few similar bugs, so I'm all for it :)
@lancewillett: how about purchased, retired premium themes? Think it's ok to go through wp-admin for those as well?
I've found the problem, which is a chicken-and-egg thing with the retirement procedure and the elasticsearch index. If we decide to not show free retired themes at all it will become moot.
Interesting to note API calls seem to return differently whether calling the theme search from Calypso
Incidentally, calling this API without a sites param will never show any retired themes, logged-in or not, since retirement goes by site id and not user id.
I've re-indexed the Elasticsearch index that backs the API, which has fixed the issue for now:

And I'll await the outcome of the discussion going on elsewhere regarding showing retired themes to implement the proper fix.
@lancewillett: how about purchased, retired premium themes? Think it's ok to go through wp-admin for those as well?
Yes, in my opinion it's very edge case and wp-admin works well for that.
Removal of retired themes from API: D1676-code
Tested the API changes. π
In Calypso /design I no longer see dusk results, as expected (since Dusk is retired) β testing with lancetest23.wordpress.com

I am still able to see those themes in wp-admin/themes.php for that particular site, since it's an older signup and before those were retired for my WP.com user ID.

API console is also empty for dawn search now, testing with /v1.2/themes?search=dawn

Fixed in r135057-wpcom.
Thanks @lancewillett :)
Thanks, Steve. :)
Confirmed again in Calypso, not seeing anything for dusk in /design for my sites. Yay.
Most helpful comment
Also: I think we should hide retired themes _completely_ in
/designfor _all_ users β not by user ID or age or anything else. This collection should be the best, not everything from early days before rigorous standards.If an author really, really wants to use a retired theme β and has access β they can get to it via wp-admin/themes.php.