apache/beam · error · UnsupportedOperationException
ReadOnlyCatalogManager does not support registering a table…
Error message
ReadOnlyCatalogManager does not support registering a table provider
What it means
registerTableProvider on EmptyCatalogManager is an unconditionally throwing guard: this read-only placeholder manager cannot accept new table providers, since it exposes no persistent catalog storage.
Solutions
- Register table providers on a mutable catalog manager (e.g. InMemoryCatalogManager) instead.
- If read-only usage is intended, remove the registration call; tables must already exist in the provider.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/meta/catalog/EmptyCatalogManager.java:55 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/beam@12126d8942 (2026-09-13).
Data as JSON: /api/errors/af03462ebe50b17c.
Report an issue: GitHub.
Appendix: source
Thrown at sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/meta/catalog/EmptyCatalogManager.java:55
@Override
public Catalog currentCatalog() {
return EMPTY;
}
@Override
public @Nullable Catalog getCatalog(String name) {
return name.equalsIgnoreCase(EMPTY.name()) ? EMPTY : null;
}
@Override
public void dropCatalog(String name) {
throw new UnsupportedOperationException(
"ReadOnlyCatalogManager does not support removing a catalog");
}
@Override
public void registerTableProvider(TableProvider tableProvider) {
throw new UnsupportedOperationException(
"ReadOnlyCatalogManager does not support registering a table provider");
}
@Override
public Map<String, TableProvider> tableProviders() {
return EMPTY.tableProviders;
}
@Override
public void createCatalog(String name, String type, Map<String, String> properties) {
throw new UnsupportedOperationException(
"ReadOnlyCatalogManager does not support catalog creation");
}
@Override
public Collection<Catalog> catalogs() {
return ImmutableSet.of(EMPTY);
}View on GitHub (pinned to 12126d8942)