If a JasperReport references a non-existent node or an expression cannot be evaluated, the field value will be set to "Expression Error", by AbstractExpressionEvaluator.
This will cause a subsequent failure in JasperReports if the field is not a String:
This can be avoided by only setting the field value to "Expression Error" when the field is a String.
This has the downside of masking errors in the report.
Alternatively, when an Expression Error occurs, abort the report, altogether and provide a better indication as to the reason for the failure