The type checker's internal representation of Numeric box types (Byte, Short, ... Number) tags them with tag NUMERIC (as per int, short etc) but omits tag OBJECT (as per Object, String and any other types derived form user-defined classes). Most of the type code's case processing is unaffected by this omission as it tends to rely on isNumeric tests before isObject tests. The methods to compile type conversions into generated code occasionally fail to detect the right type. n.b. this affects interpreted rules as well as compiled rules because it can manifest when generating code for an interpreted rule which employs a custom helper.