{"record":{"id":"21a7922b197033f7","repo":"pentaho/pentaho-kettle","slug":"there-is-no-palo-database-server-connection-defined","errorCode":null,"errorMessage":"There is no Palo database server connection defined","messagePattern":"There is no Palo database server connection defined","errorType":"exception","errorClass":"KettleStepException","httpStatus":null,"severity":"error","filePath":"plugins/palo/core/src/main/java/org/pentaho/di/trans/steps/palo/cellinput/PaloCellInputMeta.java","lineNumber":134,"sourceCode":"        String fieldName = XMLHandler.getTagValue( fnode, \"fieldname\" );\n        String fieldType = XMLHandler.getTagValue( fnode, \"fieldtype\" );\n        this.fields.add( new DimensionField( dimensionName, fieldName, fieldType ) );\n      }\n    } catch ( Exception e ) {\n      throw new KettleXMLException( \"Unable to load step info from XML\", e );\n    }\n  }\n\n  @Override\n  public void setDefault() {\n  }\n\n  @Override\n  public void getFields( Bowl bowl, final RowMetaInterface row, final String origin, final RowMetaInterface[] info,\n      final StepMeta nextStep, final VariableSpace space, Repository repository, IMetaStore metaStore )\n    throws KettleStepException {\n    if ( databaseMeta == null ) {\n      throw new KettleStepException( \"There is no Palo database server connection defined\" );\n    }\n    final PaloHelper helper = new PaloHelper( databaseMeta, DefaultLogLevel.getLogLevel() );\n    try {\n      helper.connect();\n      try {\n        final RowMetaInterface rowMeta = helper.getCellRowMeta( this.cube, this.fields, this.cubeMeasure );\n        row.addRowMeta( rowMeta );\n      } finally {\n        helper.disconnect();\n      }\n    } catch ( Exception e ) {\n      throw new KettleStepException( e );\n    }\n  }\n\n  @Override\n  public String getXML() {\n    StringBuffer retval = new StringBuffer();","sourceCodeStart":116,"sourceCodeEnd":152,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/palo/core/src/main/java/org/pentaho/di/trans/steps/palo/cellinput/PaloCellInputMeta.java#L116-L152","documentation":"Thrown by PaloCellInputMeta.getFields when databaseMeta is null. getFields must connect to the Palo server to compute the output row layout from the cube's dimensions, which is impossible without a configured connection.","triggerScenarios":"Row-layout negotiation (getFields) invoked while the step's database connection field is unset — e.g. transformation loaded without its shared connection, or connection never assigned in the dialog.","commonSituations":"Transformation imported without referenced connection objects; connection deleted from the repository after the step was configured; running a transformation built programmatically without setting the connection.","solutions":["Assign a Palo database connection to the step in the transformation dialog.","Confirm the shared connection exists in the repository/metastore and is referenced correctly.","Re-export/import the transformation including connection definitions.","Check databaseMeta before executing getFields programmatically and fail early with a clear message."],"exampleFix":"// before\nmeta.getFields(...); // throws if connection not set\n// after\nif (meta.getDatabaseMeta() == null) {\n  meta.setDatabaseMeta(transMeta.findDatabase(\"PaloServer\"));\n}\nmeta.getFields(...);","handlingStrategy":"validation","validationCode":"if (meta.getDatabaseMeta() == null) { meta.setDatabaseMeta(transMeta.findDatabase(\"PaloServer\")); if (meta.getDatabaseMeta() == null) throw new IllegalStateException(\"Palo connection not configured\"); }","typeGuard":null,"tryCatchPattern":"try { rowMeta = buildRow(meta); } catch (KettleStepException e) { /* connection missing — configure before run */ }","preventionTips":["Always verify the step has a database connection before executing","Export transformations with connection definitions included","Check for deleted shared connections after repository changes"],"tags":["kettle","palo","missing-connection","config"],"backgroundTag":"missing-required-config-field","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"}