Conditional role grants fail when the condition is based upon an object property of any type other than string. This means that any role condition against a non-string property will not work.
Ultimately this occurs because the UI quotes all properties specified in the condition, which will not work against boolean, number, or integer properties.
1) Add a new property of any type other than string to the managed user
2) In the UI, create a conditional role referencing this non-string property
3) Modify the managed user to satisfy the property
4) Observe that the user was not granted the role
If you create the conditional role correctly, via rest (i.e. don't quote the non-string property), you will observe that the role will be granted as appropriate.