adds special-case handling for missing files, exposing other errors directly rather than misleadingly continuing to look up the directories. adds test case to verify new behavior.