apache/druid · error · ParseException

No file descriptors found in the descriptor set

Error message

No file descriptors found in the descriptor set

What it means

Content validation in InlineDescriptorProtobufBytesDecoder.loadFileDescriptorSet: the base64-decoded descriptor string parsed to a FileDescriptorSet with zero file descriptors, so the inline descriptor defines no message schema and decoding cannot proceed.

Solutions

  1. Regenerate the base64 descriptor from a .proto with message definitions (protoc --descriptor_set_out, then base64 the output).
  2. Verify the full base64 string was copied into the spec without truncation.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at extensions-core/protobuf-extensions/src/main/java/org/apache/druid/data/input/protobuf/InlineDescriptorProtobufBytesDecoder.java:65 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of apache/druid@9b90983fd2 (2026-09-07). Data as JSON: /api/errors/b762e9b8339f5ca2. Report an issue: GitHub.

Appendix: source

Thrown at extensions-core/protobuf-extensions/src/main/java/org/apache/druid/data/input/protobuf/InlineDescriptorProtobufBytesDecoder.java:65

    initializeDescriptor();
  }

  @JsonProperty
  public String getDescriptorString()
  {
    return descriptorString;
  }

  @Override
  protected DescriptorProtos.FileDescriptorSet loadFileDescriptorSet()
  {
    try {
      byte[] decodedDesc = StringUtils.decodeBase64String(descriptorString);

      final var descriptorSet = DescriptorProtos.FileDescriptorSet.parseFrom(decodedDesc);
      if (descriptorSet.getFileCount() == 0) {
        throw new ParseException(null, "No file descriptors found in the descriptor set");
      }

      return descriptorSet;
    }
    catch (IllegalArgumentException e) {
      throw new IAE("Descriptor string does not have valid Base64 encoding");
    }
    catch (IOException e) {
      throw new ParseException(descriptorString, e, "Failed to initialize descriptor");
    }
  }

  @Override
  public boolean equals(Object o)
  {
    if (this == o) {
      return true;
    }

View on GitHub (pinned to 9b90983fd2)