I've become reasonably dependent on Drush, the Drupal Shell, so when it starts acting badly it can really throw me off. I can certainly do everything I need to without it, but it is so handy I'd rather not.
The other day I was working on a major site upgrade and Drush was failing. I tried it while the current working directory (CWD) was in the site, and I also tried it from outside using a Drush alias - neither worked. However, it did work with some other sites, as well as non-site commands working. I even tried non-site commands while in a site's directory and that failed too. Something seemed wrong with the site, but there were also a couple other sites where the same thing happened. This was all pretty weird because these sites were all on the same server and they all loaded fine in a browser.
While looking for answers I saw mention of clearing the caches, so I tried clearing all the caches on the websites; nothing. But just today I found a way to clear the cache of Drush itself, and YAY that worked.
This was so frustrating that I figured I should document it for future reference.
drush cc drush
That's it. Pretty simple but hard to remember.