Hi.
I don’t know why - because in choice(bool, left, right) the main logic should be “if this.born null, choice right” - but in some way it seems to check the “left” expression too.
In that case it fails because it can’t accept “date - null”. It seems a kind of bug.
To bypass this behavior, it’s necessary, in the expression (date(today) - this.born).years, find a away to avoid “this.born” as null if no born value.
Try this:
= choice(this.born, "age " + ((date(today) - default(this.born, date(today))).years) + "y", "age unknown")
Explaining…
With the function default(field, value) → default(this.born, date(today)) - we said: "if this.born null use “date(today)” as value (or date(yesterday) or other valid date… Just to avoid the null. (in this case date value isn’t important, it’s just a away to avoid a false step.)