Solve Turn Assign

I am doing a proyect of a game in javascript native with node.js and express and I have a question, I have done the code but sometimes work and others not becuase there seems to be an issue with the socket.id but I don’t understand how to fix it.

Client

if (!turnEmitted) {
    socket.emit('turn', { gameID: gameID });
    localStorage.setItem(`turnEmitted_${gameID}`, 'true');
}

socket.on('getCurrentPlayer', (currentPlayer) => {
    console.log(currentPlayer)
    console.log(socket.id)
    currentPlayerFront = currentPlayer.name;
    localStorage.setItem('currentPlayer', currentPlayerFront);
    if (currentPlayer.id === socket.id) {
        socket.emit('sendCurrentPlayer', {player: currentPlayerFront, gameID: gameID})
        questionsZone.style.pointerEvents = 'auto';
        diceButton.disabled = false;
    }
});

socket.on('sendCurrentPlayer', (currentPlayer) => {
    playerTurn(currentPlayer)
})

Server

socket.on('turn', async (data) => {
        const game = await Game.findOne({ gameID: data.gameID })
        if (game && game.start) {
            if (game.players.length != 0) {
                game.turn = Math.floor(Math.random() * game.players.length)
                await game.save()
                console.log('turno: ' , game.turn)
                let currentPlayer = {id: socket.id, name: game.players[game.turn].name}
                console.log('Es el turno de:', currentPlayer.name);
                io.emit('getCurrentPlayer', currentPlayer)
            }
        }
    })

socket.on('sendCurrentPlayer', (data) => {
      io.emit('sendCurrentPlayer', data.player)
})

The turn system works as expected