in reply to returning Fault response in XML::Compile::SOAP::HTTPDaemon

return +{ PolicyException => { faultcode => pack_type(SOAP11ENV, 'Server') , faultstring => 'policy exception' , detail => { messageId => $error_code , text => $error_message , variables => [ $error_code, $error_message, ] } } };

See last part of the XML::Compile::SOAP::Daemon man-page.

The fault you want to produce is addressed by its WSDL part name "PolicyException". This directly enforces the datatype you have to specify with "detail". Confusingly, that detail element is also named PolicyException. WSDL parts can be element- or type-style. This way, we can unify both styles.