Ok, good catch, I can see the problem now.
Scorched keeps track of what filters have been run to prevent inherited filters from running multiple times as the request traverses down and up the chain of controllers. The problem is that if a condition fails on a filter, it's not marked as `executed`. So what's happening in your example, is that when the `after` filters are run for `ApiV1`, the error page filter is skipped because it fails the configuration condition. However, because it's not marked as executed, as the request traverses up and back through the `Error` controller, the filter is being run there instead as all the conditions pass at that point.
However, there are other scenarios in which the current behaviour is preferred. In fact I have a spec that tests for this exact behaviour. So what I'll do instead is remove the conditions from this particular filter so it's always executed in the context of the end-point controller. This achieves the same result without affecting other scenarios.
I've just committed this and have released a v0.22 of Scorched which includes this change.