All logic besides len() should be done in the Query blocks, not in the mutation one.
e.g.
votingOpen(func: uid(votingOpen)) @filter(eq(val(Poll.votingOpen), true){
VO as uid
}
mutation @if(eq(len(existingVotes), 0) AND eq(len(VO), 1))
All logic besides len() should be done in the Query blocks, not in the mutation one.
e.g.
votingOpen(func: uid(votingOpen)) @filter(eq(val(Poll.votingOpen), true){
VO as uid
}
mutation @if(eq(len(existingVotes), 0) AND eq(len(VO), 1))