{"record":{"id":"87832a1c6898e407","repo":"pentaho/pentaho-kettle","slug":"the-element-type-with-name-elementtype-name-doesn-t-exist-in","errorCode":null,"errorMessage":"The element type with name '${elementType.name} doesn't exist in namespace '${namespace}'.\nAvailable nodes:\n${available}","messagePattern":"The element type with name '(.+?) doesn't exist in namespace '(.+?)'\\.\nAvailable nodes:\n(.+?)","errorType":"exception","errorClass":"MetaStoreException","httpStatus":null,"severity":"error","filePath":"plugins/pur/core/src/main/java/org/pentaho/di/repository/pur/metastore/PurRepositoryMetaStore.java","lineNumber":508,"sourceCode":"\n  protected RepositoryFile validateNamespace( String namespace ) throws MetaStoreException {\n    RepositoryFile namespaceFile = getNamespaceRepositoryFile( namespace );\n    if ( namespaceFile == null ) {\n      throw new MetaStoreException( \"Namespace '\" + namespace + \" doesn't exist in the repository\" );\n    }\n    return namespaceFile;\n  }\n\n  protected RepositoryFile validateElementTypeRepositoryFolder( String namespace, IMetaStoreElementType elementType )\n    throws MetaStoreException {\n    // The element type needs to be known in this repository, we need to have a match by ID\n    //\n    RepositoryFile elementTypeFolder = pur.getFileById( elementType.getId() );\n    if ( elementTypeFolder == null ) {\n      StringBuilder builder = new StringBuilder();\n      builder.append( namespacesFolder.getPath() ).append( Const.CR );\n      String available = getMetaStoreFolders( builder, namespacesFolder, 0 );\n      throw new MetaStoreException( \"The element type with name '\" + elementType.getName()\n          + \" doesn't exist in namespace '\" + namespace + \"'.\" + Const.CR + \"Available nodes:\" + Const.CR + available );\n    }\n    return elementTypeFolder;\n  }\n\n  private String getMetaStoreFolders( StringBuilder builder, RepositoryFile folder, int level ) {\n    String spaces = Const.rightPad( \" \", level * 2 );\n    builder.append( spaces );\n    if ( folder.isFolder() ) {\n      builder.append( \"/\" );\n    }\n    builder.append( folder.getName() ).append( Const.CR );\n    for ( RepositoryFile file : getChildren( folder.getId() ) ) {\n      getMetaStoreFolders( builder, file, level + 1 );\n    }\n    return builder.toString();\n  }\n","sourceCodeStart":490,"sourceCodeEnd":526,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/pur/core/src/main/java/org/pentaho/di/repository/pur/metastore/PurRepositoryMetaStore.java#L490-L526","documentation":"validateElementTypeRepositoryFolder resolves the repository folder for an element type by its id. If pur.getFileById(elementType.getId()) is null, the type's folder is gone, so the error is thrown and — to aid debugging — the message lists the available folders under the namespaces tree. This indicates the element type object references a folder that no longer exists in the repository.","triggerScenarios":"Calling an operation that resolves an element type's folder (via elementTypeFolder/typeFolder/folder) when the type was deleted or its repository folder was removed/renamed out-of-band, so the cached elementType.getId() no longer resolves.","commonSituations":"Holding a stale IMetaStoreElementType across repository changes; another client deleted the type; manually manipulating repository folders via Pentaho User Console; using an element type from a backup or different repository.","solutions":["Re-fetch the element type via getElementTypeByName(namespace, name) to get a fresh object with a valid id.","List available types with getElementTypes(namespace) and confirm the type still exists.","Recreate the element type if it was deleted, then re-associate elements.","Avoid caching IMetaStoreElementType objects across long-running sessions or repository modifications."],"exampleFix":"// before\nmetaStore.validateElementTypeRepositoryFolder(namespace, cachedType); // stale id\n// after\nIMetaStoreElementType fresh = metaStore.getElementTypeByName(namespace, cachedType.getName());\nmetaStore.validateElementTypeRepositoryFolder(namespace, fresh);","handlingStrategy":"validation","validationCode":"IMetaStoreElementType fresh = metaStore.getElementTypeByName(namespace, type.getName());\nif (fresh == null) throw new IllegalStateException(\"Type missing in namespace \" + namespace);","typeGuard":null,"tryCatchPattern":"try { useElementType(type); }\ncatch (MetaStoreException e) { /* re-list getElementTypes(namespace) and recover */ }","preventionTips":["Refresh element type references after any repository change","Avoid manual edits to repository folders"],"tags":["metastore","element-type","pentaho","stale-reference"],"backgroundTag":"entity-not-found","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"}