pentaho/pentaho-kettle · error · KettleException

InfobrightLoaderMeta.GetSQL.NoConnectionDefined

InfobrightLoaderMeta.GetSQL.NoConnectionDefined

Error message

InfobrightLoaderMeta.GetSQL.NoConnectionDefined

What it means

InfobrightLoader.verifyDatabaseConnection() throws this KettleException when the step's database meta (meta.getDatabaseMeta()) is null, meaning no Infobright/MySQL database connection is associated with the step. The message is an i18n key (InfobrightLoaderMeta.GetSQL.NoConnectionDefined) resolved via BaseMessages against the step's messages package.

Solutions

  1. Open the Infobright bulk loader step dialog and select/define the database connection
  2. Re-add the missing database connection to the transformation so the reference resolves
  3. If building metadata in code, call InfobrightLoaderMeta.setDatabaseMeta(...) before init
  4. Check the ktr XML for the step's <connection> element to confirm the connection name is present

Example fix

// before
InfobrightLoaderMeta meta = new InfobrightLoaderMeta();
// after
InfobrightLoaderMeta meta = new InfobrightLoaderMeta();
meta.setDatabaseMeta(DatabaseMeta.findDatabase(transMeta.getDatabases(), "Infobright"));
Defensive patterns

Strategy: validation

Validate before calling

if (meta.getDatabaseMeta() == null) { throw new IllegalStateException("Infobright loader step requires a database connection"); }

Try / catch

try { step.init(...); } catch (KettleException e) { if (e.getMessage().contains("NoConnectionDefined")) { /* attach DatabaseMeta and re-init */ } }

Prevention

When it happens

Trigger: init() calls verifyDatabaseConnection() during step initialization and the step was saved without a database connection, or the connection reference failed to deserialize (connection deleted from the transformation).

Common situations: Developer created the step programmatically without calling setDatabaseMeta(); the shared DB connection was deleted so the metadata reference became null; transformation XML copied between projects lost the connection.

Understand the failure class

Background: "is required", "must be set", "missing required field": configuration validation errors across open-source libraries — this error's family across 36 libraries.

Related errors


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

Appendix: source

Thrown at plugins/infobright-bulk-loader/impl/src/main/java/org/pentaho/di/trans/steps/infobrightoutput/InfobrightLoader.java:117

          logBasic( "linenr " + getLinesRead() );
        }
      }
    } catch ( Exception e ) {
      logError( "Because of an error, this step can't continue: " + e.getMessage() );
      logError( Const.getStackTracker( e ) );
      setErrors( 1 );
      stopAll();
      setOutputDone(); // signal end to receiver(s)
      closePipe();
      return false;
    }
    return true;
  }

  protected void verifyDatabaseConnection() throws KettleException {
    // Confirming Database Connection is defined.
    if ( meta.getDatabaseMeta() == null ) {
      throw new KettleException( BaseMessages.getString( PKG, "InfobrightLoaderMeta.GetSQL.NoConnectionDefined" ) );
    }
  }

  /**
   * {@inheritDoc}
   *
   * @see org.pentaho.di.trans.step.BaseStep#init(org.pentaho.di.trans.step.StepMetaInterface,
   *      org.pentaho.di.trans.step.StepDataInterface)
   */
  public boolean init( StepMetaInterface smi, StepDataInterface sdi ) {
    boolean res = false;
    meta = (InfobrightLoaderMeta) smi;
    data = (InfobrightLoaderData) sdi;

    if ( super.init( smi, sdi ) ) {
      try {
        verifyDatabaseConnection();
        data.databaseSetup( meta, this );

View on GitHub (pinned to f3058517a1)