conductor-oss/conductor · error · TerminateWorkflowException
Unknown evaluator '%s' in INLINE task.
Error message
Unknown evaluator '%s' in INLINE task.
What it means
Thrown by Inline.checkEvaluatorType() when the evaluatorType is non-blank but no Evaluator bean with that name is registered in the Spring context. The evaluators map (injected into Inline) contains Evaluator beans keyed by their @Component name. Supported built-in values: 'javascript', 'graaljs', 'value-param', and 'python' (if GraalVM Python is available). An unregistered name like 'groovy' or 'js' triggers this termination.
Source
Thrown at core/src/main/java/com/netflix/conductor/core/execution/tasks/Inline.java:111
task.addOutput("error", errorMessage);
}
return true;
}
private void checkEvaluatorType(String evaluatorType) {
// evaluatorType is now optional with "javascript" as default, but must not be blank if
// provided
if (StringUtils.isBlank(evaluatorType)) {
LOGGER.error("Empty {} in INLINE task. ", QUERY_EVALUATOR_TYPE);
throw new TerminateWorkflowException(
"Empty '"
+ QUERY_EVALUATOR_TYPE
+ "' in INLINE task's input parameters. A non-empty String value must be provided.");
}
if (evaluators.get(evaluatorType) == null) {
LOGGER.error("Evaluator {} for INLINE task not registered", evaluatorType);
throw new TerminateWorkflowException(
"Unknown evaluator '" + evaluatorType + "' in INLINE task.");
}
}
private void checkExpression(String expression) {
if (StringUtils.isBlank(expression)) {
LOGGER.error("Empty {} in INLINE task. ", QUERY_EXPRESSION_PARAMETER);
throw new TerminateWorkflowException(
"Empty '"
+ QUERY_EXPRESSION_PARAMETER
+ "' in Inline task's input parameters. A non-empty String value must be provided.");
}
}
}
View on GitHub (pinned to cf7c3e4a8a)
Solutions
- Use a registered evaluator type: 'javascript', 'graaljs', or 'value-param'. For 'python', ensure GraalVM Python support is deployed.
- If using a custom evaluator, verify the @Component name matches exactly and the bean is on the classpath.
- Check for typos in the evaluatorType value in the workflow definition.
- Inspect the server's Spring context for available Evaluator beans if unsure what is registered.
Example fix
// before
"inputParameters": {
"evaluatorType": "js",
"expression": "return 1 + 1"
}
// after
"inputParameters": {
"evaluatorType": "javascript",
"expression": "return 1 + 1"
} Defensive patterns
Strategy: validation
Validate before calling
// Verify evaluator is registered before INLINE execution
String evaluatorType = (String) task.getInputData().get("evaluatorType");
if (evaluatorType == null) evaluatorType = "javascript";
if (!evaluators.containsKey(evaluatorType)) {
throw new IllegalStateException(
"Unknown evaluator: " + evaluatorType
+ ". Available: " + evaluators.keySet());
} Prevention
- Use only registered evaluator types: 'javascript', 'graaljs', 'value-param'.
- For custom evaluators, ensure the @Component name matches the definition.
- Check for typos in evaluatorType in workflow definitions.
When it happens
Trigger: An INLINE task specifies evaluatorType 'groovy', 'python' (when GraalVM Python is not on the classpath), or any unregistered evaluator name. A custom evaluator bean was removed or renamed.
Common situations: Server upgraded and a previously-available evaluator was deprecated/removed. Custom evaluator not deployed. Typo in evaluatorType — 'javascipt', 'java-script', or 'js'.
Related errors
- No evaluator registered for type: %s
- Empty 'evaluatorType' in INLINE task's input parameters. A n
- Input has to be a JSON object: %s
- Skill registry is not available
- llmProvider not specified: {name}
AI-assisted analysis of conductor-oss/conductor@cf7c3e4a8a (2026-08-14).
Data as JSON: /api/errors/a8fca58ba2b204c3.
Report an issue: GitHub.