That wouldn't work because this `unless` block also sets error (if there's no matching concept for `root_origin`) - so the `if error` block below is actually dependent on this one.

It's certainly not pretty (as evidenced by the fact that I had to explain the above), so a more elegant solution would be most welcome.