{"record":{"id":"d66177573c4d94c3","repo":"pentaho/pentaho-kettle","slug":"unable-to-load-database-from-element-with-name-name-and-type","errorCode":null,"errorMessage":"Unable to load database from element with name '${name}' and type '${elementType}'","messagePattern":"Unable to load database from element with name '(.+?)' and type '(.+?)'","errorType":"exception","errorClass":"MetaStoreException","httpStatus":null,"severity":"error","filePath":"core/src/main/java/org/pentaho/di/metastore/DatabaseMetaStoreUtil.java","lineNumber":59,"sourceCode":"  public static List<DatabaseMeta> getDatabaseElements( IMetaStore metaStore ) throws MetaStoreException {\n    List<DatabaseMeta> databases = new ArrayList<DatabaseMeta>();\n\n    // If the data type doesn't exist, it's an empty list...\n    //\n    IMetaStoreElementType elementType =\n      metaStore.getElementTypeByName(\n        PentahoDefaults.NAMESPACE, PentahoDefaults.DATABASE_CONNECTION_ELEMENT_TYPE_NAME );\n    if ( elementType == null ) {\n      return databases;\n    }\n\n    List<IMetaStoreElement> elements = metaStore.getElements( PentahoDefaults.NAMESPACE, elementType );\n    for ( IMetaStoreElement element : elements ) {\n      try {\n        DatabaseMeta databaseMeta = loadDatabaseMetaFromDatabaseElement( metaStore, element );\n        databases.add( databaseMeta );\n      } catch ( Exception e ) {\n        throw new MetaStoreException( \"Unable to load database from element with name '\"\n          + element.getName() + \"' and type '\" + elementType.getName() + \"'\", e );\n      }\n    }\n\n    return databases;\n  }\n\n  public static void createDatabaseElement( IMetaStore metaStore, DatabaseMeta databaseMeta ) throws MetaStoreException {\n\n    // If the Pentaho namespace doesn't exist, create it!\n    //\n    if ( !metaStore.namespaceExists( PentahoDefaults.NAMESPACE ) ) {\n      metaStore.createNamespace( PentahoDefaults.NAMESPACE );\n    }\n\n    // If the database connection element type doesn't exist, create it\n    //\n    IMetaStoreElementType elementType =","sourceCodeStart":41,"sourceCodeEnd":77,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/core/src/main/java/org/pentaho/di/metastore/DatabaseMetaStoreUtil.java#L41-L77","documentation":"DatabaseMetaStoreUtil.getDatabaseElements() iterates all metastore elements of the database-connection type and converts each to a DatabaseMeta via loadDatabaseMetaFromDatabaseElement(). If any element fails to load, it aborts the whole iteration with a MetaStoreException naming the element and its type. It signals a corrupt or incompatible stored database connection element.","triggerScenarios":"Calling getDatabaseElements(metaStore) when one element in the PentahoDefaults.NAMESPACE database type has missing/invalid attributes (e.g. bad URL, missing plugin_id) causing loadDatabaseMetaFromDatabaseElement to throw.","commonSituations":"Metastore data written by an older Pentaho version lacking newly required attributes; hand-edited metastore XML; partial writes from a previous crash.","solutions":["Inspect the named element in the metastore and fix or remove the corrupt entry","Re-create the affected database connection element with valid attributes","Migrate/upgrade metastore data to the current schema version","Wrap per-element loading yourself by reading elements directly and skipping bad ones"],"exampleFix":"// before\ndatabaseMeta.getURL() returns null because DB_ATTR_JDBC_URL is absent in the stored element\n// after\nre-save the connection via DatabaseMetaStoreUtil.databaseElement( metaStore, databaseMeta ) with all attributes populated","handlingStrategy":"validation","validationCode":"for ( IMetaStoreElement el : metaStore.getElements( PentahoDefaults.NAMESPACE, dbType ) ) {\n  if ( DatabaseMetaStoreUtil.getChildString( el, MetaStoreConst.DB_ATTR_ID_PLUGIN_ID ) == null\n    && DatabaseMetaStoreUtil.getChildString( el, MetaStoreConst.DB_ATTR_DRIVER_CLASS ) == null ) {\n    // skip or repair this element before calling getDatabaseElements\n  }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Validate stored elements after metastore migrations","Re-save connections through the SDK instead of editing metastore data directly","Back up the metastore before version upgrades"],"tags":["metastore","database-connection","deserialization"],"backgroundTag":"schema-validation-failed","analyzedSha":"f3058517a153da500bf4551f46d79b91bf8ec552","analyzedAt":"2026-09-13T14:04:16.340Z","contentChangedAt":"2026-09-13T14:04:16.340Z","schemaVersion":2},"datasetVersion":"2026-09-20T23:17:15.980Z"}