I have a SOAP server to handle connections from the QuickBooks Web Connector. The first method it calls is "authenticate" which correctly returns the data it expects, however it's giving me the error
QBWC1012: Authentication failed due to following error message.
Object reference not set to an instance of an object.
I'm at a loss on this one and there doesn't seem to be a solution on the web. The error message doesn't really give me anything to go on.
If anyone has any idea where I can look for more information about this I'd be grateful.
Here is the WC error log for the issue:
20140215.17:15:32 UTC : QBWebConnector.RegistryManager.setUpdateLock() : HKEY_CURRENT_USER\Software\Intuit\QBWebConnector\UpdateLock has been set to False
20140215.17:15:32 UTC : QBWebConnector.RegistryManager.setUpdateLock() : ********************* Update session unlocked *********************
20140215.17:15:32 UTC : QBWebConnector.WebServiceManager.DoUpdate() : Update completed with errors. See log (QWClog.txt) for details.
20140215.17:15:32 UTC : UpdateThisScheduledApp() : QBWC1031: Update completed with some error. Application has been notified of the error accordingly. See QWCLog for further information.
20140215.17:16:30 UTC : UpdateThisScheduledApp() : Password management - Started
20140215.17:16:30 UTC : UpdateThisScheduledApp() : Password management - Ended
20140215.17:16:30 UTC : UpdateThisScheduledApp() : Performing SCHEDULED UPDATE for application = PManager SOAP
20140215.17:16:30 UTC : QBWebConnector.RegistryManager.getUpdateLock() : HKEY_CURRENT_USER\Software\Intuit\QBWebConnector\UpdateLock = FALSE
20140215.17:16:30 UTC : QBWebConnector.RegistryManager.setUpdateLock() : HKEY_CURRENT_USER\Software\Intuit\QBWebConnector\UpdateLock has been set to True
20140215.17:16:30 UTC : QBWebConnector.RegistryManager.setUpdateLock() : ********************* Update session locked *********************
20140215.17:16:30 UTC : QBWebConnector.SOAPWebService.instantiateWebService() : Initiated connection to the following application.
20140215.17:16:30 UTC : QBWebConnector.SOAPWebService.instantiateWebService() : AppName: PManager SOAP
20140215.17:16:30 UTC : QBWebConnector.SOAPWebService.instantiateWebService() : AppUniqueName (if available): PManager SOAP
20140215.17:16:30 UTC : QBWebConnector.SOAPWebService.instantiateWebService() : AppURL: https://[SNIP]/pmanager/soapserver.php
20140215.17:16:30 UTC : QBWebConnector.SOAPWebService.do_serverVersion() : *** Calling serverVersion().
20140215.17:16:31 UTC : QBWebConnector.SOAPWebService.do_serverVersion() : Received from serverVersion() following parameter:<serverVersionRet="">
20140215.17:16:31 UTC : QBWebConnector.SOAPWebService.do_serverVersion() : This application sent a null for server version. Allowing update operation.
20140215.17:16:31 UTC : QBWebConnector.SOAPWebService.do_clientVersion() : *** Calling clientVersion() with following parameter:<productVersion="2.1.0.30">
20140215.17:16:32 UTC : QBWebConnector.SOAPWebService.do_clientVersion() : Received from clientVersion() following parameter:<clientVersionRet="">
20140215.17:16:32 UTC : QBWebConnector.SOAPWebService.do_clientVersion() : This application agrees with the current version of QBWebConnector. Allowing update operation.
20140215.17:16:32 UTC : QBWebConnector.SOAPWebService.do_authenticate() : Authenticating to application 'PManager SOAP', username = '[SNIP]'
20140215.17:16:32 UTC : QBWebConnector.SOAPWebService.do_authenticate() : *** Calling authenticate() with following parameters:<userName="[SNIP]"><password=<MaskedForSecurity>
20140215.17:16:33 UTC : QBWebConnector.SOAPWebService.do_authenticate() : QBWC1012: Authentication failed due to following error message.
Object reference not set to an instance of an object.
More info:
StackTrace = at QBWebConnector.WebService.do_authenticate(String& ticket, String& companyFileName)
Source = QBWebConnector
20140215.17:16:33 UTC : QBWebConnector.RegistryManager.setUpdateLock() : HKEY_CURRENT_USER\Software\Intuit\QBWebConnector\UpdateLock has been set to False
20140215.17:16:33 UTC : QBWebConnector.RegistryManager.setUpdateLock() : ********************* Update session unlocked *********************
20140215.17:16:33 UTC : QBWebConnector.WebServiceManager.DoUpdate() : Update completed with errors. See log (QWClog.txt) for details.
20140215.17:16:33 UTC : UpdateThisScheduledApp() : QBWC1031: Update completed with some error. Application has been notified of the error accordingly. See QWCLog for further information.
SOAP response being sent to WC:
<?xml version="1.0" encoding="ISO-8859-1"?>
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:authenticateResponse xmlns:ns1="http://developer.intuit.com/">
<return xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:string[2]">
<item xsi:type="xsd:string">8d51474324d94e25aa1e6670da584204</item>
<item xsi:type="xsd:string">C:/Path/File.QBW</item>
</return>
</ns1:authenticateResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
I should have updated this sooner... The problem turned out to be the version number, I was trying to use an older version that didn't support some features. Changing the version in the call to the WC solved it.