I don't think we need to handle every reason code like that. It's pretty hard (impossible?) for a user to cause that error normally so I think an InternalError is probably acceptable? It's not pretty but you can test specific error codes like that by jamming an error on the stack before doing some other erroneous operation.