What is the reason to use `error` as reason type? While reading the test code, it was irritating to see an error object being used for something which can happen during normal operations. Would prefer something simpler like `string`.