pentaho/pentaho-kettle · error · KettleException

Unable to load job entry of type 'Telnet' exists from the…

Error message

Unable to load job entry of type 'Telnet' exists from the repository for id_jobentry=

What it means

Thrown by JobEntryTelnet.loadRep when reading the Telnet job entry's attributes (hostname, port, timeout) from the repository fails with a KettleException. The message (despite its awkward wording) means the entry could not be loaded from the repository for the given id_jobentry. The database exception is preserved as the cause.

Solutions

  1. Check repository connectivity and re-run the load
  2. Verify rows exist in R_JOBENTRY_ATTRIBUTE for the given id_jobentry
  3. Re-migrate/repair the repository schema for the installed Pentaho version
  4. Inspect the wrapped KettleException cause for the underlying SQL error
Defensive patterns

Strategy: try-catch

Validate before calling

if ( rep == null || !rep.isConnected() ) { throw new IllegalStateException( "Repository unavailable" ); }

Try / catch

try { entry.loadRep( rep, metaStore, id_jobentry, databases, slaveServers ); } catch ( KettleException e ) { log.error( "Failed loading Telnet entry " + id_jobentry, e.getCause() ); }

Prevention

When it happens

Trigger: Calling loadRep with an id_jobentry whose attribute rows cannot be read: broken repository connection, missing R_JOBENTRY_ATTRIBUTE rows, or a database error during getJobEntryAttributeString calls.

Common situations: Repository schema out of sync after an upgrade; id_jobentry referencing a deleted entry; transient database outage during job load; insufficient SELECT permissions on repository tables.

Understand the failure class

Background: Database query failed: Internal Server Error 500s wrapping SQL, Prisma, and connection failures — what to check first — this error's family across 16 libraries.

Related errors


AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13). Data as JSON: /api/errors/e6c71dfa12c831d5. Report an issue: GitHub.

Appendix: source

Thrown at engine/src/main/java/org/pentaho/di/job/entries/telnet/JobEntryTelnet.java:110

    Repository rep, IMetaStore metaStore ) throws KettleXMLException {
    try {
      super.loadXML( entrynode, databases, slaveServers );
      hostname = XMLHandler.getTagValue( entrynode, "hostname" );
      port = XMLHandler.getTagValue( entrynode, "port" );
      timeout = XMLHandler.getTagValue( entrynode, "timeout" );
    } catch ( KettleXMLException xe ) {
      throw new KettleXMLException( "Unable to load job entry of type 'Telnet' from XML node", xe );
    }
  }

  public void loadRep( Repository rep, IMetaStore metaStore, ObjectId id_jobentry, List<DatabaseMeta> databases,
    List<SlaveServer> slaveServers ) throws KettleException {
    try {
      hostname = rep.getJobEntryAttributeString( id_jobentry, "hostname" );
      port = rep.getJobEntryAttributeString( id_jobentry, "port" );
      timeout = rep.getJobEntryAttributeString( id_jobentry, "timeout" );
    } catch ( KettleException dbe ) {
      throw new KettleException(
        "Unable to load job entry of type 'Telnet' exists from the repository for id_jobentry=" + id_jobentry,
        dbe );
    }
  }

  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_job ) throws KettleException {
    try {
      rep.saveJobEntryAttribute( id_job, getObjectId(), "hostname", hostname );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "port", port );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "timeout", timeout );
    } catch ( KettleDatabaseException dbe ) {
      throw new KettleException( "Unable to save job entry of type 'Telnet' to the repository for id_job="
        + id_job, dbe );
    }
  }

  public String getPort() {
    return port;

View on GitHub (pinned to f3058517a1)