Some of the filewatcher's state was being fetched before the trigger was called and then used after that call. When the trigger modified the filewatcher's state, it would on occasion explode.
(see previous log message)