appsmithorg/appsmith · error · AppsmithPluginException
PE-ARG-5000
PE-ARG-5000
Error message
Filtering Condition not configured properly
What it means
Thrown by Condition.generateFromConfiguration while building a filter from client-supplied condition maps. After skipping intentionally empty condition objects (set by the client for UX), each remaining condition is checked by isColumnOrOperatorEmpty; if the PATH_KEY or OPERATOR_KEY is blank, PLUGIN_EXECUTE_ARGUMENT_ERROR with 'Filtering Condition not configured properly' is raised. Value is optional and not checked.
Source
Thrown at app/server/appsmith-interfaces/src/main/java/com/appsmith/external/models/Condition.java:115
}
/**
* To generate condition list based on selected condition
* Mandatory inputs validated are path and operator
* Value is optional and considered as a null input
* @param configurationList
* @return
*/
public static List<Condition> generateFromConfiguration(List<Object> configurationList) {
List<Condition> conditionList = new ArrayList<>();
for (Object config : configurationList) {
Map<String, String> condition = (Map<String, String>) config;
if (condition.entrySet().isEmpty()) {
// Its an empty object set by the client for UX. Ignore the same
continue;
} else if (isColumnOrOperatorEmpty(condition)) {
throw new AppsmithPluginException(
AppsmithPluginError.PLUGIN_EXECUTE_ARGUMENT_ERROR,
"Filtering Condition not configured properly");
}
conditionList.add(new Condition(condition.get("path"), condition.get("operator"), condition.get("value")));
}
return conditionList;
}
private static boolean isColumnOrOperatorEmpty(Map<String, String> condition) {
return isBlank(condition.get(PATH_KEY)) || isBlank(condition.get(OPERATOR_KEY));
}
}
View on GitHub (pinned to 8cd9021c24)
Solutions
- Ensure every non-empty filter condition includes both a non-blank 'path' (column) and a non-blank 'operator'.
- Remove incomplete filter rows before running the query.
- If building the payload programmatically, validate each entry with a helper before submission.
Example fix
// before - condition missing operator
{"path": "status", "value": "open"}
// after
{"path": "status", "operator": "EQ", "value": "open"} Defensive patterns
Strategy: validation
Validate before calling
for (Object config : configurationList) {
Map<String, String> condition = (Map<String, String>) config;
if (condition.entrySet().isEmpty()) continue;
if (isBlank(condition.get("path")) || isBlank(condition.get("operator"))) {
// skip or reject before calling generateFromConfiguration
throw new IllegalArgumentException("Each filter condition needs both 'path' and 'operator'");
}
} Type guard
public static boolean isConditionComplete(Map<String, String> condition) {
return condition != null
&& !condition.entrySet().isEmpty()
&& !isBlank(condition.get("path"))
&& !isBlank(condition.get("operator"));
} Try / catch
try {
List<Condition> conditions = Condition.generateFromConfiguration(configurationList);
} catch (AppsmithPluginException e) {
if (e.getError() == AppsmithPluginError.PLUGIN_EXECUTE_ARGUMENT_ERROR) {
// strip incomplete rows and retry, or surface to the user
configurationList = configurationList.stream()
.filter(c -> isConditionComplete((Map<String, String>) c))
.collect(Collectors.toList());
conditions = Condition.generateFromConfiguration(configurationList);
} else {
throw e;
}
} Prevention
- Filter out incomplete condition rows before submission.
- Validate path and operator client-side in the UI.
- Treat value as the only optional field in a filter condition.
When it happens
Trigger: A UQI filter action where one of the condition rows has a selected value/operator but no column (path), or a column but no operator, or both empty in a way that is not the canonical empty-object UX marker.
Common situations: User adds a filter row in the UI and fills the value but forgets the column or operator; a binding clears the operator; programmatic construction of a filter payload that omits required keys.
Related errors
- PE-UQI-5000
- PE-ARG-5000
- The ${path} path must start with 'https://'.
- error
- Please enter a target origin URL.
AI-assisted analysis of appsmithorg/appsmith@8cd9021c24 (2026-08-12).
Data as JSON: /api/errors/209e3b15d4afa405.
Report an issue: GitHub.