expose discovery boot interface errors

- improved error messages on failure
- simplify fact extraction

TBH: this whole code needs to be refactored.
the name seems to generic, what about `interface_fact_name` or do you have a better idea?