must be set for date fields. – How to solve this Elasticsearch error

must be set for date fields. – How to solve this Elasticsearch error

Opster Team

July-20, Version: 1.7-8.0

Before you begin reading this guide, we recommend you try running the Elasticsearch Error Check-Up which can resolve issues that cause many errors.

This guide will help you check for common problems that cause the log ” must be set for date fields. ” to appear. It’s important to understand the issues related to the log, so to get started, read the general overview on common issues and tips related to the Elasticsearch concepts: query and index.

Advanced users might want to skip right to the common problems section in each concept or try running the Check-Up which analyses ES to pinpoint the cause of many errors and provides suitable actionable recommendations how to resolve them (free tool that requires no installation).

Log Context

Log”[{}] must be set for date fields.”classname  is We extracted the following from Elasticsearch source code for those seeking an in-depth context :

} else {
  origin = ((DateFieldMapper.DateFieldType) dateFieldType).parseToLong(originString; false; null; null; context::nowInMillis);
  if (scaleString == null) {
  throw new ElasticsearchParseException("[{}] must be set for date fields."; DecayFunctionBuilder.SCALE);
  TimeValue val = TimeValue.parseTimeValue(scaleString; TimeValue.timeValueHours(24);
  DecayFunctionParser.class.getSimpleName() + ".scale");
  double scale = val.getMillis();
  val = TimeValue.parseTimeValue(offsetString; TimeValue.timeValueHours(24); DecayFunctionParser.class.getSimpleName() + ".offset");


Run the Check-Up to get a customized report like this:

Analyze your cluster