SOLVED. Problem:
Rails 6.1 deprecates this:
errors[:base] << "Assignment #{active_assignment.id} is already active for this agent and this project")
And says to call add, so I did:
errors.add("Assignment #{active_assignment.id} is already active for this agent and this project")
Which "worked" after turning on AD exceptions because the Rails test process would invoke that string as a method and blow up on the default exception setting.
Apparently the API is actually maybe this?
errors.add(:base, "Assignment #{active_assignment.id} is already active for this agent and this project")