Currently if you add a field in the fields parameter with a wildcard, no fields will be added to the hits layer. The situation is even worst if the wildcard matches the field name of the geo_point or geo_shape field, in that case a ClassCastException is thrown.
x-pack/plugin/vector-tile/src/main/java/org/elasticsearch/xpack/vectortile/rest/RestVectorTileAction.java
return hitsLayerBuilder;
    }
    private static VectorTile.Tile.Layer.Builder buildAggsLayer(
        InternalGeoGrid<?> grid,
        VectorTileRequest request,
        FeatureFactory featureFactory
    ) throws IOException {
        final VectorTile.Tile.Layer.Builder aggLayerBuilder = VectorTileUtils.createLayerBuilder(AGGS_LAYER, request.getExtent());
        final MvtLayerProps layerProps = new MvtLayerProps();
        final VectorTile.Tile.Feature.Builder featureBuilder = VectorTile.Tile.Feature.newBuilder();
        for (InternalGeoGridBucket bucket : grid.getBuckets()) {
            featureBuilder.clear();
            final String bucketKey = bucket.getKeyAsString();
            
            final byte[] feature = request.getGridType().toFeature(request.getGridAgg(), bucket, bucketKey, featureFactory);
            if (feature != null) {
                featureBuilder.mergeFrom(feature);
            } else {
                
                assert request.getGridAgg() == GridAggregation.GEOHEX;
                continue;
            }
            
            VectorTileUtils.addPropertyToFeature(featureBuilder, layerProps, KEY_TAG, bucketKey);
            
            VectorTileUtils.addPropertyToFeature(featureBuilder, layerProps, COUNT_TAG, bucket.getDocCount());
            for (Aggregation aggregation : bucket.getAggregations()) {
                if (aggregation.getName().startsWith(INTERNAL_AGG_PREFIX) == false) {
                    VectorTileUtils.addToXContentToFeature(featureBuilder, layerProps, aggregation);
                }