The result of async rule is still being applied even when the condition has changed to false. This causes Knockout Validation to mark the observable as invalid even when it should be valid.
Timeline:
- Observable is set to an invalid value.
- Rule's condition is set to true.
- Knockout Validation runs the async rule.
- Rule's condition is changed to false
- Async rule finishes and calls callback(false)
- observables.isValid is false when it should be true!
Same problem occurs if the observable's value changes before the async rule finishes.