{"record":{"id":"41e44239df624972","repo":"pinpoint-apm/pinpoint","slug":"unsupported-objecttype-objectname","errorCode":null,"errorMessage":"unsupported ObjectType:${objectName}","messagePattern":"unsupported ObjectType:(.+?)","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"agent-module/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/provider/grpc/AgentHeaderFactoryProvider.java","lineNumber":73,"sourceCode":"        int serviceType = agentInformation.getServerType().getCode();\n        long startTime = agentInformation.getStartTime();\n        return new ClientHeaderFactoryV1(agentId, agentName, applicationName, serviceType, startTime);\n    }\n\n    private HeaderFactory createV4() {\n        if (objectName instanceof ObjectNameV4) {\n            ObjectNameV4 objectName = (ObjectNameV4) this.objectName;\n            String agentId = objectName.getAgentId();\n            String agentName = objectName.getAgentName();\n            String applicationName = objectName.getApplicationName();\n            String serviceName = objectName.getServiceName();\n            String apiKey = objectName.getApiKey();\n\n            int serviceType = agentInformation.getServerType().getCode();\n            long startTime = agentInformation.getStartTime();\n            return new ClientHeaderFactoryV4(agentId, agentName, applicationName, serviceName, apiKey, serviceType, startTime);\n        }\n        throw new IllegalStateException(\"unsupported ObjectType:\" + objectName);\n    }\n}\n","sourceCodeStart":55,"sourceCodeEnd":76,"githubUrl":"https://github.com/pinpoint-apm/pinpoint/blob/744c3d3075e595656abb1ae331ad2c0e4c9eb996/agent-module/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/provider/grpc/AgentHeaderFactoryProvider.java#L55-L76","documentation":"AgentHeaderFactoryProvider.createV4 throws this IllegalStateException when the trace data format object type passed in is not one of the supported versions (V2/V4 etc). The provider builds gRPC client headers for a known data format; any unrecognized objectName means an unsupported TraceDataFormatVersion was configured or plugged in. It is an internal guard so that an unknown version fails fast instead of producing malformed gRPC metadata headers.","triggerScenarios":"createV4 (invoked via get()) receives an objectName whose type does not match any supported TraceDataFormatVersion branch, e.g. profiler.traceformat or related metadata is set to a version the profiler does not implement, or a custom/broken ObjectName implementation is passed.","commonSituations":"Pinpoint agent/config version drift (newer trace format used with an older agent), custom profiler builds that forgot to add a case for a new format, or wiring a provider with a null/unknown version object.","solutions":["Check the configured TraceDataFormatVersion (profiler.traceformat / trace version config) and set it to a supported value (e.g. V2)","Align agent and collector/plugin versions so the trace format is one the agent supports","If extending the provider, add a branch for the new ObjectName type before the final throw","Verify no null or corrupt agent information object is being passed to the provider"],"exampleFix":"// before\nthrow new IllegalStateException(\"unsupported ObjectType:\" + objectName);\n// after\nif (objectName == null) {\n    throw new IllegalArgumentException(\"objectName is required\");\n}\nlogger.warn(\"Unsupported trace format object type: {}\", objectName);\nthrow new IllegalStateException(\"unsupported ObjectType:\" + objectName);","handlingStrategy":"validation","validationCode":"if (objectName == null || !isSupportedTraceFormat(objectName)) {\n    throw new IllegalArgumentException(\"Unsupported trace format object type: \" + objectName);\n}","typeGuard":"boolean isSupportedTraceFormat(ObjectName o) {\n    return o instanceof TraceDataFormatMetadata\n        && TraceDataFormatVersion.supported(((TraceDataFormatMetadata) o).getVersion());\n}","tryCatchPattern":"try {\n    ClientHeaderFactory factory = agentHeaderFactoryProvider.get();\n} catch (IllegalStateException e) {\n    logger.error(\"Agent header factory init failed: {}\", e.getMessage());\n    throw e;\n}","preventionTips":["Pin the trace format version in profiler config to a value supported by the agent build","Keep agent, collector and plugin versions aligned on upgrades","Add unit tests covering every supported ObjectName/trace-format branch in the provider"],"tags":["grpc","pinpoint-profiler","trace-format"],"backgroundTag":"unsupported-enum-value","analyzedSha":"744c3d3075e595656abb1ae331ad2c0e4c9eb996","analyzedAt":"2026-09-07T18:48:45.289Z","contentChangedAt":"2026-09-07T18:48:45.289Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}