apache/beam · error · UnsupportedOperationException

ReadOnlyCatalogManager does not support removing a catalog

Error message

ReadOnlyCatalogManager does not support removing a catalog

What it means

EmptyCatalogManager is a read-only stub, so dropCatalog is a hardcoded guard that always throws UnsupportedOperationException: removing catalogs is not possible through this manager regardless of the name supplied.

Solutions

  1. Avoid DDL against the empty/read-only catalog manager.
  2. Use a mutable manager such as InMemoryCatalogManager if catalog removal is required.
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:49 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/c35e365ce4bd757e. 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:49

  public void useCatalog(String name) {
    if (!EMPTY.name().equalsIgnoreCase(name)) {
      throw new IllegalArgumentException("Catalog not found: " + name);
    }
  }

  @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");

View on GitHub (pinned to 12126d8942)