apache/hadoop · error · IllegalArgumentException
DtFetcher for service '{service}' does not require a token.
Error message
DtFetcher for service '{service}' does not require a token. Check your configuration. Note: security may be disabled or there may be two DtFetcher providers for the same service designation. What it means
Error "DtFetcher for service '{service}' does not require a token. Check your configuration. Note: security may be disabled or there may be two DtFetcher providers for the same service designation." thrown in apache/hadoop.
Source
Thrown at hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/token/DtFileOperations.java:204
try {
if (!iterator.hasNext()) {
break;
}
fetcher = iterator.next();
} catch (ServiceConfigurationError | LinkageError e) {
// failure to load a token implementation
// log at debug and continue.
LOG.debug("Failed to load token fetcher implementation", e);
continue;
}
if (matchService(fetcher, service, url)) {
if (!fetcher.isTokenRequired()) {
String message = "DtFetcher for service '" + service +
"' does not require a token. Check your configuration. " +
"Note: security may be disabled or there may be two DtFetcher " +
"providers for the same service designation.";
LOG.error(message);
throw new IllegalArgumentException(message);
}
token = fetcher.addDelegationTokens(conf, creds, renewer,
stripPrefix(url));
}
}
if (alias != null) {
if (token == null) {
String message = "DtFetcher for service '" + service + "'" +
" does not allow aliasing. Cannot apply alias '" + alias + "'." +
" Drop alias flag to get token for this service.";
LOG.error(message);
throw new IOException(message);
}
Token<?> aliasedToken = token.copyToken();
aliasedToken.setService(alias);
creds.addToken(alias, aliasedToken);
LOG.info("Add token with service " + alias);
}View on GitHub (pinned to 2add963021)
Solutions
- Configure a DtFetcher that returns a token for service '{service}'; the current fetcher reports no token is needed, which usually means security is disabled (hadoop.security.authentication=simple) or two DtFetcher providers are registered for the same service name.
- Enable Kerberos security (hadoop.security.authentication=kerberos) if a delegation token is actually required, or remove the duplicate DtFetcher registration for the service.
When it happens
Trigger: Thrown at hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/token/DtFileOperations.java:204 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/hadoop@2add963021 (2026-08-22).
Data as JSON: /api/errors/35854afd9f6f7a38.
Report an issue: GitHub.