pentaho/pentaho-kettle · error · KettleException

Unable to load job entry of type 'MSsql bulk load' from the…

Error message

Unable to load job entry of type 'MSsql bulk load' from the repository for id_jobentry=

What it means

KettleException thrown by JobEntryMssqlBulkLoad.loadRep() when reading the 'MSsql bulk load' entry's attributes from the repository fails with a KettleDatabaseException, including loading the associated database connection metadata. It means the stored definition of this job entry cannot be fetched from the repository.

Solutions

  1. Inspect the wrapped KettleDatabaseException cause to find the failing SQL/query and fix the repository database.
  2. Recreate the missing connection in the repository so id_database resolves.
  3. Run repository schema upgrade/repair to restore missing attribute rows or columns.
  4. Recreate the job entry in the repository if its rows are corrupted.
Defensive patterns

Strategy: try-catch

Validate before calling

// before load: check connection reference exists
ObjectId connId = rep.findDatabaseId( databases, dbname );
if ( connId == null ) throw new KettleException( "connection not found in repository for job entry" );

Try / catch

try { jobEntry.loadRep( rep, metaStore, idJobentry, databases, slaveServers ); } catch ( KettleException e ) { logError( "Repository load failed: " + e.getCause(), e ); }

Prevention

When it happens

Trigger: Loading a job from a repository when getJobEntryAttributeBoolean/Integer or loadDatabaseMetaFromJobEntryAttribute(id_jobentry, "connection", "id_database", databases) throws — missing attribute rows, broken id_database reference, or repository connection failure.

Common situations: The connection referenced by id_database was deleted from the repository; R schema out of sync; repository read permissions restricted; corrupted attribute rows after a partial save.

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/c01f59e4984528df. Report an issue: GitHub.

Appendix: source

Thrown at engine/src/main/java/org/pentaho/di/job/entries/mssqlbulkload/JobEntryMssqlBulkLoad.java:254

      startfile = (int) rep.getJobEntryAttributeInteger( id_jobentry, "startfile" );
      endfile = (int) rep.getJobEntryAttributeInteger( id_jobentry, "endfile" );

      orderby = rep.getJobEntryAttributeString( id_jobentry, "orderby" );
      orderdirection = rep.getJobEntryAttributeString( id_jobentry, "orderdirection" );

      errorfilename = rep.getJobEntryAttributeString( id_jobentry, "errorfilename" );
      maxerrors = (int) rep.getJobEntryAttributeInteger( id_jobentry, "maxerrors" );
      batchsize = (int) rep.getJobEntryAttributeInteger( id_jobentry, "batchsize" );
      rowsperbatch = (int) rep.getJobEntryAttributeInteger( id_jobentry, "rowsperbatch" );
      adddatetime = rep.getJobEntryAttributeBoolean( id_jobentry, "adddatetime" );

      addfiletoresult = rep.getJobEntryAttributeBoolean( id_jobentry, "addfiletoresult" );
      truncate = rep.getJobEntryAttributeBoolean( id_jobentry, "truncate" );

      connection = rep.loadDatabaseMetaFromJobEntryAttribute( id_jobentry, "connection", "id_database", databases );
    } catch ( KettleDatabaseException dbe ) {
      throw new KettleException(
        "Unable to load job entry of type 'MSsql bulk load' 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(), "schemaname", schemaname );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "tablename", tablename );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "filename", filename );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "datafiletype", datafiletype );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "fieldterminator", fieldterminator );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "lineterminated", lineterminated );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "codepage", codepage );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "specificcodepage", specificcodepage );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "formatfilename", formatfilename );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "firetriggers", firetriggers );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "checkconstraints", checkconstraints );

View on GitHub (pinned to f3058517a1)