SqlStreamInput/Output use TransportVersion from a read-in Version constant. We need to remove the useage of `transportVersion` field
x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/session/Cursors.java
return WRITEABLE_REGISTRY.getReaders(categoryClass);
                }
            }
            @Override
            public <T> Writeable.Reader<? extends T> getReader(Class<T> categoryClass, String name) {
                try {
                    return writeableRegistry.getReader(categoryClass, name);
                } catch (IllegalArgumentException iae) {
                    return WRITEABLE_REGISTRY.getReader(categoryClass, name);
                }
            }
        });
    }
    private static Tuple<Cursor, ZoneId> internalDecodeFromStringWithZone(String base64, NamedWriteableRegistry writeableRegistry) {
        if (base64.isEmpty()) {
            return new Tuple<>(Cursor.EMPTY, null);
        }
        try (SqlStreamInput in = SqlStreamInput.fromString(base64, writeableRegistry, VERSION)) {
            if (in.readOptionalWriteable(BasicFormatter::new) == null) {
                Cursor cursor = in.readNamedWriteable(Cursor.class);
                return new Tuple<>(cursor, in.zoneId());
            } else {
                return internalDecodeFromStringWithZone(in.readString(), writeableRegistry);
            }
        } catch (IOException ex) {
            throw new SqlIllegalArgumentException("Unexpected failure reading cursor", ex);
        }
    }
}