{"record":{"id":"0dcfa21612c3ca86","repo":"pentaho/pentaho-kettle","slug":"delaymeta-exception-unexpectederrorreadingstepinfo","errorCode":"DelayMeta.Exception.UnexpectedErrorReadingStepInfo","errorMessage":"DelayMeta.Exception.UnexpectedErrorReadingStepInfo","messagePattern":"DelayMeta\\.Exception\\.UnexpectedErrorReadingStepInfo","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/core/impl/src/main/java/org/pentaho/di/trans/steps/delay/DelayMeta.java","lineNumber":158,"sourceCode":"  }\n\n  public String getTimeOut() {\n    return timeout;\n  }\n\n  public void setTimeOut( String timeout ) {\n    this.timeout = timeout;\n  }\n\n  public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases ) throws KettleException {\n    try {\n      timeout = rep.getStepAttributeString( id_step, \"timeout\" );\n      scaletime = rep.getStepAttributeString( id_step, \"scaletime\" );\n      // set all unknown values to seconds\n      setScaleTimeCode( getScaleTimeCode() ); // compatibility reasons for transformations before 3.1.1, see PDI-1850,\n                                              // PDI-1532\n    } catch ( Exception e ) {\n      throw new KettleException( BaseMessages\n        .getString( PKG, \"DelayMeta.Exception.UnexpectedErrorReadingStepInfo\" ), e );\n    }\n  }\n\n  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_transformation, ObjectId id_step ) throws KettleException {\n    try {\n      rep.saveStepAttribute( id_transformation, id_step, \"timeout\", timeout );\n      rep.saveStepAttribute( id_transformation, id_step, \"scaletime\", scaletime );\n\n    } catch ( Exception e ) {\n      throw new KettleException(\n        BaseMessages.getString( PKG, \"DelayMeta.Exception.UnexpectedErrorSavingStepInfo\" ), e );\n    }\n  }\n\n  @Override\n  public void getFields( Bowl bowl, RowMetaInterface rowMeta, String origin, RowMetaInterface[] info, StepMeta nextStep,\n    VariableSpace space, Repository repository, IMetaStore metaStore ) throws KettleStepException {","sourceCodeStart":140,"sourceCodeEnd":176,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/core/impl/src/main/java/org/pentaho/di/trans/steps/delay/DelayMeta.java#L140-L176","documentation":"DelayMeta.readRep loads the Delay step's attributes (timeout, scaletime) from the repository via rep.getStepAttributeString. Any exception is wrapped in a KettleException with 'DelayMeta.Exception.UnexpectedErrorReadingStepInfo'. It means reading the step's stored attributes from the repository failed.","triggerScenarios":"readRep while repository getStepAttributeString calls throw: repository DB unreachable, corrupted attribute rows, insufficient read permission, or schema mismatch between PDI client and repository.","commonSituations":"Opening a repository-stored transformation after the DB connection dropped; read-only or restricted repository user; repository upgraded by a newer PDI; missing attribute rows for legacy transformations (pre-3.1.1).","solutions":["Reconnect to the repository and reopen the transformation.","Inspect the wrapped cause for the underlying repository error and fix it.","Grant the repository user read access to the transformation.","If attributes are missing/corrupted, open and re-save the step in Spoon to repopulate defaults (timeout=1s, seconds scale)."],"exampleFix":"// before\nTransMeta tm = new TransMeta(rep, transId, metaStore);\n// after: guard connection and log the cause\nif (!rep.isConnected()) { rep.connect(); }\ntry {\n  TransMeta tm = new TransMeta(rep, transId, metaStore);\n} catch (KettleException e) {\n  logError(\"readRep failed: \" + e.getCause().getMessage(), e);\n}","handlingStrategy":"try-catch","validationCode":"if (rep == null || !rep.isConnected()) { throw new KettleException(\"Repository not connected; cannot read Delay step attributes\"); }","typeGuard":null,"tryCatchPattern":"try { transMeta = new TransMeta(rep, transId, metaStore); } catch (KettleException e) { Throwable c = e.getCause(); logError(\"Delay readRep failed: \" + (c != null ? c.getMessage() : e.getMessage()), e); if (!rep.isConnected()) { rep.connect(); } }","preventionTips":["Verify repository read permissions for all consuming users.","Reconnect repositories after long idle periods.","Keep client/repository schema versions aligned.","Back up the repository database regularly."],"tags":["kettle","repository","step-metadata","persistence"],"backgroundTag":"database-query-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"}