ketan p
ketan p

Reputation: 31

Quickbook web connector : QBWC1042: ReceiveResponseXML failed Error message: The request failed with HTTP status 413: Request Entity Too Large

I am getting an exception when I try to send [qbxml request][1] from WCF...I am sending the qbxml request from wcf service using web connector to quick book desktop to get report summery and used GeneralDetailReportQueryRq query xml. But getting "QBWC1042: ReceiveResponseXML failed Error message: The request failed with HTTP status 413: Request Entity Too Large" Error message on web connector and have checked logs and found all response in verbose logs but web connector showing [1] "QBWC1042: ReceiveResponseXML failed".

This is the qbxml request

 <?xml version="1.0" encoding="UTF-8"?>
<?qbxml version="13.0"?>
<QBXML>
   <QBXMLMsgsRq onError="continueOnError">
      <GeneralDetailReportQueryRq>
         <GeneralDetailReportType>OpenInvoices</GeneralDetailReportType>
         <ReportDateMacro>Today</ReportDateMacro>
         <IncludeColumn>TxnID</IncludeColumn>
         <IncludeColumn>TxnNumber</IncludeColumn>
         <IncludeColumn>RefNumber</IncludeColumn>
         <IncludeColumn>Name</IncludeColumn>
         <IncludeColumn>TxnType</IncludeColumn>
         <IncludeColumn>Date</IncludeColumn>
         <IncludeColumn>Account</IncludeColumn>
         <IncludeColumn>Aging</IncludeColumn>
         <IncludeColumn>Amount</IncludeColumn>
         <IncludeColumn>OpenBalance</IncludeColumn>
         <IncludeColumn>RunningBalance</IncludeColumn>
         <IncludeColumn>Terms</IncludeColumn>
         <IncludeColumn>DueDate</IncludeColumn>
      </GeneralDetailReportQueryRq>
   </QBXMLMsgsRq>
</QBXML>

This the logs in web connector

20170720.08:03:33 UTC   : QBWebConnector.SOAPWebService.do_sendRequestXML() : cfn=""
20170720.08:03:33 UTC   : QBWebConnector.SOAPWebService.do_sendRequestXML() : qbNationality="US"
20170720.08:03:33 UTC   : QBWebConnector.SOAPWebService.do_sendRequestXML() : qbXMLMajorVers="13"
20170720.08:03:33 UTC   : QBWebConnector.SOAPWebService.do_sendRequestXML() : qbXMLMinorVers="0"
20170720.08:03:33 UTC   : QBWebConnector.SOAPWebService.do_sendRequestXML() : Received from sendRequestXML() following parameter:
20170720.08:03:33 UTC   : QBWebConnector.SOAPWebService.do_sendRequestXML() : strRequestXML =
20170720.08:03:33 UTC   : QBWebConnector.SOAPWebService.do_sendRequestXML() : XML dump follows: -

<?xml version="1.0" encoding="utf-8"?><?qbxml version="13.0"?><QBXML><QBXMLMsgsRq onError="continueOnError"><GeneralDetailReportQueryRq><GeneralDetailReportType>OpenInvoices</GeneralDetailReportType><ReportDateMacro>Today</ReportDateMacro><IncludeColumn>TxnID</IncludeColumn><IncludeColumn>TxnNumber</IncludeColumn><IncludeColumn>RefNumber</IncludeColumn><IncludeColumn>Name</IncludeColumn><IncludeColumn>TxnType</IncludeColumn><IncludeColumn>Date</IncludeColumn><IncludeColumn>Account</IncludeColumn><IncludeColumn>Aging</IncludeColumn><IncludeColumn>Amount</IncludeColumn><IncludeColumn>OpenBalance</IncludeColumn><IncludeColumn>RunningBalance</IncludeColumn><IncludeColumn>Terms</IncludeColumn><IncludeColumn>DueDate</IncludeColumn></GeneralDetailReportQueryRq></QBXMLMsgsRq></QBXML>

