{"record":{"id":"493433d45bda9ad6","repo":"pentaho/pentaho-kettle","slug":"error0008","errorCode":"ERROR0008","errorMessage":"WebServiceDialog.ERROR0008.UnsupportedOperation.IncorrectParams","messagePattern":"WebServiceDialog\\.ERROR0008\\.UnsupportedOperation\\.IncorrectParams","errorType":"error_code","errorClass":"KettleStepException","httpStatus":null,"severity":"error","filePath":"ui/src/main/java/org/pentaho/di/ui/trans/steps/webservices/WebServiceDialog.java","lineNumber":297,"sourceCode":"              } else {\n                inWsdlParamContainer = new WsdlOpParameterContainer( param );\n              }\n            } else if ( ParameterMode.OUT.equals( param.getMode() )\n              || ParameterMode.INOUT.equals( param.getMode() )\n              || ParameterMode.UNDEFINED.equals( param.getMode() ) ) {\n              if ( outWsdlParamContainer != null ) {\n                throw new KettleStepException( BaseMessages.getString(\n                  PKG, \"WebServiceDialog.ERROR0006.UnsupportedOperation.MultipleArrays\" ) );\n              } else {\n                outWsdlParamContainer = new WsdlOpParameterContainer( param );\n              }\n            }\n          }\n        } else {\n          if ( ParameterMode.IN.equals( param.getMode() )\n            || ParameterMode.INOUT.equals( param.getMode() ) || ParameterMode.UNDEFINED.equals( param.getMode() ) ) {\n            if ( inWsdlParamContainer != null && !( inWsdlParamContainer instanceof WsdlOperationContainer ) ) {\n              throw new KettleStepException( BaseMessages.getString(\n                PKG, \"WebServiceDialog.ERROR0008.UnsupportedOperation.IncorrectParams\" ) );\n            } else {\n              inWsdlParamContainer = new WsdlOperationContainer( wsdlOperation, param.getMode() );\n            }\n          } else if ( ParameterMode.OUT.equals( param.getMode() )\n            || ParameterMode.INOUT.equals( param.getMode() ) || ParameterMode.UNDEFINED.equals( param.getMode() ) ) {\n            if ( outWsdlParamContainer != null && !( outWsdlParamContainer instanceof WsdlOperationContainer ) ) {\n              throw new KettleStepException( BaseMessages.getString(\n                PKG, \"WebServiceDialog.ERROR0008.UnsupportedOperation.IncorrectParams\" ) );\n            } else {\n              outWsdlParamContainer = new WsdlOperationContainer( wsdlOperation, param.getMode() );\n            }\n          } else {\n            System.out.println( \"Parameter : \"\n              + param.getName().getLocalPart() + \", mode=\" + param.getMode().toString() + \", is not considered\" );\n          }\n        }\n      }","sourceCodeStart":279,"sourceCodeEnd":315,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/ui/src/main/java/org/pentaho/di/ui/trans/steps/webservices/WebServiceDialog.java#L279-L315","documentation":"WebServiceDialog.loadOperation throws ERROR0008 'Incorrect params' when an IN/INOUT/UNDEFINED parameter is encountered while inWsdlParamContainer already holds a plain parameter container rather than a WsdlOperationContainer — a parameter/operation container mix the step cannot reconcile.","triggerScenarios":"An operation's parameter list combines simple (non-complex) parameters after array/complex parameters, or vice versa: first path created a WsdlOpParameterContainer, then a simple param path finds it non-null and not a WsdlOperationContainer.","commonSituations":"Mixed-style WSDLs combining bare parts and complex request elements; document/literal vs RPC encoding inconsistencies; WSDL updated by the service team breaking previously working operations.","solutions":["Regenerate/reload the WSDL in the dialog ('Get operations') so containers are rebuilt consistently.","Use an operation with a homogeneous parameter style (all simple parts or a single complex request).","Normalize the WSDL: make all request parameters simple, or wrap everything in one request element.","Upgrade PDI — newer versions improved Web Services step parameter handling."],"exampleFix":"// before (mixed)\n<part name=\"id\" type=\"xsd:string\"/><part name=\"req\" type=\"tns:Req\"/>\n// after (uniform)\n<part name=\"req\" type=\"tns:Req\"/> <!-- req contains id -->","handlingStrategy":"validation","validationCode":"if (inWsdlParamContainer != null && !(inWsdlParamContainer instanceof WsdlOperationContainer)) {\n  throw new KettleStepException(\"Mixed parameter styles in WSDL input message; reload WSDL or pick a uniform operation\");\n}","typeGuard":"boolean hasConsistentInputStyle(WsdlOperation op) { return op.getParameters().stream().map(p -> p.getClass()).distinct().count() <= 1; }","tryCatchPattern":"try { loadOperation(op); } catch (KettleStepException e) { logError(\"Inconsistent WSDL parameter style — click 'Get operations' to reload, or pick another operation\"); }","preventionTips":["Reload operations from the WSDL after any service-side schema change","Avoid WSDLs that mix bare parts with complex request elements","Pin a known-good WSDL copy locally when the provider changes schemas"],"tags":["kettle","web-services","soap","wsdl","parameter-mix"],"backgroundTag":"invalid-state-transition","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"}