{"record":{"id":"399b31478a532f6f","repo":"apache/beam","slug":"could-not-find-type-s-for-catalog-s","errorCode":null,"errorMessage":"Could not find type '%s' for catalog '%s'.","messagePattern":"Could not find type '(.+?)' for catalog '(.+?)'\\.","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/meta/catalog/InMemoryCatalogManager.java","lineNumber":116,"sourceCode":"        ServiceLoader.load(CatalogRegistrar.class, getClass().getClassLoader())) {\n      for (Class<? extends Catalog> catalogClass : catalogRegistrar.getCatalogs()) {\n        Catalog catalog = createCatalogInstance(catalogClass, name, properties);\n        if (catalog.type().equalsIgnoreCase(type)) {\n          list.add(catalog);\n        }\n      }\n    }\n\n    List<Catalog> foundCatalogs = list.build();\n\n    if (foundCatalogs.size() > 1) {\n      throw new IllegalStateException(\n          String.format(\n              \"Could not create catalog '%s': \"\n                  + \"expected only one implementation for type '%s' but found %s\",\n              name, type, foundCatalogs.size()));\n    } else if (foundCatalogs.isEmpty()) {\n      throw new UnsupportedOperationException(\n          String.format(\"Could not find type '%s' for catalog '%s'.\", type, name));\n    }\n\n    return foundCatalogs.get(0);\n  }\n\n  private Catalog createCatalogInstance(\n      Class<? extends Catalog> catalogClass, String name, Map<String, String> properties) {\n    try {\n      return catalogClass.getConstructor(String.class, Map.class).newInstance(name, properties);\n    } catch (ReflectiveOperationException e) {\n      throw new RuntimeException(\n          String.format(\"Encountered an error when constructing Catalog '%s'\", name), e);\n    }\n  }\n\n  @Override\n  public Collection<Catalog> catalogs() {","sourceCodeStart":98,"sourceCodeEnd":134,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/meta/catalog/InMemoryCatalogManager.java#L98-L134","documentation":"findAndCreateCatalog throws this guard when no CatalogRegistrar on the classpath provides a Catalog whose type() matches the requested type string — i.e. CREATE CATALOG named an unknown or unregistered catalog type.","triggerScenarios":"Thrown at sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/meta/catalog/InMemoryCatalogManager.java:116 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the catalog type string; it must equal a registered implementation's type() (case-insensitive).","Ensure the JAR providing the CatalogRegistrar/Catalog implementation is on the classpath.","List supported catalog types in the docs or registry before issuing CREATE CATALOG."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"12126d8942aaf848030c478b4c6a28c6af861c66","analyzedAt":"2026-09-13T01:50:10.254Z","contentChangedAt":"2026-09-13T01:50:10.254Z","schemaVersion":2},"datasetVersion":"2026-09-20T03:17:13.778Z"}