It is possible to initialise the client library in a way that means the clientId is not known in the constructor; instead, it only becomes known when either an authURL/authCallback supplies a TokenDetails that indicates the clientId or at a later time after connection (via the clientId returned in the ConnectionDetails).
This means that it is possible that push activation occurs before the clientId is known, and the local device registration therefore does not include the clientId.
It looks like there are two issues:
-
https://docs.ably.io/client-lib-development-guide/features/#RSA7b2 is not implemented: this means that late initialisation of a clientId is deferred until a connection is established, whereas it should be set if auth details - TokenDetails or TokenRequest - contain a clientId;
-
in Auth.setClientId(), any LocalDevice does not have its clientId updated, and there is no subsequent registration update.
It is possible to initialise the client library in a way that means the
clientIdis not known in the constructor; instead, it only becomes known when either anauthURL/authCallbacksupplies aTokenDetailsthat indicates theclientIdor at a later time after connection (via theclientIdreturned in theConnectionDetails).This means that it is possible that push activation occurs before the
clientIdis known, and the local device registration therefore does not include theclientId.It looks like there are two issues:
https://docs.ably.io/client-lib-development-guide/features/#RSA7b2 is not implemented: this means that late initialisation of a
clientIdis deferred until a connection is established, whereas it should be set if auth details -TokenDetailsorTokenRequest- contain aclientId;in
Auth.setClientId(), anyLocalDevicedoes not have itsclientIdupdated, and there is no subsequent registration update.