python-ddp icon indicating copy to clipboard operation
python-ddp copied to clipboard

Fails when tokenExpires date is null

Open the6thBook opened this issue 2 years ago • 0 comments

On login, if tokenExpires is null DDPClient produces a TypeError and doesn't execute the callback

{"msg":"result","id":"1","result":{"id":"SOME-ID","token":"SOME-TOKEN","tokenExpires":{"$date":null},"type":"resume"}} Exception in thread <<<{"msg": "connect", "version": "1", "support": ["1", "pre2", "pre1"], "session": "qfNH8MtjGqqhkG5qs"}

WebSocketClient: Traceback (most recent call last): File "/var/lang/lib/python3.9/threading.py", line 980, in _bootstrap_inner

{"server_id":"0"} {"msg":"connected","session":"SOME=SESSION"}

  • RECONNECTED self.run() File "/var/lang/lib/python3.9/threading.py", line 917, in run self._target(*self._args, **self._kwargs) File "/opt/python/ws4py/websocket.py", line 528, in run if not self.once(): File "/opt/python/DDPClient.py", line 53, in once return super(DDPSocket, self).once() File "/opt/python/ws4py/websocket.py", line 410, in once if not self.process(self.buf[:requested]): File "/opt/python/ws4py/websocket.py", line 480, in process self.received_message(s.message) File "/opt/python/DDPClient.py", line 41, in received_message self.emit('received_message', data) File "/opt/python/pyee/base.py", line 176, in emit handled = self._call_handlers(event, args, kwargs) File "/opt/python/pyee/base.py", line 154, in _call_handlers self._emit_run(f, args, kwargs) File "/opt/python/pyee/base.py", line 130, in _emit_run f(*args, **kwargs) File "/opt/python/DDPClient.py", line 162, in received_message data = ejson.loads(str(data)) File "/opt/python/ejson/init.py", line 132, in loads return json.loads(obj, *args, cls=kwargs.pop('cls', EJSONDecoder), **kwargs) File "/var/lang/lib/python3.9/json/init.py", line 359, in loads return cls(**kw).decode(s) File "/opt/python/ejson/init.py", line 126, in decode return self._decode(o) File "/opt/python/ejson/init.py", line 117, in _decode return {k: self._decode(v) for k, v in o.items()} File "/opt/python/ejson/init.py", line 117, in return {k: self._decode(v) for k, v in o.items()} File "/opt/python/ejson/init.py", line 117, in _decode return {k: self._decode(v) for k, v in o.items()} File "/opt/python/ejson/init.py", line 117, in return {k: self._decode(v) for k, v in o.items()} File "/opt/python/ejson/init.py", line 104, in _decode return datetime.fromtimestamp(o["$date"] / 1000.0, timezone.utc) TypeError: unsupported operand type(s) for /: 'NoneType' and 'float'

the6thBook avatar Jul 14 '22 21:07 the6thBook