You are expected to type a character (which names the register) at the prompt
Copy rectangle to register:. When you just hit
RET that provides the event
return for the register name, and that is rejected.
Type, for example,
a, and your problem should be solved. IOW, this is pilot error combined with a UI that is not sufficiently clear.
The relevant code, which reads an input event and tries to interpret it as a character, is
register.el. This is the test that leads to the error message:
(if (characterp last-input-event)
(error "Non-character input-event"))
nil for event
(setq foo (read-event))
Hit the "Enter" key. That binds
(characterp foo) ;; Returns nil.