apache/druid · error · ParseException
Protobuf message type
Error message
Protobuf message type [%s] not found in the descriptor set. Available types: %s
What it means
Schema lookup failure in DescriptorBasedProtobufBytesDecoder.buildMessageDescriptor: the configured protoMessageType was not found in any file descriptor of the set; the error lists all available message types to help correct the configuration.
Solutions
- Set protoMessageType to one of the types listed in the error message.
- Remove protoMessageType to auto-select the first message type in the set.
- Regenerate the descriptor if the expected message is missing from it.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at extensions-core/protobuf-extensions/src/main/java/org/apache/druid/data/input/protobuf/DescriptorBasedProtobufBytesDecoder.java:152 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/92dcce879c431b65.
Report an issue: GitHub.
Appendix: source
Thrown at extensions-core/protobuf-extensions/src/main/java/org/apache/druid/data/input/protobuf/DescriptorBasedProtobufBytesDecoder.java:152
}
throw new ParseException(null, "No message types found in the descriptor set");
}
// Otherwise, find the specific message type by name
for (final var fileDescriptor : allDescriptors.values()) {
final var desc = findMessageByName(fileDescriptor, protoMessageType);
if (desc != null) {
return desc;
}
}
// Something went wrong... collect all available types for better error message
final var availableTypes = new TreeSet<String>();
for (final var fileDescriptor : allDescriptors.values()) {
collectAvailableTypes(fileDescriptor, availableTypes);
}
throw new ParseException(
null,
"Protobuf message type [%s] not found in the descriptor set. Available types: %s",
protoMessageType,
availableTypes
);
}
catch (Descriptors.DescriptorValidationException e) {
throw new ParseException(null, e, "Invalid protobuf descriptor");
}
}
@Nullable
private Descriptors.Descriptor findMessageByName(
final Descriptors.FileDescriptor fileDescriptor,
final String messageTypeName
)
{
// Try simple name match firstView on GitHub (pinned to 9b90983fd2)