in reply to Client-side error Handling (SOAP,CGI)

From the looks of things, the error message in question isn't being escaped, and so XML::Parser is trying to read some of the items in the string as XML elements. (<*>).

That's your bigger problem ... the SQL error is a problem, but it shouldn't cause the whole system to choke -- just throw an error (SOAP fault).

So ... the problem isn't anything on the client side ... it's the server writing a bad SOAP message. If you want the client to be able to recover from transport errors (ie, HTTP 500), see SOAP::Lite's on_fault() method.