prestodb/presto · error · WebApplicationException
Invalid 'state' parameter. Must be one of %s
Error message
Invalid 'state' parameter. Must be one of %s
What it means
getQueryStateInfos validates the 'state' query parameter against known QueryState values; an unrecognized state string cannot be compiled to a filter and is rejected with this BadRequestException listing valid states.
Source
Thrown at presto-main/src/main/java/com/facebook/presto/server/QueryStateInfoResource.java:120
@HeaderParam(X_FORWARDED_PROTO) String xForwardedProto,
@Context UriInfo uriInfo,
@Context HttpServletRequest servletRequest,
@Suspended AsyncResponse asyncResponse)
{
if (resourceManagerEnabled && !includeLocalQueryOnly) {
proxyQueryStateInfo(servletRequest, asyncResponse, xForwardedProto, uriInfo);
}
else {
List<BasicQueryInfo> queryInfos = dispatchManager.getQueries();
Optional<Pattern> userPattern = isNullOrEmpty(user) ? Optional.empty() : Optional.of(Pattern.compile(user));
final QueryState expectedQueryState = Optional.ofNullable(stateFilter)
.map(filter -> {
try {
return QueryState.valueOf(filter.toUpperCase(Locale.ENGLISH));
}
catch (IllegalArgumentException e) {
throw new WebApplicationException(Response.status(BAD_REQUEST)
.type(MediaType.TEXT_PLAIN)
.entity(format("Invalid 'state' parameter. Must be one of %s", Arrays.toString(QueryState.values())))
.build());
}
})
.orElse(null);
List<QueryStateInfo> queryStateInfos = queryInfos.stream()
.filter(queryInfo -> {
boolean includeQuery = includeAllQueries ||
(expectedQueryState == null ? !queryInfo.getState().isDone() : queryInfo.getState().equals(expectedQueryState));
return includeQuery;
})
.filter(queryInfo -> userPattern.map(pattern -> pattern.matcher(Slices.utf8Slice(queryInfo.getSession().getUser())).matches()).orElse(true))
.map(queryInfo -> getQueryStateInfo(
queryInfo,
includeAllQueryProgressStats,
excludeResourceGroupPathInfo,View on GitHub (pinned to 55bb57d202)
Solutions
- Use one of the listed QueryState names (e.g. QUEUED, RUNNING, FINISHED) or drop the state parameter
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at presto-main/src/main/java/com/facebook/presto/server/QueryStateInfoResource.java:120 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of prestodb/presto@55bb57d202 (2026-09-04).
Data as JSON: /api/errors/172a28ffb451a2f1.
Report an issue: GitHub.