This is part of the underlying implementation to allow this to work for any resource (even though we restrict it to script resources). The idea is that the caller knows what exceptions are considered "ok", in this case Mixlib::Shellout:ShellCommandFailed.

However, if this is confusing or overly generic, we can remove this and have the guard interpreter always handle that specific exception. Just let me know and I'll change that and update PR.

Thank you @sersut!