I have figured out where the problem is. Changed the order in the rule and validation behaves as expected:
publicclass SampleValidator : AbstractValidator<ValidatableItem> {public SampleValidator(ValidationConfiguration configuration) { RuleFor(x => x.ValidatableProperty).Cascade(CascadeMode.StopOnFirstFailure) .Length(5, 10).When(item => !string.IsNullOrWhiteSpace(item.ValidatableProperty)) .NotNull().When(item => configuration.RequiredField) .NotEmpty().When(item => configuration.RequiredField); } }