In this blog I am going to share a typical problem I have encountered few days ago while developing an OSB interface for my current project. Scenario is simple SIEBEL is going to call our OSB proxy service and then OSB will pass the request to another service provider after doing certain enrichment to the request. As it is a synchronous call to the service provider OSB will receive a response message in response PIPELINE and return the response to SIEBEL. This is a happy path execution and we observed no problem while our interface goes in happy path.
Problem arise when our interface fails due to some internal error and execution goes to error handler. In our error handler we are creating a common error response with all error details and send the response back to SIEBEL. But we observe that SIEBEL always receive HTTP 500 error.
As a workaround we have changed the OSB reply activity “with success” from “with failure”.
The problem is if we keep OSB reply “with failure” then it sends a SOAP fault to SIEBEL and SIEBEL acknowledges it as HTTP 500 error. So reply “with success” sends the error response as a xml payload instead of SOAP fault. So SIEBEL acknowledges proper error Response.