{"record":{"id":"573edcd42307afe4","repo":"apache/hadoop","slug":"failed-split-init","errorCode":null,"errorMessage":"Failed split init","messagePattern":"Failed split init","errorType":"exception","errorClass":"IOException","httpStatus":null,"severity":"error","filePath":"hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/join/CompositeInputSplit.java","lineNumber":163,"sourceCode":"    int card = WritableUtils.readVInt(in);\n    if (splits == null || splits.length != card) {\n      splits = new InputSplit[card];\n    }\n    Class<? extends InputSplit>[] cls = new Class[card];\n    try {\n      for (int i = 0; i < card; ++i) {\n        cls[i] =\n          Class.forName(Text.readString(in)).asSubclass(InputSplit.class);\n      }\n      for (int i = 0; i < card; ++i) {\n        splits[i] = ReflectionUtils.newInstance(cls[i], null);\n        SerializationFactory factory = new SerializationFactory(conf);\n        Deserializer deserializer = factory.getDeserializer(cls[i]);\n        deserializer.open((DataInputStream)in);\n        splits[i] = (InputSplit)deserializer.deserialize(splits[i]);\n      }\n    } catch (ClassNotFoundException e) {\n      throw new IOException(\"Failed split init\", e);\n    }\n  }\n}\n","sourceCodeStart":145,"sourceCodeEnd":167,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/join/CompositeInputSplit.java#L145-L167","documentation":"Error \"Failed split init\" thrown in apache/hadoop.","triggerScenarios":"Thrown by CompositeInputSplit.readFields() when deserializing a child split fails because the child split class cannot be instantiated or its readFields throws. Verify the child InputSplit classes are on the classpath and have a public no-arg constructor.","commonSituations":"Custom InputSplit class missing from the task classpath; incompatible serializer versions between client and cluster.","solutions":["Check the wrapped IOException cause: usually a child InputSplit failed to deserialize; verify the split class is on the classpath and its readFields() matches write().","Confirm all child InputSplit implementations are Writable and registered consistently between job submission and task execution."],"exampleFix":"// add the jar containing the custom InputSplit to the job\njob.addFileToClassPath(new Path(\"/libs/mysplits.jar\"));","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"2add9630210752f88ceb1bb74eb65e37bf41da8e","analyzedAt":"2026-08-22T19:55:07.957Z","schemaVersion":2},"datasetVersion":"2026-08-22T20:17:22.307Z"}