There is a bug in the distance measure for points. It isn't
'null safe', meaning it will fail instead of giving a distance if no
point is specified in either the target or candidate data on a frame.
A work around is making sure you have a value on every frame that is
in your object, but that might not be doable. (e.g. a face landmark
point disappears when a person turns their head, but the 'object' is
the person, not the landmark, so you'd still expect to have a
descriptor).
I'd recommend filing a bug with viper-bugs, or you can fix it yourself
if you download the source code. The bug is in the method on the top
of your stack trace, in the EuclideanDistance inner class of
viper.descriptors.attributes.Attribute_point. You'd have to check the
values of the Difference object for nulls, instead of doing what it
does now, which is dereference them directly.