The script does not work (there is no error either)

the problem is with line 44. it does not allow the script to work further. how do I fix this?

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local lobby = game.Workspace.Spawn
local maps = ReplicatedStorage.Maps:GetChildren()
local status = ReplicatedStorage.Status
local duelteam = game.Teams.Duelists
local lobbyteam = game.Teams.Lobby
while true do
	local players = Players:GetPlayers()
	players.Team = lobbyteam
	if #players >= 2 then
		for i = 5, 0, -1 do
			status.Value = "Intermission:" .. i
			wait(1)
		end
		local chosenmap = maps[math.random(1, #maps)]
		local clonemap = chosenmap:Clone()
		clonemap.Parent = workspace
		status.Value = "Map:" .. clonemap.Name
		wait(2.5)
		local chosenplayer1 = players[math.random(1, #players)]
		local chosenplayer2 = nil
		repeat
			wait()
			chosenplayer2 = players[math.random(1, #players)]
		until chosenplayer2 ~= chosenplayer1
		chosenplayer1.Character:SetPrimaryPartCFrame(clonemap.Teleport1.CFrame)
		chosenplayer2.Character:SetPrimaryPartCFrame(clonemap.Teleport2.CFrame)
		for i = 10, 0, -1 do
			chosenplayer1.Team = duelteam
			chosenplayer2.Team = duelteam
			status.Value = "Liquidation:" .. i
			local playing = {}
			for i,v in pairs(chosenplayer1:GetChildren()) do
				if chosenplayer1.Team.Name == "Duelists" then
					table.insert(playing, chosenplayer1.Name)
				end
			end
			for i, v in pairs(chosenplayer2:GetChildren()) do
				if chosenplayer2.Team.Name == "Duelists" then
					table.insert(playing, chosenplayer2.Name)
				end	
			end
			chosenplayer1:WaitForChild("Humanoid").Died:Connect(function()
				chosenplayer1.Team = lobbyteam
			end)
			chosenplayer2:WaitForChild("Humanoid").Died:Connect(function()
				chosenplayer2.Team = lobbyteam
			end)
			if #playing == 0 then
				status.Value = "The duelists died"
				chosenplayer1.Team = lobbyteam
				chosenplayer2.Team = lobbyteam
				wait(3)
				break
			end
			if #playing == 1 then
				status.Value = playing[1].Name.."Has WON!"
				chosenplayer1.Team = lobbyteam
				chosenplayer2.Team = lobbyteam
				wait(3)
				break
			end
			wait(1)
			if i == 0 then
				local sound = game.ReplicatedStorage["kid fav blinker"]
				sound:Play()
				wait(0.7)
				chosenplayer1.Character.Humanoid.Health = 0
				chosenplayer2.Character.Humanoid.Health = 0
				status.Value = "Explosive draw!"
				chosenplayer1.Team = lobbyteam
				chosenplayer2.Team = lobbyteam
				wait(3)
			end
		end
		clonemap:Destroy()
		chosenplayer1.Character:SetPrimaryPartCFrame(lobby.Tp1.CFrame)
		chosenplayer2.Character:SetPrimaryPartCFrame(lobby.Tp2.CFrame)
	else
		status.Value = "You're unlikely to play alone."
		wait(0.5) 
		status.Value = "You're unlikely to play alone.."
		wait(0.5)
		status.Value = "You're unlikely to play alone..."
		wait(0.5)
	end
end
chosenplayer1:WaitForChild("Humanoid").Died:Connect(function()
				chosenplayer1.Team = lobbyteam
			end)
			chosenplayer2:WaitForChild("Humanoid").Died:Connect(function()
				chosenplayer2.Team = lobbyteam
			end)

here is a video with the problem itself

Try using :FindFirstChild() Instead of WaitForChild()

– Edit: Just realised its the player and not the character, Mb.

Example:
— CHANGED –
chosenplayer1.Character:FindFirstChild(“Humanoid”).Died:Connect(function()
chosenplayer1.Team = lobbyteam
end)

chosenplayer1.Character:WaitForChild("Humanoid").Died:Connect(function()

Make sure it is chosenplayer.Character