Using escapeShellArg does not make sense here because (a) it turned the list into a string, so the entire service failed and (b) because systemd does not use the same escaping mechanism as bash.