apache/seatunnel · error · org.apache.seatunnel.api.metadata.MetadataProviderException
Could not load service provider for MetadataProvider.
Error message
Could not load service provider for MetadataProvider.
What it means
Raised inside MetadataProviderFactory.loadProviders when the ServiceLoader iterating MetadataProvider SPI files throws a ServiceConfigurationError — a provider class on the classpath cannot be loaded (bad services file, static initializer failure, or missing dependency). Note loadProviders also logs 'No MetadataProvider implementations found' at INFO when the list is simply empty; that benign case is not this error.
Solutions
- Read the underlying ServiceConfigurationError to find the failing provider class
- Fix or delete the broken META-INF/services entry for MetadataProvider
- Ensure provider dependencies are present on the classloader used for loading
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at seatunnel-api/src/main/java/org/apache/seatunnel/api/metadata/MetadataProviderFactory.java:128 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/dec1acedaa482a1e.
Report an issue: GitHub.
Appendix: source
Thrown at seatunnel-api/src/main/java/org/apache/seatunnel/api/metadata/MetadataProviderFactory.java:128
.iterator()
.forEachRemaining(providers::add);
if (providers.isEmpty()) {
log.info("No MetadataProvider implementations found");
} else {
log.info(
"Loaded {} MetadataProvider: {}",
providers.size(),
providers.stream()
.map(MetadataProvider::kind)
.reduce((a, b) -> a + ", " + b)
.orElse(""));
}
return providers;
} catch (ServiceConfigurationError e) {
log.error("Could not load service provider for MetadataProvider.", e);
throw new MetadataProviderException(
"Could not load service provider for MetadataProvider.", e);
}
}
}
View on GitHub (pinned to cf67b549a7)