ibm mobilefirst - IBM Worklight 6.0 - "Received bad token from client" error occurs frequently -


i have worklight application http adapter connects application in order retrieve data displayed on mobile device (testing android 4.0.4 @ moment).

when application starts, invoke 3 procedures http adapter , display results 3 procedures.

when run application in browser , preview common, works fine.
the problem occurs when run application on actual phone. of time 1 or 2 of procedure calls fail , data not display, seems 1 of them (the first one) seems work. on rare occasion 3 procedure calls retrieve data, unable consistently reproduce scenario.

when procedure fails, receive error in worklight development server console:

[error ] fwlse4007e: received bad token client. server token:'null', client token:'b3fuqgdid2701hu855n89pldpk'. [project trunk]

sometimes, receive error instead, less common:

[error ] fwlse0203e: received bad instance id client. server instance id:'3f9eveddc7br5mq3ll0nq89miu', client instance id:'ut5m5f01i3bkq5l78m54uq137o'. [project trunk]

the application attempts wl.client.invokeprocedure procedures, , when invoke succeeds, onsuccess function runs, when other procedures fail load data, onfailure function never occurs.

my adapter looks this:

<displayname>adapter</displayname> <description>adapter</description> <connectivity>     <connectionpolicy xsi:type="http:httpconnectionpolicytype">         <protocol>http</protocol>         <domain>10.50.22.161</domain>         <port>9000</port>        </connectionpolicy>     <loadconstraints maxconcurrentconnectionspernode="5"/> </connectivity>  <procedure name="getprocesses" securitytest="securitytest" /> <procedure name="gettasks" securitytest="securitytest" /> <procedure name="metricslist" securitytest="securitytest" /> <procedure name="getmetric" securitytest="securitytest" /> <procedure name="getallhashtags" securitytest="securitytest" /> <procedure name="getmessages" securitytest="securitytest" /> <procedure name="getmentions" securitytest="securitytest" /> <procedure name="getconversations" securitytest="securitytest" /> <procedure name="getservertime" securitytest="securitytest" /> 

when remove securitytests procedures, error seems occur less frequently, still occurs.

what problem here? or how can debug worklight server in order determine cause?

i using eclipse worklight plug-in version 6.0.0.20130701-1413.

this sounds similar race condition defect identified not long ago.

several possible workarounds:

  1. make sure wl.client.connect before invoke adapter procedures
  2. allow delay after application launches , invoke adapter procedures
  3. you can try adding javascript:

    wl_nodeviceprovisioningchallengehandler.handlefailure = function() {     wl.client.connect(); }; 
  4. same 3 above, wl.client.reloadapp()

question: in initoptions.js, have set connectonstartup "true" or "false"?


Comments