I have a library base class (Controller) and three sub-classes that inherit from Controller (Sensor, Output, and Enviro
Controller
Sensor
Output
Enviro
If you only need one instance of the dictionary than yes, change it to protected static. Also you should use ConcurrentDictionary instead for thread safety.
ConcurrentDictionary
In the derived classes you access the field using Controller.errorDescription
Controller.errorDescription