expose discovery boot interface errors

- improved error messages on failure
- simplify fact extraction

TBH: this whole code needs to be refactored.