{"record":{"id":"bb351920710f4931","repo":"pentaho/pentaho-kettle","slug":"webserviceavailable-error-filenamefieldmissing","errorCode":null,"errorMessage":"WebServiceAvailable.Error.FilenameFieldMissing","messagePattern":"WebServiceAvailable\\.Error\\.FilenameFieldMissing","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/trans/steps/webserviceavailable/WebServiceAvailable.java","lineNumber":76,"sourceCode":"    if ( r == null ) { // no more input to be expected...\n\n      setOutputDone();\n      return false;\n    }\n\n    if ( first ) {\n      first = false;\n      // get the RowMeta\n      data.previousRowMeta = getInputRowMeta().clone();\n      data.NrPrevFields = data.previousRowMeta.size();\n      data.outputRowMeta = data.previousRowMeta;\n      meta.getFields( getTransMeta().getBowl(), data.outputRowMeta, getStepname(), null, null, this, repository,\n        metaStore );\n\n      // Check is URL field is provided\n      if ( Utils.isEmpty( meta.getURLField() ) ) {\n        logError( BaseMessages.getString( PKG, \"WebServiceAvailable.Error.FilenameFieldMissing\" ) );\n        throw new KettleException( BaseMessages.getString( PKG, \"WebServiceAvailable.Error.FilenameFieldMissing\" ) );\n      }\n\n      // cache the position of the field\n      data.indexOfURL = data.previousRowMeta.indexOfValue( meta.getURLField() );\n      if ( data.indexOfURL < 0 ) {\n        // The field is unreachable !\n        logError( BaseMessages.getString( PKG, \"WebServiceAvailable.Exception.CouldnotFindField\" )\n          + \"[\" + meta.getURLField() + \"]\" );\n        throw new KettleException( BaseMessages.getString(\n          PKG, \"WebServiceAvailable.Exception.CouldnotFindField\", meta.getURLField() ) );\n      }\n    } // End If first\n\n    try {\n\n      // get url\n      String url = data.previousRowMeta.getString( r, data.indexOfURL );\n","sourceCodeStart":58,"sourceCodeEnd":94,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/trans/steps/webserviceavailable/WebServiceAvailable.java#L58-L94","documentation":"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.","triggerScenarios":"First row arrives, first-branch check executes Utils.isEmpty(meta.getURLField()) and it is true — no URL field configured on the step.","commonSituations":"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.","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."],"exampleFix":"// before (step XML)\n<urlField/>\n// after\n<urlField>ws_url</urlField>","handlingStrategy":"validation","validationCode":"if (meta.getURLField() == null || meta.getURLField().trim().isEmpty()) {\n  throw new IllegalArgumentException(\"WebServiceAvailable requires a URL field\");\n}","typeGuard":null,"tryCatchPattern":"try {\n  checkSetup();\n} catch (KettleException e) {\n  logError(\"Configure URL field on WebServiceAvailable step\", e);\n  setErrors(1);\n  stopAll();\n}","preventionTips":["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"],"tags":["pdi","kettle","webservice","missing-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"}