Hi - i've been experimenting with Colyseus for a while, but when I have three tabs open, and close one, and then reopen it and rejoin, the other tabs are claiming that the SessionId is undefined. Is there something wrong with my code? I tried setting a property on the state called uuid which is basically the sessionid, but it still didn't work. Players is an empty array.

Add player function (im using paperjs):

function addPlayer(nickname,position,color,uid) {
    console.log("player added as",uid)
    var circle = new Path.Circle(position,20)
    circle.fillColor = color
    console.log(nickname + " has joined the server")
    players[uid] = {
        circle: circle,
        nickname: nickname
    }
    console.log(players[uid])
} 

State watching function thing:

    addlog("joined succesfully!")
    console.log(room)
    room.onMessage(function(msg) {
        addlog(msg)
    })
    room.state.players.onChange = function(plr,sesh) {
        // it exists and it's not us
        if(players[plr.uuid] && plr.uuid != room.sessionId && plr.uuid) {
            // players[sesh].circle.position.x = plr.x
            // players[sesh].circle.position.y = plr.y
            var thepoint = new Point(plr.x,plr.y)
            var tween = players[plr.uuid].circle.tweenTo(
                { position: thepoint},
                { duration: 100, start: false, easing: "linear"}
            );
            tween.start();
            console.log("started tween for",players[plr.uuid].nickname)
        }else{
            console.log("errorrorr")
            console.log(players[plr.uuid], room.sessionId, sesh)
        }
    }
    room.state.players.onAdd = function(plr,session) {
        if(plr.uuid == undefined) {
            alert("sessionid undefined")
        }
        console.log("user is being added!")
        if(plr.uuid != room.sessionId) {
            addPlayer(plr.nickname,new Point(plr.x,plr.y),plr.color,plr.uuid)
            console.log(plr,plr.uuid)
            addlog(players[plr.uuid].nickname + " joined!")
        }
    }
    room.state.players.onRemove = function(plr,session) {
        console.log("user is being removed!")
        if(players[plr.uuid] && plr.uuid) {
            players[plr.uuid].circle.remove()
            addlog(players[plr.uuid].nickname + " left.")
            players[plr.uuid] = undefined
        }
    }

I'm really confused about why this is happening... any ideas?