Losgstash error starting with Expected one of #, {, ,, ] at line XX

Yes, you can use

    mutate { remove_tag => "_grokparsefailure" }

If that is the only tag on the event that leaves tags as an empty array. You can remove that using this.

I notice that in your original grok filter you tried to do remove_tag => "_grokparsefailure". That does not work the way you want. "Decoration" of events, which implements the common options like remove_tag, only occurs if the filter succeeds. So it would only remove the _grokparsefailure if it had not been added.