# 'Unknown index type for Index' errors with record-layer examples code. (maven)

**URL:** <https://forums.foundationdb.org/t/unknown-index-type-for-index-errors-with-record-layer-examples-code-maven/3134>\
**Category:** Using Layers\
**Created:** [January 22, 2022, 4:41am UTC](https://forums.foundationdb.org/t/unknown-index-type-for-index-errors-with-record-layer-examples-code-maven/3134 "2022-01-22T04:41:43Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![transfitted](https://avatars.discourse-cdn.com/v4/letter/t/9dc877/32.png) [@transfitted](https://forums.foundationdb.org/u/transfitted)\
**Post date:** [January 22, 2022, 4:41am UTC](https://forums.foundationdb.org/t/unknown-index-type-for-index-errors-with-record-layer-examples-code-maven/3134/1 "2022-01-22T04:41:43Z")

</div>

I have been scratching my head here trying to figure out what the problem is for quite a long time now, any kind of help would be amazing.

I’ve been trying to setup the [examples](https://github.com/FoundationDB/fdb-record-layer/tree/main/examples) code on the public repo using maven instead of gradle, and for some reason anything to do with secondary indexes always throws an exception.

```auto
com.apple.foundationdb.record.metadata.MetaDataException: Unknown index type for Index {'Customer$phone_number'}#2
        at com.apple.foundationdb.record.provider.foundationdb.IndexMaintainerRegistryImpl.getIndexValidator(IndexMaintainerRegistryImpl.java:81) ~
        at com.apple.foundationdb.record.metadata.MetaDataValidator.validateIndex(MetaDataValidator.java:118) ~
        at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
        at com.apple.foundationdb.record.metadata.MetaDataValidator.validateCurrentAndFormerIndexes(MetaDataValidator.java:104)
        at com.apple.foundationdb.record.metadata.MetaDataValidator.validate(MetaDataValidator.java:65) ~
        at com.apple.foundationdb.record.RecordMetaDataBuilder.build(RecordMetaDataBuilder.java:1395) ~
        at com.apple.foundationdb.record.RecordMetaDataBuilder.build(RecordMetaDataBuilder.java:1348) ~
        at com.apple.foundationdb.record.RecordMetaDataBuilder.getRecordMetaData(RecordMetaDataBuilder.java:1337) ~
        at com.apple.foundationdb.record.RecordMetaData.build(RecordMetaData.java:487) ~

```

Commenting out the secondary in-line single field indexes on protobuf allows the rest of the example code to run fine (reading/writing to the db + logging these changes), until new indexes are added and rebuilt - at that point the program crashes again.

```auto
com.apple.foundationdb.record.metadata.MetaDataException: Unknown index type for Index {'email_address'}#2
        at com.apple.foundationdb.record.provider.foundationdb.IndexMaintainerRegistryImpl.getIndexValidator(IndexMaintainerRegistryImpl.java:81) ~
        at com.apple.foundationdb.record.metadata.MetaDataValidator.validateIndex(MetaDataValidator.java:118) ~
        at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
        at com.apple.foundationdb.record.metadata.MetaDataValidator.validateCurrentAndFormerIndexes(MetaDataValidator.java:104) ~
        at com.apple.foundationdb.record.metadata.MetaDataValidator.validate(MetaDataValidator.java:65) ~
        at com.apple.foundationdb.record.RecordMetaDataBuilder.build(RecordMetaDataBuilder.java:1395) ~
        at com.apple.foundationdb.record.RecordMetaDataBuilder.build(RecordMetaDataBuilder.java:1348) ~
        at com.apple.foundationdb.record.RecordMetaDataBuilder.getRecordMetaData(RecordMetaDataBuilder.java:1337) ~

```

Maven dependencies:

```auto
        <dependency>
            <groupId>org.foundationdb</groupId>
            <artifactId>fdb-java</artifactId>
            <version>6.3.23</version>
        </dependency>
        <dependency>
            <groupId>org.foundationdb</groupId>
            <artifactId>fdb-record-layer-core-pb3</artifactId>
            <version>3.1.228.0</version>
        </dependency>
        <dependency>
            <groupId>com.google.protobuf</groupId>
            <artifactId>protobuf-java</artifactId>
            <version>3.19.3</version>
        </dependency>

```

Maven repositories:

```auto
        <repository>
            <id>fdb-record-layer</id>
            <url>https://ossartifacts.jfrog.io/artifactory/fdb-record-layer/</url>
        </repository>

```

Maven plugins:

```auto
            <plugin>
                <groupId>com.github.os72</groupId>
                <artifactId>protoc-jar-maven-plugin</artifactId>
                <version>3.11.4</version>
                <executions>
                    <execution>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <protocArtifact>com.google.protobuf:protoc:3.6.1</protocArtifact>
                            <addProtoSources>all</addProtoSources>
                            <includeMavenTypes>direct</includeMavenTypes>
                            <inputDirectories>
                                <include>src/main/protobuf</include>
                            </inputDirectories>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

```

Building metadata with build(false) to skip validations results in a segfault.

Any help will be much appreciated, thanks.
