I am also facing a similar issue. Started happening after upgrading Selenium.WebDriver, Selenium.Support and GeckDriver 0.19.0.
I am using AutoIT to login to a page, (since it requires authentication window interaction, which Selenium cant handle). After loggin in, it lands on home page and then no matter which element I triy to locate and what strategy I use for location, it returns a UnhandledAlertException. As the OP said, I also tried dealing with an alert that I cant see, by switching, accepting.. When I do that, it says there is no alert. But still, its not locating any elements at all. Below is what I get in Debug mode when I try to locate an element after logging in. I am using C#. Also notice that the message is empty.
===========================================================
driver.FindElement(By.XPath("' threw an exception of type 'OpenQA.Selenium.UnhandledAlertException'
Alert: {OpenQA.Selenium.UnhandledAlertException.UnhandledAlert}
AlertText: ""
Data: {System.Collections.ListDictionaryInternal}
HelpLink: null
InnerException: null
Message: ""
Source: "WebDriver"
StackTrace: " at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)\r\n at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)\r\n at OpenQA.Selenium.Remote.RemoteWebDriver.FindElement(String mechanism, String value)\r\n at OpenQA.Selenium.Remote.RemoteWebDriver.FindElementByXPath(String xpath)\r\n at OpenQA.Selenium.By.<>c__DisplayClass19_0.<XPath>b__0(ISearchContext context)\r\n at OpenQA.Selenium.By.FindElement(ISearchContext context)\r\n at OpenQA.Selenium.Remote.RemoteWebDriver.FindElement(By by)" TargetSite: {Void UnpackAndThrowOnError(OpenQA.Selenium.Remote.Response)}
==========================================================
Below is my config.
Selenium.Support- Version 3.6.0
Selenium.WebDriver- Version 3.6.0
GeckoDriver - Version 0.19.0
Firefox Version 56.0 (tried on 54.0 and 55.0 also)