pentaho/pentaho-kettle · error · KettleException
WebServiceAvailable.Error.FilenameFieldMissing
Error message
WebServiceAvailable.Error.FilenameFieldMissing
What it means
The WebServiceAvailable step requires a URL field: the name of an input field containing the URL to check. processRow logs and throws this error when meta.getURLField() is null or empty, because the step cannot know where to read the URL from.
Solutions
- Open the WebServiceAvailable step dialog and set the 'URL field' to the input field containing the URL.
- Ensure the upstream step actually outputs a URL-typed field and pass it into this step.
- If the field was renamed, update the step setting to the new name.
- Inspect the step XML attribute (urlField) in the .ktr to confirm it is populated.
Example fix
// before (step XML) <urlField/> // after <urlField>ws_url</urlField>
Defensive patterns
Strategy: validation
Validate before calling
if (meta.getURLField() == null || meta.getURLField().trim().isEmpty()) {
throw new IllegalArgumentException("WebServiceAvailable requires a URL field");
} Try / catch
try {
checkSetup();
} catch (KettleException e) {
logError("Configure URL field on WebServiceAvailable step", e);
setErrors(1);
stopAll();
} Prevention
- Always set the URL field when creating the step
- After renaming upstream fields, re-check downstream step configs
- Preview upstream rows to confirm field names
When it happens
Trigger: First row arrives, first-branch check executes Utils.isEmpty(meta.getURLField()) and it is true — no URL field configured on the step.
Common situations: Step added but the URL field dropdown left unset; field renamed upstream without updating the step; transformation copied where the field config was lost; loading from repository failed silently and left defaults empty.
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
- OraBulkLoaderMeta.Exception.ConnectionNotDefined
- OraBulkLoaderMeta.Exception.TableNotSpecified
- WebServiceAvailable.Error.URLEmpty
- WebServiceAvailable.Exception.CouldnotFindField
- WebServiceAvailableMeta.Exception.UnexpectedErrorReadingStep…
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/bb351920710f4931.
Report an issue: GitHub.
Appendix: source
Thrown at engine/src/main/java/org/pentaho/di/trans/steps/webserviceavailable/WebServiceAvailable.java:76
if ( r == null ) { // no more input to be expected...
setOutputDone();
return false;
}
if ( first ) {
first = false;
// get the RowMeta
data.previousRowMeta = getInputRowMeta().clone();
data.NrPrevFields = data.previousRowMeta.size();
data.outputRowMeta = data.previousRowMeta;
meta.getFields( getTransMeta().getBowl(), data.outputRowMeta, getStepname(), null, null, this, repository,
metaStore );
// Check is URL field is provided
if ( Utils.isEmpty( meta.getURLField() ) ) {
logError( BaseMessages.getString( PKG, "WebServiceAvailable.Error.FilenameFieldMissing" ) );
throw new KettleException( BaseMessages.getString( PKG, "WebServiceAvailable.Error.FilenameFieldMissing" ) );
}
// cache the position of the field
data.indexOfURL = data.previousRowMeta.indexOfValue( meta.getURLField() );
if ( data.indexOfURL < 0 ) {
// The field is unreachable !
logError( BaseMessages.getString( PKG, "WebServiceAvailable.Exception.CouldnotFindField" )
+ "[" + meta.getURLField() + "]" );
throw new KettleException( BaseMessages.getString(
PKG, "WebServiceAvailable.Exception.CouldnotFindField", meta.getURLField() ) );
}
} // End If first
try {
// get url
String url = data.previousRowMeta.getString( r, data.indexOfURL );
View on GitHub (pinned to f3058517a1)