{"record":{"id":"a33db681cde1902c","repo":"pinpoint-apm/pinpoint","slug":"invalid-idkey-name","errorCode":null,"errorMessage":"Invalid +idKey.name()","messagePattern":"Invalid \\+idKey\\.name\\(\\)","errorType":"validation","errorClass":"InvalidGrpcHeaderException","httpStatus":null,"severity":"error","filePath":"grpc/src/main/java/com/navercorp/pinpoint/grpc/server/HeaderExtractor.java","lineNumber":74,"sourceCode":"\n    public String getId(Metadata headers, Metadata.Key<String> idKey) {\n        final String id = headers.get(idKey);\n        if (id == null) {\n            throw new InvalidGrpcHeaderException(idKey, idKey.name() + \" header is missing\");\n        }\n        return validateId(id, idKey);\n    }\n\n    public String getName(Metadata headers, Metadata.Key<String> idKey) {\n        return getName(headers, idKey, this.nameMaxLength);\n    }\n\n    public String getName(Metadata headers, Metadata.Key<String> idKey, int maxNameLength) {\n        final String name = headers.get(idKey);\n        if (!StringUtils.isEmpty(name)) {\n            final IdValidateUtils.CheckResult result = IdValidateUtils.checkId(name, defaultLength(maxNameLength, this.nameMaxLength));\n            if (result == IdValidateUtils.CheckResult.FAIL_PATTERN) {\n                throw new InvalidGrpcHeaderException(idKey, \"Invalid \" + idKey.name());\n            }\n            if (result == IdValidateUtils.CheckResult.FAIL_LENGTH) {\n                throw new InvalidGrpcHeaderException(idKey, \"Invalid \" + idKey.name() + \".length\");\n            }\n        }\n        return name;\n    }\n\n    private int defaultLength(int length, int defaultValue) {\n        if (length != UNSPECIFIED_LENGTH) {\n            return length;\n        }\n        return defaultValue;\n    }\n\n    public long getSocketId(Metadata headers) {\n        final String socketIdStr = headers.get(Header.SOCKET_ID);\n        if (socketIdStr == null) {","sourceCodeStart":56,"sourceCodeEnd":92,"githubUrl":"https://github.com/pinpoint-apm/pinpoint/blob/744c3d3075e595656abb1ae331ad2c0e4c9eb996/grpc/src/main/java/com/navercorp/pinpoint/grpc/server/HeaderExtractor.java#L56-L92","documentation":"InvalidGrpcHeaderException from HeaderExtractor.getName: the name header exists but fails IdValidateUtils.checkId (illegal characters, empty value, or trailing whitespace), so the supplied name is rejected.","triggerScenarios":"Thrown at grpc/src/main/java/com/navercorp/pinpoint/grpc/server/HeaderExtractor.java:74 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Send agent names matching the documented charset/length rules","Trim and validate names client-side before attaching the header","Increase maxNameLength if legitimate long names are being cut"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"744c3d3075e595656abb1ae331ad2c0e4c9eb996","analyzedAt":"2026-09-07T18:48:45.289Z","contentChangedAt":"2026-09-07T18:48:45.289Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}