-
Notifications
You must be signed in to change notification settings - Fork 7
Description
Description
When the latest RollCall is re-opened, FE2 client considers the user to have no available token anymore, until the RollCall is closed again. This means we cannot send Chirps, use DigitalCash or see our Token in Tokens tab, until this RC is closed again?
Expected behavior
If we received a Token from a finished RollCall, this Token should remain valid even if the RC re-opens afterwards.
How to reproduce
- Create a LAO, Join it with another device, create a
RollCall, Scan your second device and close theRollCall - Use the second device and see that the token is valid (send chirps, check
Tokenstab) - On first device (organizer), re-open the
RollCall - See, for example, error toast in
Chirpsfeed, and the fact that you cannot sendChirpsanymore.
Front-ends:
- Fe1-Web (please include browser's names & version)
- Fe2-Android (please specify if phone or emulation, and Android version)
- Not applicable
Back-ends:
- Be1-Go
- Be2-Scala
- Not applicable
Impact
Large user experience and availability impact. If a RollCall is re-opened, you are denied of your actions as a fair user that participated in a RollCall
Possible root cause
Lines 252 to 253 in e47fa9a
| val validToken: PoPToken | |
| get() = keyManager.getValidPoPToken(laoId!!, rollCallRepo.getLastClosedRollCall(laoId!!)) |
All fragments/viewmodels are retrieving
PoP Token this way. Maybe investigate why getLastClosedRollCall() function does not take into account a previously closed but re-opened RollCall.
A very quick check shows that it only returns roll calls which state is CLOSED. This statement is not sufficient to infer the presence of a valid PoP Token, as described in this Issue.