This is an exception that you will quite often see if you work with AJAX or JavaScript-heavy websites where the DOM is continuously being manipulated.
You are probably used to seeing code like this:
WebElement googleSearchBar = driver.findElement(By.name("q"));
The WebElement object that you have created is actually a reference to a specific element in the DOM; think of it as a phone number that you call to talk to that element:
When the DOM is manipulated and the old element is destroyed, that reference no longer links to an element in the DOM and it becomes stale. Using our phone number analogy, this is where ...