We see this error because the vocabulary used on +adminteammerge only includes valid teams, but the validate() method of AdminTeamMergeView ignores that fact and assumes data['dupe_person'] will always exist (not true when the dupe team is not considered valid; either unclaimed, private or already merged).
If we just changed the validate() method to do nothing when 'dupe_person' is not in data, we'd get a (probably meaningless) error message rather than an OOPS.
The correct fix, though, would be to write a new vocabulary including private and unclaimed teams, to be used on this page.
We see this error because the vocabulary used on +adminteammerge only includes valid teams, but the validate() method of AdminTeamMergeView ignores that fact and assumes data['dupe_person'] will always exist (not true when the dupe team is not considered valid; either unclaimed, private or already merged).
If we just changed the validate() method to do nothing when 'dupe_person' is not in data, we'd get a (probably meaningless) error message rather than an OOPS.
The correct fix, though, would be to write a new vocabulary including private and unclaimed teams, to be used on this page.