I have a tricky case for you, and I didn't find any similar issue anywhere (I must be bad at searching), so here it is...
I took a backup of the master database from a production server (SQL Server 2014 Std), let's call it SQLPRD, and I restored it, like any non-system database (so I thought), to a dev server (SQL Server 2014 Developer), let's call it SQLDEV.
In the restore statement, I changed the name of the destination database to be master_SQLPRD, and I changed the mdf and log file names to match the new name of the database, so they wouldn't overwrite the DEV master.
I extracted what I wanted from master_SQLPRD, so I dropped it. Then SSMS started throwing me errors as it couldn't find that master_SQLPRD database: now I can't list the databases on SQLDEV, I can't expand the SQL Agent node, etc. I restarted the database engine service, expecting it not to come back online... but it did.
Before I rebuild master (which I didn't backup - it's almost a throw-away instance), is there anything I could try to make master identify itself as master, not master_SQLPRD?
Edit: The error showing in the error log is-
Error: 18456, Severity: 14, State: 73. Login failed for user 'mydomain\my.login'. Reason: Failed to open the database 'master_SQLPRD' configured in the session recovery object while recovering the connection. [CLIENT: ]