20170720.08:03:33 UTC   : QBWebConnector.SOAPWebService.do_sendRequestXML() : Request xml received.
20170720.08:03:33 UTC   : QBWebConnector.SOAPWebService.ProcessRequestXML() : Processing request #1
20170720.08:03:33 UTC   : QBWebConnector.SOAPWebService.ProcessRequestXML() : REQUEST: received from application: size (bytes) = 786
20170720.08:03:33 UTC   : QBWebConnector.SOAPWebService.ProcessRequestXML() : Sending request to QuickBooks.
20170720.08:03:37 UTC   : QBWebConnector.SOAPWebService.ProcessRequestXML() : Response received from QuickBooks: size (bytes) = 93980
20170720.08:03:37 UTC   : QBWebConnector.SOAPWebService.ProcessRequestXML() : Sending response back to application.
20170720.08:03:37 UTC   : QBWebConnector.SOAPWebService.do_receiveResponseXML() : *** Calling receiveResponseXML() with following parameters:
20170720.08:03:37 UTC   : QBWebConnector.SOAPWebService.do_receiveResponseXML() : wcTicket="d8bf5ba7-5e03-422a-a8ce-185cb86cf168"
20170720.08:03:37 UTC   : QBWebConnector.SOAPWebService.do_receiveResponseXML() : response =
20170720.08:03:37 UTC   : QBWebConnector.SOAPWebService.do_receiveResponseXML() : XML dump follows: -

<?xml version="1.0" ?>
<QBXML>
<QBXMLMsgsRs>
<GeneralDetailReportQueryRs statusCode="0" statusSeverity="Info" statusMessage="Status OK">
<ReportRet>
<ReportTitle>Open Invoices</ReportTitle>
<ReportSubtitle>As of July 20, 2017</ReportSubtitle>
<ReportBasis>Accrual</ReportBasis>
<NumRows>246</NumRows>
<NumColumns>14</NumColumns>
<NumColTitleRows>1</NumColTitleRows>
<ColDesc colID="1" dataType="STRTYPE">
<ColTitle titleRow="1" />
<ColType>Blank</ColType>
</ColDesc>

<TotalRow rowNumber="246">
<ColData colID="1" value="TOTAL" />
<ColData colID="9" value="1202982.55" />
<ColData colID="10" value="1089736.86" />
<ColData colID="11" value="1202982.55" />
</TotalRow>
</ReportData>
</ReportRet>
</GeneralDetailReportQueryRs>
</QBXMLMsgsRs>
</QBXML>


20170720.08:03:37 UTC   : QBWebConnector.SOAPWebService.do_receiveResponseXML() : hresult=""
20170720.08:03:37 UTC   : QBWebConnector.SOAPWebService.do_receiveResponseXML() : message=""
20170720.08:03:37 UTC   : QBWebConnector.SOAPWebService.do_receiveResponseXML() : QBWC1042: ReceiveResponseXML failed
Error message: The request failed with HTTP status 413: Request Entity Too Large.
More info:
StackTrace =    at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   at QBWebConnector.localhost.WCWebServiceDoc.receiveResponseXML(String ticket, String response, String hresult, String message)
   at QBWebConnector.localhost.WCWebService.receiveResponseXML(String ticket, String response, String hresult, String message)
   at QBWebConnector.SOAPWebService.receiveResponseXML(String wcTicket, String response, String hresult, String message)
   at QBWebConnector.WebService.do_receiveResponseXML(String wcTicket, String response, String hresult, String message, Boolean& success, Boolean& timeout)
Source = System.Web.Services

This is the error screen short.

Note : I have updated above logs and remove response data.I am getting complete response in log file but getting error on web connector for some requests.

I have implemented my service according to https://developer-static.intuit.com/qbSDK-current/doc/PDF/QBWC_proguide.pdf doc. receiveResponseXML method in CHAPTER 10.

Upvotes: 3

Views: 3008

Answers (1)

Keith Palmer Jr.
Keith Palmer Jr.

Reputation: 27962

Your web server is rejecting the HTTP request with this message:

  • The request failed with HTTP status 413: Request Entity Too Large

If you do a Google search, you'll find that by default WCF limits requests to 65 kilobytes maximum.

The request QuickBooks wants to send you is:

QuickBooks: size (bytes) = 93980

(or 93.98 kilobytes, roughly 30 kilobytes over the maximum size)

Reconfigure your WCF service/web server so that it allows larger payloads. Here's how:

Upvotes: 2

Related Questions