To replicate this create two boards/lists and add 3 cards in the first list and one in the second list. Next set the middle card to 'archive'. Then Login as another user in another window or browser.
On the new screen/browser move the card from the second list to the first list. (you note it moves on both screens via websockets) - then again on the second screen/browser move the card back to the second list. You'll note that on the websockets screen it will move the card but not remove it from the other list.
I believe this is because the archived items are in the array but not visible - when you are moving cards around it uses the index to add/delete (move) the card but the index will be wrong.
You can check the index count when moving a card by putting a breakpoint in the newMove function in board.ts. carteIndex will be one or more off the correct value.
Example:

To replicate this create two boards/lists and add 3 cards in the first list and one in the second list. Next set the middle card to 'archive'. Then Login as another user in another window or browser.
On the new screen/browser move the card from the second list to the first list. (you note it moves on both screens via websockets) - then again on the second screen/browser move the card back to the second list. You'll note that on the websockets screen it will move the card but not remove it from the other list.
I believe this is because the archived items are in the array but not visible - when you are moving cards around it uses the index to add/delete (move) the card but the index will be wrong.
You can check the index count when moving a card by putting a breakpoint in the newMove function in board.ts. carteIndex will be one or more off the correct value.
Example:
