C# debugability tip: Do not handle unexpected exceptions in your library and wrap them in a "friendly" "failed to do a thing" exception.
Seriously. Don't.
If the exception is unexpected, it's because of an internal bug. I'd like to actually be able to see where the damn bug happened.