title: Consolibyte webconnector request stuck at queue
body: <p>I followed the instructions and attempted to use the sample code provided by consolibyte but to no avail. Tried changing ownerid/fileid multiple times, tried reinstalling web connector, tried qb on a different machine, tried dropping all qb tables. I copied the code from example_web_connector_minimal.php and inserted my username and password, server details. The php checks out well in browser. The web connector goes through with no error but nothing is posted in the Quickbooks end. I did get some error in the QWCLog.txt related to AppLock and not sure if this is causing the issue.</p>
  
  <p>Here's my QWC file:</p>
  
  <pre><code>&lt;?xml version="1.0"?&gt;
  &lt;QBWCXML&gt;
      &lt;AppName&gt;Dashboard&lt;/AppName&gt;
      &lt;AppID&gt;EFDB&lt;/AppID&gt;
      &lt;AppURL&gt;[REMOVED]/qb-php-master/web_connector_test.php&lt;/AppURL&gt;
      &lt;AppDescription&gt;An example QuickBooks Integration&lt;/AppDescription&gt;
      &lt;AppSupport&gt;[REMOVED]&lt;/AppSupport&gt;
      &lt;UserName&gt;quickbooks&lt;/UserName&gt;
      &lt;OwnerID&gt;{57F3B9B6-86F1-4FCC-A2FF-266DE1813D20}&lt;/OwnerID&gt;
      &lt;FileID&gt;{57F3B9B6-86F1-4FCC-B8FF-866DE1813D20}&lt;/FileID&gt;
      &lt;QBType&gt;QBFS&lt;/QBType&gt;
      &lt;Notify&gt;false&lt;/Notify&gt;
      &lt;Scheduler&gt;
          &lt;RunEveryNMinutes&gt;10&lt;/RunEveryNMinutes&gt;
      &lt;/Scheduler&gt;
      &lt;IsReadOnly&gt;false&lt;/IsReadOnly&gt;
  &lt;/QBWCXML&gt;
  </code></pre>
  
  <p>QWCLog:</p>
  
  <pre><code>20171005.15:15:50 UTC   : QWCReader.ParseQWC() : Contents of QWC file: -
  &lt;QBWCXML&gt;
    &lt;AppName&gt;Dashboard&lt;/AppName&gt;
    &lt;AppID&gt;EFDB&lt;/AppID&gt;
    &lt;AppURL&gt;[removed]/qb-php-master/web_connector_test.php&lt;/AppURL&gt;
    &lt;AppDescription&gt;An example QuickBooks Integration&lt;/AppDescription&gt;
    &lt;AppSupport&gt;[removed]/dashboard&lt;/AppSupport&gt;
    &lt;UserName&gt;quickbooks&lt;/UserName&gt;
    &lt;OwnerID&gt;{57F3B9B6-86F1-4FCC-A2FF-266DE1813D20}&lt;/OwnerID&gt;
    &lt;FileID&gt;{57F3B9B6-86F1-4FCC-B8FF-866DE1813D20}&lt;/FileID&gt;
    &lt;QBType&gt;QBFS&lt;/QBType&gt;
    &lt;Notify&gt;false&lt;/Notify&gt;
    &lt;Scheduler&gt;
      &lt;RunEveryNMinutes&gt;10&lt;/RunEveryNMinutes&gt;
    &lt;/Scheduler&gt;
    &lt;IsReadOnly&gt;false&lt;/IsReadOnly&gt;
  &lt;/QBWCXML&gt;
  20171005.15:15:50 UTC   : QBWebConnector.WebServiceManager.ReadQWC(QWCReader QWC) : Parsing application configuration xml file to load its content to variables
  20171005.15:15:52 UTC   : QBWebConnector.RegistryManager.createRegKey() : Error creating registry key for appName = &lt;&gt;
  20171005.15:15:52 UTC   : QBWebConnector.RegistryManager.createRegKey() : Reason: Value cannot be null.
  Parameter name: name
  20171005.15:15:52 UTC   : QBWebConnector.SOAPWebService.SerializeToRegistry() : Error saving Dashboard to Registry: Object reference not set to an instance of an object.
  20171005.15:15:52 UTC   : QBWebConnector.SOAPWebService.ConnectToQB() : Connecting to QuickBooks...
  20171005.15:16:04 UTC   : QBWebConnector.SOAPWebService.ConnectToQB() : Connected., Session started
  20171005.15:16:04 UTC   : QBWebConnector.SOAPWebService.AddToQuickBooks() : Application name = Dashboard
  20171005.15:16:04 UTC   : QBWebConnector.SOAPWebService.AddToQuickBooks() : Querying company file to find if owner/file id exists.
  20171005.15:16:04 UTC   : QBWebConnector.SOAPWebService.findFileIDinQB() : Latest QBXML version supported = v13.0
  20171005.15:16:04 UTC   : QBWebConnector.SOAPWebService.findFileIDinQB() : Querying QuickBooks for existance of owner/file id
  20171005.15:16:04 UTC   : QBWebConnector.SOAPWebService.findFileIDinQB() : XML dump follows: -
  
  &lt;?xml version="1.0"?&gt;&lt;?qbxml version="13.0"?&gt;&lt;QBXML&gt;&lt;QBXMLMsgsRq onError="stopOnError"&gt;&lt;DataExtDefQueryRq requestID="1"&gt;&lt;OwnerID&gt;{57F3B9B6-86F1-4FCC-A2FF-266DE1813D20}&lt;/OwnerID&gt;&lt;/DataExtDefQueryRq&gt;&lt;/QBXMLMsgsRq&gt;&lt;/QBXML&gt;
  
  20171005.15:16:04 UTC   : QBWebConnector.SOAPWebService.findFileIDinQB() : XML dump follows: -
  
  &lt;?xml version="1.0" ?&gt;
  &lt;QBXML&gt;
  &lt;QBXMLMsgsRs&gt;
  &lt;DataExtDefQueryRs requestID="1" statusCode="1" statusSeverity="Info" statusMessage="A query request did not find a matching object in QuickBooks" /&gt;
  &lt;/QBXMLMsgsRs&gt;
  &lt;/QBXML&gt;
  
  
  20171005.15:16:04 UTC   : QBWebConnector.SOAPWebService.findFileIDinQB() : Status message: A query request did not find a matching object in QuickBooks
  20171005.15:16:04 UTC   : QBWebConnector.SOAPWebService.AddToQuickBooks() : FileID did not exist. Creating new FileID in company file
  20171005.15:16:04 UTC   : QBWebConnector.SOAPWebService.registerDataExtInQB() : Creating DataExtDef named FileID assigned to Company object for the ownerID = {57F3B9B6-86F1-4FCC-A2FF-266DE1813D20}
  20171005.15:16:04 UTC   : QBWebConnector.SOAPWebService.registerDataExtInQB() : XML dump follows: -
  
  &lt;?xml version="1.0"?&gt;&lt;?qbxml version="13.0"?&gt;&lt;QBXML&gt;&lt;QBXMLMsgsRq onError="stopOnError"&gt;&lt;DataExtDefAddRq requestID="1"&gt;&lt;DataExtDefAdd&gt;&lt;OwnerID&gt;{57F3B9B6-86F1-4FCC-A2FF-266DE1813D20}&lt;/OwnerID&gt;&lt;DataExtName&gt;FileID&lt;/DataExtName&gt;&lt;DataExtType&gt;STR255TYPE&lt;/DataExtType&gt;&lt;AssignToObject&gt;Company&lt;/AssignToObject&gt;&lt;/DataExtDefAdd&gt;&lt;/DataExtDefAddRq&gt;&lt;/QBXMLMsgsRq&gt;&lt;/QBXML&gt;
  
  20171005.15:16:05 UTC   : QBWebConnector.SOAPWebService.registerDataExtInQB() : XML dump follows: -
  
  &lt;?xml version="1.0" ?&gt;
  &lt;QBXML&gt;
  &lt;QBXMLMsgsRs&gt;
  &lt;DataExtDefAddRs requestID="1" statusCode="0" statusSeverity="Info" statusMessage="Status OK"&gt;
  &lt;DataExtDefRet&gt;
  &lt;OwnerID&gt;{57F3B9B6-86F1-4FCC-A2FF-266DE1813D20}&lt;/OwnerID&gt;
  &lt;DataExtName&gt;FileID&lt;/DataExtName&gt;
  &lt;DataExtType&gt;STR255TYPE&lt;/DataExtType&gt;
  &lt;AssignToObject&gt;Company&lt;/AssignToObject&gt;
  &lt;/DataExtDefRet&gt;
  &lt;/DataExtDefAddRs&gt;
  &lt;/QBXMLMsgsRs&gt;
  &lt;/QBXML&gt;
  
  
  20171005.15:16:05 UTC   : QBWebConnector.SOAPWebService.registerDataExtInQB() : Data extension definition has been created in QuickBooks for owner id.
  20171005.15:16:05 UTC   : QBWebConnector.SOAPWebService.AddToQuickBooks() : Registered FileID to company file successfully.
  20171005.15:16:05 UTC   : QBWebConnector.SOAPWebService.enterDataExtValueInQB() : XML dump follows: -
  
  &lt;?xml version="1.0"?&gt;&lt;?qbxml version="13.0"?&gt;&lt;QBXML&gt;&lt;QBXMLMsgsRq onError="stopOnError"&gt;&lt;DataExtAddRq requestID="1"&gt;&lt;DataExtAdd&gt;&lt;OwnerID&gt;{57F3B9B6-86F1-4FCC-A2FF-266DE1813D20}&lt;/OwnerID&gt;&lt;DataExtName&gt;FileID&lt;/DataExtName&gt;&lt;OtherDataExtType&gt;Company&lt;/OtherDataExtType&gt;&lt;DataExtValue&gt;{57F3B9B6-86F1-4FCC-B8FF-866DE1813D20}&lt;/DataExtValue&gt;&lt;/DataExtAdd&gt;&lt;/DataExtAddRq&gt;&lt;/QBXMLMsgsRq&gt;&lt;/QBXML&gt;
  
  20171005.15:16:05 UTC   : QBWebConnector.SOAPWebService.enterDataExtValueInQB() : XML dump follows: -
  
  &lt;?xml version="1.0" ?&gt;
  &lt;QBXML&gt;
  &lt;QBXMLMsgsRs&gt;
  &lt;DataExtAddRs requestID="1" statusCode="0" statusSeverity="Info" statusMessage="Status OK"&gt;
  &lt;DataExtRet&gt;
  &lt;OwnerID&gt;{57F3B9B6-86F1-4FCC-A2FF-266DE1813D20}&lt;/OwnerID&gt;
  &lt;DataExtName&gt;FileID&lt;/DataExtName&gt;
  &lt;DataExtType&gt;STR255TYPE&lt;/DataExtType&gt;
  &lt;DataExtValue&gt;{57F3B9B6-86F1-4FCC-B8FF-866DE1813D20}&lt;/DataExtValue&gt;
  &lt;/DataExtRet&gt;
  &lt;/DataExtAddRs&gt;
  &lt;/QBXMLMsgsRs&gt;
  &lt;/QBXML&gt;
  
  
  20171005.15:16:05 UTC   : QBWebConnector.SOAPWebService.enterDataExtValueInQB() : Data extension value has been created in QuickBooks for FileID
  20171005.15:16:05 UTC   : QBWebConnector.SOAPWebService.AddToQuickBooks() : Entered FileID value to company file successfully.
  20171005.15:16:05 UTC   : QBWebConnector.SOAPWebService.registerDataExtInQB() : Creating DataExtDef named AppLock assigned to Company object for the ownerID = {57F3B9B6-86F1-4FCC-A2FF-266DE1813D20}
  20171005.15:16:05 UTC   : QBWebConnector.SOAPWebService.registerDataExtInQB() : XML dump follows: -
  
  &lt;?xml version="1.0"?&gt;&lt;?qbxml version="13.0"?&gt;&lt;QBXML&gt;&lt;QBXMLMsgsRq onError="stopOnError"&gt;&lt;DataExtDefAddRq requestID="1"&gt;&lt;DataExtDefAdd&gt;&lt;OwnerID&gt;{57F3B9B6-86F1-4FCC-A2FF-266DE1813D20}&lt;/OwnerID&gt;&lt;DataExtName&gt;AppLock&lt;/DataExtName&gt;&lt;DataExtType&gt;STR255TYPE&lt;/DataExtType&gt;&lt;AssignToObject&gt;Company&lt;/AssignToObject&gt;&lt;/DataExtDefAdd&gt;&lt;/DataExtDefAddRq&gt;&lt;/QBXMLMsgsRq&gt;&lt;/QBXML&gt;
  
  20171005.15:16:05 UTC   : QBWebConnector.SOAPWebService.registerDataExtInQB() : XML dump follows: -
  
  &lt;?xml version="1.0" ?&gt;
  &lt;QBXML&gt;
  &lt;QBXMLMsgsRs&gt;
  &lt;DataExtDefAddRs requestID="1" statusCode="0" statusSeverity="Info" statusMessage="Status OK"&gt;
  &lt;DataExtDefRet&gt;
  &lt;OwnerID&gt;{57F3B9B6-86F1-4FCC-A2FF-266DE1813D20}&lt;/OwnerID&gt;
  &lt;DataExtName&gt;AppLock&lt;/DataExtName&gt;
  &lt;DataExtType&gt;STR255TYPE&lt;/DataExtType&gt;
  &lt;AssignToObject&gt;Company&lt;/AssignToObject&gt;
  &lt;/DataExtDefRet&gt;
  &lt;/DataExtDefAddRs&gt;
  &lt;/QBXMLMsgsRs&gt;
  &lt;/QBXML&gt;
  
  
  20171005.15:16:05 UTC   : QBWebConnector.SOAPWebService.registerDataExtInQB() : Data extension definition has been created in QuickBooks for owner id.
  20171005.15:16:05 UTC   : QBWebConnector.SOAPWebService.AddToQuickBooks() : Registered the AppLock to company file successfully.
  20171005.15:16:05 UTC   : QBWebConnector.CompanyFileLock.Send_DataExtDefAddRqXML() : XML dump follows: -
  
  &lt;?xml version="1.0"?&gt;&lt;?qbxml version="13.0"?&gt;&lt;QBXML&gt;&lt;QBXMLMsgsRq onError="stopOnError"&gt;&lt;DataExtDefAddRq requestID="1"&gt;&lt;DataExtDefAdd&gt;&lt;OwnerID&gt;{57F3B9B6-86F1-4FCC-A2FF-266DE1813D20}&lt;/OwnerID&gt;&lt;DataExtName&gt;AppLock&lt;/DataExtName&gt;&lt;DataExtType&gt;STR255TYPE&lt;/DataExtType&gt;&lt;AssignToObject&gt;Company&lt;/AssignToObject&gt;&lt;/DataExtDefAdd&gt;&lt;/DataExtDefAddRq&gt;&lt;/QBXMLMsgsRq&gt;&lt;/QBXML&gt;
  
  20171005.15:16:05 UTC   : QBWebConnector.CompanyFileLock.Send_DataExtDefAddRqXML() : XML dump follows: -
  
  &lt;?xml version="1.0" ?&gt;
  &lt;QBXML&gt;
  &lt;QBXMLMsgsRs&gt;
  &lt;DataExtDefAddRs requestID="1" statusCode="3100" statusSeverity="Error" statusMessage="The name &amp;quot;AppLock&amp;quot; of the list element is already in use." /&gt;
  &lt;/QBXMLMsgsRs&gt;
  &lt;/QBXML&gt;
  
  
  20171005.15:16:05 UTC   : QBWebConnector.CompanyFileLock.Send_DataExtAddRqXML() : XML dump follows: -
  
  &lt;?xml version="1.0"?&gt;&lt;?qbxml version="13.0"?&gt;&lt;QBXML&gt;&lt;QBXMLMsgsRq onError="stopOnError"&gt;&lt;DataExtAddRq requestID="1"&gt;&lt;DataExtAdd&gt;&lt;OwnerID&gt;{57F3B9B6-86F1-4FCC-A2FF-266DE1813D20}&lt;/OwnerID&gt;&lt;DataExtName&gt;AppLock&lt;/DataExtName&gt;&lt;OtherDataExtType&gt;Company&lt;/OtherDataExtType&gt;&lt;DataExtValue&gt;UNLOCKED:EFDB1&lt;/DataExtValue&gt;&lt;/DataExtAdd&gt;&lt;/DataExtAddRq&gt;&lt;/QBXMLMsgsRq&gt;&lt;/QBXML&gt;
  
  20171005.15:16:05 UTC   : QBWebConnector.CompanyFileLock.Send_DataExtAddRqXML() : XML dump follows: -
  
  &lt;?xml version="1.0" ?&gt;
  &lt;QBXML&gt;
  &lt;QBXMLMsgsRs&gt;
  &lt;DataExtAddRs requestID="1" statusCode="0" statusSeverity="Info" statusMessage="Status OK"&gt;
  &lt;DataExtRet&gt;
  &lt;OwnerID&gt;{57F3B9B6-86F1-4FCC-A2FF-266DE1813D20}&lt;/OwnerID&gt;
  &lt;DataExtName&gt;AppLock&lt;/DataExtName&gt;
  &lt;DataExtType&gt;STR255TYPE&lt;/DataExtType&gt;
  &lt;DataExtValue&gt;UNLOCKED:EFDB1&lt;/DataExtValue&gt;
  &lt;/DataExtRet&gt;
  &lt;/DataExtAddRs&gt;
  &lt;/QBXMLMsgsRs&gt;
  &lt;/QBXML&gt;
  
  
  20171005.15:16:05 UTC   : QBWebConnector.CompanyFileLock.initialize() : Company file has been initialized with AppLock = UNLOCKED:EFDB1 for ownerID = &lt;{57F3B9B6-86F1-4FCC-A2FF-266DE1813D20}&gt;
  20171005.15:16:05 UTC   : QBWebConnector.SOAPWebService.AddToQuickBooks() : Application Dashboard has been added to QuickBooks.
  20171005.15:16:05 UTC   : QBWebConnector.SOAPWebService.DisconnectFromQB() : Session ended and connection closed
  
  
  Log file initialized at Thursday, October 5, 2017 - 3:18 PM UTC  
  Timestamp format used: YYYYMMDD.HH:MM:SS UTC
  QBWebConnector 2.0 has been initialized with its logging status to level = VERBOSE.
  Please restart QBWebConnector for any change in log level to take effect. Use file menu to clear log.
  
  20171005.15:18:34 UTC   : QBWebConnector.RegistryManager.setUpdateLock() : HKEY_CURRENT_USER\Software\Intuit\QBWebConnector\UpdateLock has been set to False
  20171005.15:18:34 UTC   : QBWebConnector.RegistryManager.setUpdateLock() : ********************* Update session unlocked *********************
  20171005.15:18:34 UTC   :  : ~SingleInstanceHandler() - usingInstanceChannel = false. Returning without any Registry key delete or unmarshalling.
  20171005.15:25:53 UTC   : UpdateThisScheduledApp() : Password management - Started
  20171005.15:25:53 UTC   : UpdateThisScheduledApp() : QBWC1030: Password is not available for application named 'Dashboard'. Please set password for this application.
  20171005.15:25:53 UTC   : UpdateThisScheduledApp() : Password management - Ended
  </code></pre>
  
  <p>quickbooks_Log table:</p>
  
  <pre><code>Handler is starting up...: Array (     [qb_company_file] =&gt;      [qbwc_min_version] =&gt;      [qbwc_wait_before_next_update] =&gt;      [qbwc_min_run_every_n_seconds] =&gt;      [qbwc_version_warning_message] =&gt;      [qbwc_version_error_message] =&gt;      [qbwc_interactive_url] =&gt;      [autoadd_missing_requestid] =&gt; 1     [check_valid_requestid] =&gt; 1     [server_version] =&gt; PHP QuickBooks SOAP Server v3.0 at /qb-php-master/web_connector_test.php     [authenticate] =&gt;      [authenticate_dsn] =&gt;      [map_application_identifiers] =&gt; 1     [allow_remote_addr] =&gt; Array         (         )      [deny_remote_addr] =&gt; Array         (         )      [convert_unix_newlines] =&gt; 1     [deny_concurrent_logins] =&gt; 1     [deny_concurrent_timeout] =&gt; 60     [deny_reallyfast_logins] =&gt; 1     [deny_reallyfast_timeout] =&gt; 600     [masking] =&gt; 1 ) 
  </code></pre>
  
  <p>quickbooks_queue table:</p>
  
  <pre><code>+---------------------+----------------------+-------------+-------------+-------+-------+-------+----------+-----------+------+---------------------+------------------+
  | quickbooks_queue_id | quickbooks_ticket_id | qb_username | qb_action   | ident | extra | qbxml | priority | qb_status | msg  | enqueue_datetime    | dequeue_datetime |
  +---------------------+----------------------+-------------+-------------+-------+-------+-------+----------+-----------+------+---------------------+------------------+
  |                   4 |                 NULL | quickbooks  | CustomerAdd | 5     |       |       |        0 | q         | NULL | 2017-10-04 23:23:53 | NULL             |
  |                   7 |                 NULL | quickbooks  | CustomerAdd | 50005 |       |       |        0 | q         | NULL | 2017-10-05 10:27:48 | NULL             |
  +---------------------+----------------------+-------------+-------------+-------+-------+-------+----------+-----------+------+---------------------+------------------+
  </code></pre>
  
  <p><strong>QBWClog addition after entering password:</strong></p>
  
  <pre><code>20171005.23:51:25 UTC   : QBWebConnector.SOAPWebService.instantiateWebService() : Initiated connection to the following application.
  20171005.23:51:25 UTC   : QBWebConnector.SOAPWebService.instantiateWebService() : AppName: Dashboard
  20171005.23:51:25 UTC   : QBWebConnector.SOAPWebService.instantiateWebService() : AppUniqueName (if available): Dashboard
  20171005.23:51:25 UTC   : QBWebConnector.SOAPWebService.instantiateWebService() : AppURL: [removed]/qb-php-master/web_connector_test.php
  20171005.23:51:25 UTC   : QBWebConnector.SOAPWebService.do_serverVersion() : *** Calling serverVersion().
  20171005.23:51:25 UTC   : QBWebConnector.SOAPWebService.do_serverVersion() : Actual error received from web service for serverVersion call: &lt;Response is not well-formed XML.&gt;. For backward compatibility of all webservers, QBWC will catch all errors under app-not-supporting-serverVersion.
  20171005.23:51:25 UTC   : QBWebConnector.SOAPWebService.do_serverVersion() : This application does not contain support for serverVersion. Allowing update operation for backward compatibility.
  20171005.23:51:25 UTC   : QBWebConnector.SOAPWebService.do_clientVersion() : *** Calling clientVersion() with following parameter:&lt;productVersion="2.1.0.30"&gt;
  20171005.23:51:25 UTC   : QBWebConnector.SOAPWebService.updateWS() : Actual error received from web service for clientVersion call: &lt;Response is not well-formed XML.&gt;. For backward compatibility of all webservers, QBWC will catch all errors under app-not-supporting-clientVersion.
  20171005.23:51:25 UTC   : QBWebConnector.SOAPWebService.do_clientVersion() : This application does not contain support for clientVersion. Allowing update operation for backward compatibility.
  20171005.23:51:25 UTC   : QBWebConnector.SOAPWebService.do_authenticate() : Authenticating to application 'Dashboard', username = 'quickbooks'
  20171005.23:51:25 UTC   : QBWebConnector.SOAPWebService.do_authenticate() : *** Calling authenticate() with following parameters:&lt;userName="quickbooks"&gt;&lt;password=&lt;MaskedForSecurity&gt;
  20171005.23:51:26 UTC   : QBWebConnector.SOAPWebService.do_authenticate() : QBWC1012: Authentication failed due to following error message.
  Response is not well-formed XML.
  More info:
  StackTrace =    at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
     at QBWebConnector.localhost.WCWebServiceDoc.authenticate(String strUserName, String strPassword)
     at QBWebConnector.localhost.WCWebService.authenticate(String strUserName, String strPassword)
     at QBWebConnector.SOAPWebService.authenticate(String UserName, String Password)
     at QBWebConnector.WebService.do_authenticate(String&amp; ticket, String&amp; companyFileName)
  Source = System.Web.Services
  </code></pre>