{"record":{"id":"dd3070aa51d1c67a","repo":"pinpoint-apm/pinpoint","slug":"unknown-grpc-trace-version-key-version","errorCode":null,"errorMessage":"unknown ${GRPC_TRACE_VERSION_KEY}:${version}","messagePattern":"unknown (.+?):(.+?)","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"agent-module/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/provider/TraceDataFormatVersionProvider.java","lineNumber":44,"sourceCode":"/**\n * @author Woonduk Kang(emeroad)\n */\npublic class TraceDataFormatVersionProvider implements Provider<TraceDataFormatVersion> {\n    private final Logger logger = LogManager.getLogger(this.getClass());\n    private final TraceDataFormatVersion version;\n\n    @Inject\n    public TraceDataFormatVersionProvider(ProfilerConfig profilerConfig) {\n        this.version = getVersion(profilerConfig);\n        logger.info(\"TraceDataFormatVersion:{}\", this.version);\n    }\n\n    private TraceDataFormatVersion getVersion(ProfilerConfig profilerConfig) {\n        final String version = profilerConfig.readString(TraceDataFormatVersion.GRPC_TRACE_VERSION_KEY, \"v2\");\n        if (\"v2\".equalsIgnoreCase(version)) {\n            return TraceDataFormatVersion.V2;\n        }\n        throw new UnsupportedOperationException(\"unknown \" + TraceDataFormatVersion.GRPC_TRACE_VERSION_KEY + \":\" + version);\n    }\n\n    @Override\n    public TraceDataFormatVersion get() {\n        return version;\n    }\n}\n","sourceCodeStart":26,"sourceCodeEnd":52,"githubUrl":"https://github.com/pinpoint-apm/pinpoint/blob/744c3d3075e595656abb1ae331ad2c0e4c9eb996/agent-module/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/provider/TraceDataFormatVersionProvider.java#L26-L52","documentation":"TraceDataFormatVersionProvider.getVersion() reads the gRPC trace version from profiler config (key TraceDataFormatVersion.GRPC_TRACE_VERSION_KEY, default 'v2'). Only 'v2' (case-insensitive) is accepted; anything else throws UnsupportedOperationException('unknown <key>:<version>').","triggerScenarios":"Config property profiler.trace.v2 (gRPC trace version) set to any value other than 'v2'/'V2', e.g. 'v1', 'V3', or a typo like 'v2 '.","commonSituations":"Users copying older v1-based agent config to a gRPC-based agent, guessing at a 'v3' option that does not exist in their release, or whitespace/typos in pinpoint.config.","solutions":["Set the config value to 'v2' (the only supported value) or remove the line to accept the default","Check the exact key name and value in pinpoint.config for typos/case issues (value match is case-insensitive)","Upgrade the agent if you believe a newer trace format version should be supported","Avoid manually editing the version key unless following release-specific migration docs"],"exampleFix":"// before\nprofiler.trace.v2=V3\n// after\nprofiler.trace.v2=v2","handlingStrategy":"validation","validationCode":"String v = config.readString(\"profiler.trace.v2\", \"v2\");\nif (!\"v2\".equalsIgnoreCase(v.trim())) {\n    throw new IllegalArgumentException(\"profiler.trace.v2 only supports 'v2', got: \" + v);\n}","typeGuard":null,"tryCatchPattern":"try { versionProvider.get(); } catch (UnsupportedOperationException e) { logger.error(\"Unsupported {} value; use v2\", \"profiler.trace.v2\"); }","preventionTips":["Leave the trace version key at its default unless migrating per release docs","Trim whitespace from config values","Confirm supported versions in your agent release's documentation"],"tags":["config","versioning","grpc","unsupported"],"backgroundTag":"unsupported-config-value","analyzedSha":"744c3d3075e595656abb1ae331ad2c0e4c9eb996","analyzedAt":"2026-09-07T18:48:45.289Z","contentChangedAt":"2026-09-07T18:48:45.289Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}