Maybe this message can be improved: this can also fail with a ClassCastException if the method doesn't return String (in which case the exception message is also not really helpful).
Maybe: "No such backdoor method found: String " + op.getName() + "(String arg)"