{"record":{"id":"691285a926bc834f","repo":"apache/flink","slug":"input-type-of-groupreduce-must-be-one-of-composite","errorCode":null,"errorMessage":"Input type of GroupReduce must be one of composite types or atomic types.","messagePattern":"Input type of GroupReduce must be one of composite types or atomic types\\.","errorType":"exception","errorClass":"InvalidProgramException","httpStatus":null,"severity":"error","filePath":"flink-core/src/main/java/org/apache/flink/api/common/operators/base/GroupReduceOperatorBase.java","lineNumber":188,"sourceCode":"    }\n\n    public Partitioner<?> getCustomPartitioner() {\n        return customPartitioner;\n    }\n\n    private TypeComparator<IN> getTypeComparator(\n            TypeInformation<IN> typeInfo,\n            int[] sortColumns,\n            boolean[] sortOrderings,\n            ExecutionConfig executionConfig) {\n        if (typeInfo instanceof CompositeType) {\n            return ((CompositeType<IN>) typeInfo)\n                    .createComparator(sortColumns, sortOrderings, 0, executionConfig);\n        } else if (typeInfo instanceof AtomicType) {\n            return ((AtomicType<IN>) typeInfo).createComparator(sortOrderings[0], executionConfig);\n        }\n\n        throw new InvalidProgramException(\n                \"Input type of GroupReduce must be one of composite types or atomic types.\");\n    }\n\n    // --------------------------------------------------------------------------------------------\n\n    @Override\n    protected List<OUT> executeOnCollections(\n            List<IN> inputData, RuntimeContext ctx, ExecutionConfig executionConfig)\n            throws Exception {\n        GroupReduceFunction<IN, OUT> function = this.userFunction.getUserCodeObject();\n\n        UnaryOperatorInformation<IN, OUT> operatorInfo = getOperatorInfo();\n        TypeInformation<IN> inputType = operatorInfo.getInputType();\n\n        int[] keyColumns = getKeyColumns(0);\n        int[] sortColumns = keyColumns;\n        boolean[] sortOrderings = new boolean[sortColumns.length];\n","sourceCodeStart":170,"sourceCodeEnd":206,"githubUrl":"https://github.com/apache/flink/blob/2f3c205e9266cb30240eb7f4fdab15cad629a70f/flink-core/src/main/java/org/apache/flink/api/common/operators/base/GroupReduceOperatorBase.java#L170-L206","documentation":"Error \"Input type of GroupReduce must be one of composite types or atomic types.\" thrown in apache/flink.","triggerScenarios":"Triggered at runtime when the operation fails because: Input type of GroupReduce must be one of composite types or atomic types.","commonSituations":"Commonly caused by misconfiguration, missing dependencies or files, unsupported types or operations, or invalid user input leading to: Input type of GroupReduce must be one of composite types or atomic types.","solutions":["Address the cause reported by the error message: Input type of GroupReduce must be one of composite types or atomic types.","Verify the inputs, configuration values, and classpath/dependency setup related to this operation, then retry."],"exampleFix":"Correct the condition described (\"Input type of GroupReduce must be one of composite types or atomic types.\") and rerun the job or command.","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"2f3c205e9266cb30240eb7f4fdab15cad629a70f","analyzedAt":"2026-08-14T08:48:24.518Z","schemaVersion":2},"datasetVersion":"2026-08-14T10:17:34.591Z"}