Ok, I had the same issue and it started from the FTP prompt when trying to delete a theme. // Note I am doing this on my local environment, not a production site
1st step was to add
define('FS_METHOD', 'direct');
Which then started the Deletion failed: The requested theme does not exist error

But this is how to solve the whole issue altogether and you don't need the code
define('FS_METHOD', 'direct');
You need to edit the httpd.conf
file depending on your setup. Here is how I did it using xampp edit /opt/lampp/etc/httpd.conf
<IfModule unixd_module>
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User nobody
Group nogroup
</IfModule>
Where the User nobody
add your username there example User myuser
and restart apache and boom! Hope this helps someone out there with an issue that was taking me hours and a lot of headaches.
style.css
is intact and properly formatted. If you changed some of this header information or the theme's directory while the theme was active, you may need to deactivate the theme (and possibly reactivate it). I imagine it's possible that multiple themes with the same header information might confuse WordPress, as well.