quarkusio/quarkus · error · IllegalStateException
Unrecognized type, this is a programming bug in the OpenTele
Error message
Unrecognized type, this is a programming bug in the OpenTelemetry SDK
What it means
In `VertxGrpcSender.logAppropriateWarning`, the signal type string coming from the OpenTelemetry SDK is mapped to its `OTEL_<SIGNAL>_EXPORTER` environment variable name for a warning message. If the type is none of the known signals, the code assumes an SDK-internal bug and throws IllegalStateException. It is not triggered by user configuration.
Source
Thrown at extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/exporter/otlp/sender/VertxGrpcSender.java:425
}
}
}
@SuppressForbidden(reason = "The use of ThrottlingLogger mandates the use of java.util.logging")
private void logUnimplemented(Logger logger, String type, String fullErrorMessage) {
String envVar;
switch (type) {
case "span":
envVar = "OTEL_TRACES_EXPORTER";
break;
case "metric":
envVar = "OTEL_METRICS_EXPORTER";
break;
case "log":
envVar = "OTEL_LOGS_EXPORTER";
break;
default:
throw new IllegalStateException(
"Unrecognized type, this is a programming bug in the OpenTelemetry SDK");
}
logger.log(
Level.WARNING,
"Failed to export "
+ type
+ "s. Server responded with UNIMPLEMENTED. "
+ "This usually means that your collector is not configured with an otlp "
+ "receiver in the \"pipelines\" section of the configuration. "
+ "If export is not desired and you are using OpenTelemetry autoconfiguration or the javaagent, "
+ "disable export by setting "
+ envVar
+ "=none. "
+ "Full error message: "
+ fullErrorMessage);
}
View on GitHub (pinned to e1c734241f)
Solutions
- Align OpenTelemetry SDK versions with those managed by your Quarkus BOM (`quarkus update` or dependency management)
- Check for conflicting manually-declared opentelemetry-* dependencies in your pom/build file
- Reproduce with a minimal app and report to Quarkus/OpenTelemetry if it persists
Defensive patterns
Strategy: try-catch
Validate before calling
// Enforce dependency alignment before build (Maven Enforcer) // mvn enforcer:enforce -Drules=requireUpperBoundDeps
Try / catch
try {
// configure/export via OTel
} catch (IllegalStateException e) {
if (String.valueOf(e.getMessage()).contains("programming bug in the OpenTelemetry SDK")) {
LOG.error("Likely OTel SDK / quarkus-opentelemetry version mismatch", e);
}
} Prevention
- Let the Quarkus BOM manage all opentelemetry-* versions; don't pin your own
- Run `quarkus update` when upgrading rather than mixing versions
- Check `mvn dependency:tree | grep opentelemetry` for conflicts
When it happens
Trigger: The OTel SDK hands VertxGrpcSender an export-signal type string outside the known set — only possible with an SDK/extension version mismatch or a genuine SDK defect.
Common situations: Mixing incompatible versions of `opentelemetry-sdk` and `quarkus-opentelemetry` on the classpath; custom instrumentation calling sender internals with an unexpected type; upstream SDK adding a new signal the Quarkus exporter doesn't know yet.
Related errors
- Cannot attach headers to a null client
- Unsupported client type " + client.getClass()
- RuntimeException(e)
- RuntimeException(e)
- RuntimeException(e)
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/16726a1445c0537f.
Report an issue: GitHub.