{"record":{"id":"a9ee6b81fcda04f2","repo":"apache/beam","slug":"e-getmessage-managedschematransformprovider","errorCode":null,"errorMessage":"{e.getMessage()}","messagePattern":"\\{e\\.getMessage\\(\\)\\}","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"sdks/java/managed/src/main/java/org/apache/beam/sdk/managed/ManagedSchemaTransformProvider.java","lineNumber":272,"sourceCode":"        if (schemaTransformProvidersCache.containsKey(schemaTransformProvider.identifier())) {\n          throw new IllegalArgumentException(\n              \"Found multiple SchemaTransformProvider implementations with the same identifier \"\n                  + schemaTransformProvider.identifier());\n        }\n        if (supportedIdentifiers == null\n            || supportedIdentifiers.contains(schemaTransformProvider.identifier())) {\n          if (schemaTransformProvider.identifier().equals(\"beam:transform:managed:v1\")) {\n            // Prevent recursively adding the 'ManagedSchemaTransformProvider'.\n            continue;\n          }\n          schemaTransformProvidersCache.put(\n              schemaTransformProvider.identifier(), schemaTransformProvider);\n        }\n      }\n      this.providersCached = true;\n      return schemaTransformProvidersCache;\n    } catch (Exception e) {\n      throw new RuntimeException(e.getMessage());\n    }\n  }\n}\n","sourceCodeStart":254,"sourceCodeEnd":276,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/java/managed/src/main/java/org/apache/beam/sdk/managed/ManagedSchemaTransformProvider.java#L254-L276","documentation":"getAllProviders wraps the entire ServiceLoader-based provider discovery in a catch-all that rethrows any exception as RuntimeException(e.getMessage()) — losing the stack trace and original type. Any failure while loading/instantiating a SchemaTransformProvider (e.g. a provider's constructor throwing, ServiceLoader configuration errors) surfaces with only the original message.","triggerScenarios":"ServiceLoader.load(SchemaTransformProvider.class) iterates providers during getAllProviders (triggered by schemaTransformProvider or testDiscoverTestProvider) and any provider's initialization fails, or any code in the try block (including the duplicate-identifier throw) throws.","commonSituations":"A custom SchemaTransformProvider whose constructor/schema methods throw; missing dependencies for an IO provider so its class fails to initialize; misconfigured META-INF/services entries.","solutions":["Look at the server logs/stack trace above this message to find the root exception and fix the failing provider.","Check META-INF/services/org.apache.beam.sdk.schemas.transforms.providers.SchemaTransformProvider entries for classes that are absent or broken.","Ensure the provider's required dependencies are on the runtime classpath.","Temporarily remove suspect provider jars to isolate which one fails discovery."],"exampleFix":"// before (provider code)\npublic MyProvider() { loadHeavyNativeLib(); } // throws\n// after: defer heavy init until first use, or fix missing dependency","handlingStrategy":"try-catch","validationCode":"for (SchemaTransformProvider p : ServiceLoader.load(SchemaTransformProvider.class)) { p.identifier(); p.configurationSchema(); /* forces init */ }","typeGuard":null,"tryCatchPattern":"try { provider = ManagedSchemaTransformProvider.of(id); } catch (RuntimeException e) { throw new IllegalStateException(\"Provider discovery failed: \" + e.getMessage(), e); // re-wrap preserving nothing lost upstream }","preventionTips":["Ensure every META-INF/services entry's class initializes cleanly (no heavy work in constructors).","Include all IO provider dependencies in the deployment jar.","Test ServiceLoader.load(SchemaTransformProvider.class) iteration in a smoke test."],"tags":["java","apache-beam","serviceloader","reflection"],"backgroundTag":"class-not-found","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"}