How can I fully remove a widget that has an AnyKey event consuming input?

So I think there may be a bug, but I may just be doing something wrong.

I’m creating a widget in the player controller, adding it to viewport, then using an AnyKey event inside the widget to get a player input, then closing the widget. But if I have consume input checked on the event, it never stops consuming, and without it checked the player continues to be able to move when the widget is up.

No matter how I try to remove the widget, it never stops consuming the input. I’ve tried every combination of remove from parent, remove all widgets, collect garbage, gameplay modes, and pause that I can think of. Both in the player controller and in the widget itself. In testing, I found that even just creating a widget with an input consuming AnyKey event with no other nodes and not even adding it to viewport still locks everything forever.

What am I doing wrong here? Am I supposed to somehow consume input at widget level and not event level and somehow that will help? It doesn’t seem likely, since regardless, it’s clear that the widget isn’t actually being removed anyway.

Any ideas?
Thanks in advance!

Edit: I think it might be related to the way the default camera fly mode is set up. It stops that from working, but I think I can still access the advanced input mapping events. I guess I just have to make my own spectator style camera controls.