A much simpler way to do it is to have a server switch to enable
new features.
It is less flexible, of course, because you can't have old and new
clients, but do you really want to have old and new clients?

I do agree with Kostya, I think it's a good compromise. In my humble opinion, the extended error feature in its current state is not worth the complexity and overhead it adds. Instead, why not introduce a Tarantool setting to choose whether you want to deal with a legacy or extended error response type (and it's very unlikely that someone will need to have 2 types at the same time). By default this setting will be set to use the legacy mode, then after N minor 2.x releases, it can be changed to use the new error type, the setting itself will be marked as deprecated and removed in the next major release. From a connector's point of view, it will also be easy to check if there are any additional fields in the response body, which would mean that the connector has received a "new" error.

--
Thank you and best regards,
Eugene Leonovich