pentaho/pentaho-kettle · error · KettleException

No auto-sequence information found in the slave server…

Error message

No auto-sequence information found in the slave server config.  Slave sequence could not be created automatically.

What it means

Thrown by TransformationMap.createSlaveSequence when the Carte slave server configuration contains no auto-sequence definition (slaveServerConfig.getAutoSequence() returns null). Slave sequences require database-backed auto-sequence settings (start value, database meta, schema/table, field names) supplied in the Carte config file; without them a sequence cannot be created automatically.

Solutions

  1. Add an <auto-sequence> element (with start value, database, schema, table, and field names) to the Carte slave's config XML and restart the slave
  2. Check slaveServerConfig.isAutomaticCreationAllowed() before calling createSlaveSequence
  3. Create the SlaveSequence manually with explicit parameters instead of relying on the auto sequence

Example fix

// before
SlaveSequence seq = transformationMap.createSlaveSequence( "mySeq" );
// after
if ( slaveServerConfig.isAutomaticCreationAllowed() ) {
  SlaveSequence seq = transformationMap.createSlaveSequence( "mySeq" );
} else {
  throw new KettleException( "Configure <auto-sequence> in the slave config first" );
}
Defensive patterns

Strategy: try-catch

Validate before calling

if ( !slaveServerConfig.isAutomaticCreationAllowed() ) {
  throw new KettleException( "Add <auto-sequence> to the Carte slave config to enable slave sequences" );
}

Type guard

boolean hasAutoSequence(SlaveServerConfig cfg) { return cfg != null && cfg.getAutoSequence() != null; }

Try / catch

try {
  SlaveSequence seq = transformationMap.createSlaveSequence( name );
} catch ( KettleException e ) {
  if ( e.getMessage().contains( "No auto-sequence" ) ) {
    // configure auto-sequence in carte config or create sequence manually
  }
}

Prevention

When it happens

Trigger: Calling createSlaveSequence(name) on a Carte slave started without an <auto-sequence> block in its configuration XML; requesting a slave sequence via the Carte web service when auto-creation is not configured.

Common situations: Deploying a Carte slave with a default/minimal carte-config.xml lacking auto-sequence settings; operator calls the sequence REST endpoint expecting auto-creation; copying a config from a master that had sequences but not to the slave.

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

Appendix: source

Thrown at engine/src/main/java/org/pentaho/di/www/TransformationMap.java:384

   * @return the hostServerSocketPortsMap
   */
  public List<SocketPortAllocation> getHostServerSocketPorts( String hostname ) {
    List<SocketPortAllocation> ports = hostServerSocketPortsMap.get( hostname );
    return ports == null ? Collections.emptyList() : Collections.unmodifiableList( ports );
  }

  public SlaveSequence getSlaveSequence( String name ) {
    return SlaveSequence.findSlaveSequence( name, slaveServerConfig.getSlaveSequences() );
  }

  public boolean isAutomaticSlaveSequenceCreationAllowed() {
    return slaveServerConfig.isAutomaticCreationAllowed();
  }

  public SlaveSequence createSlaveSequence( String name ) throws KettleException {
    SlaveSequence auto = slaveServerConfig.getAutoSequence();
    if ( auto == null ) {
      throw new KettleException( "No auto-sequence information found in the slave server config.  "
        + "Slave sequence could not be created automatically." );
    }

    SlaveSequence slaveSequence =
      new SlaveSequence( name, auto.getStartValue(), auto.getDatabaseMeta(), auto.getSchemaName(), auto
        .getTableName(), auto.getSequenceNameField(), auto.getValueField() );

    slaveServerConfig.getSlaveSequences().add( slaveSequence );

    return slaveSequence;
  }

  private static class TransData {

    private Trans trans;

    private TransConfiguration configuration;

View on GitHub (pinned to f3058517a1)