{"record":{"id":"d6f2540fa972d638","repo":"pentaho/pentaho-kettle","slug":"unable-to-verify-creation-of-element-element-name-in-folder","errorCode":null,"errorMessage":"Unable to verify creation of element '${element.name}' in folder: ${elementTypeFolder.path}","messagePattern":"Unable to verify creation of element '(.+?)' in folder: (.+?)","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"plugins/pur/core/src/main/java/org/pentaho/di/repository/pur/metastore/PurRepositoryMetaStore.java","lineNumber":301,"sourceCode":"\n  public void createElement( String namespace, IMetaStoreElementType elementType, IMetaStoreElement element )\n    throws MetaStoreException {\n    RepositoryFile elementTypeFolder = validateElementTypeRepositoryFolder( namespace, elementType );\n\n    RepositoryFile elementFile =\n        new RepositoryFile.Builder( PurRepository.checkAndSanitize( element.getName() ) ).title( element.getName() )\n            .versioned( false ).build();\n\n    DataNode elementDataNode = new DataNode( PurRepository.checkAndSanitize( element.getName() ) );\n    elementToDataNode( element, elementDataNode );\n\n    RepositoryFile createdFile =\n        pur.createFile( elementTypeFolder.getId(), elementFile, new NodeRepositoryFileData( elementDataNode ), null );\n    element.setId( createdFile.getId().toString() );\n\n    // Verify existence.\n    if ( pur.getFileById( createdFile.getId() ) == null ) {\n      throw new RuntimeException( \"Unable to verify creation of element '\" + element.getName() + \"' in folder: \"\n          + elementTypeFolder.getPath() );\n    }\n  }\n\n  protected void elementToDataNode( IMetaStoreElement element, DataNode elementDataNode ) {\n    elementDataNode.setProperty( PROP_NAME, element.getName() );\n    DataNode childrenNode = elementDataNode.addNode( PROP_ELEMENT_CHILDREN );\n    if ( Utils.isEmpty( element.getId() ) ) {\n      element.setId( element.getName() );\n    }\n    attributeToDataNode( element, childrenNode );\n  }\n\n  protected void dataNodeToElement( DataNode dataNode, IMetaStoreElement element ) throws MetaStoreException {\n    DataProperty nameProperty = dataNode.getProperty( PROP_NAME );\n    if ( nameProperty != null ) {\n      element.setName( nameProperty.getString() );\n    }","sourceCodeStart":283,"sourceCodeEnd":319,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/pur/core/src/main/java/org/pentaho/di/repository/pur/metastore/PurRepositoryMetaStore.java#L283-L319","documentation":"Thrown by PurRepositoryMetaStore.createElement() as a plain RuntimeException when, after pur.createFile(...) reports success, pur.getFileById(createdFile.getId()) cannot find the new element file — i.e. creation could not be verified. It signals an inconsistent or unsupported repository response.","triggerScenarios":"Server accepts createFile but the file is immediately invisible: eventual-consistency/replication lag, permission filtering hides the new file, or a server bug/failed write returns a non-persisted id.","commonSituations":"Clustered BA Server with replication lag; user lacking read permission on the newly created file; server-side storage errors masked by a successful response.","solutions":["Check the cause/state via server logs for the createFile operation","Verify the user has read permissions on the parent element-type folder","Retry creation; check whether the file exists despite the exception","Check server clustering/replication health","Check PDI/Pentaho server version compatibility"],"exampleFix":"// before\nmetaStore.createElement( ns, elementType, element );\n// after\ntry {\n  metaStore.createElement( ns, elementType, element );\n} catch ( RuntimeException e ) {\n  if ( metaStore.getElementByName( ns, elementType, element.getName() ) == null ) {\n    throw e; // genuinely not created — retry or report\n  }\n  logBasic( \"Element created despite verification warning\" );\n}","handlingStrategy":"fallback","validationCode":"IMetaStoreElementType type = metaStore.getElementTypeByName( ns, element.getElementTypeId() );\nif ( type == null ) { throw new IllegalStateException( \"Element type folder unavailable\" ); }","typeGuard":null,"tryCatchPattern":"try { metaStore.createElement( ns, type, element ); } catch ( RuntimeException e ) { if ( metaStore.getElementByName( ns, type, element.getName() ) == null ) { throw e; } logBasic( \"Created despite verification failure\" ); }","preventionTips":["Re-check element existence before retrying creation","Keep server clustering/replication healthy","Ensure the user has both read and write on the type folder","Keep PDI and Pentaho server versions aligned"],"tags":["metastore","element","verification","repository"],"backgroundTag":"internal-invariant-violation","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"}