{"record":{"id":"b9169a826135f33c","repo":"apache/hadoop","slug":"error-serializer-already-registered-existing","errorCode":null,"errorMessage":"Error! Serializer already registered, existing: {}, new: {}","messagePattern":"Error! Serializer already registered, existing: (.+?), new: (.+?)","errorType":"exception","errorClass":"IOException","httpStatus":null,"severity":"error","filePath":"hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-nativetask/src/main/java/org/apache/hadoop/mapred/nativetask/serde/NativeSerialization.java","lineNumber":75,"sourceCode":"    return new DefaultSerializer();\n  }\n\n  public void register(String klass, Class<?> serializer) throws IOException {\n    if (null == klass || null == serializer) {\n      throw new IOException(\"invalid arguments, klass or serializer is null\");\n    }\n\n    if (!INativeSerializer.class.isAssignableFrom(serializer)) {\n      throw new IOException(\"Serializer is not assigable from INativeSerializer\");\n    }\n\n    final Class<?> storedSerializer = map.get(klass);\n    if (null == storedSerializer) {\n      map.put(klass, serializer);\n      return;\n    } else {\n      if (!storedSerializer.getName().equals(serializer.getName())) {\n        throw new IOException(\"Error! Serializer already registered, existing: \" +\n                              storedSerializer.getName() + \", new: \" +\n                              serializer.getName());\n      }\n    }\n  }\n\n  public void reset() {\n    map.clear();\n  }\n\n  private static NativeSerialization instance = new NativeSerialization();\n\n  public static NativeSerialization getInstance() {\n    return instance;\n  }\n}","sourceCodeStart":57,"sourceCodeEnd":91,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-nativetask/src/main/java/org/apache/hadoop/mapred/nativetask/serde/NativeSerialization.java#L57-L91","documentation":"Error \"Error! Serializer already registered, existing: {}, new: {}\" thrown in apache/hadoop.","triggerScenarios":"Thrown by NativeSerialization.register() when a serializer is registered twice for the same Writable class with a different serializer instance. Register each key/value class only once, or reuse the already-registered serializer.","commonSituations":"See trigger scenarios.","solutions":["Register each class's serializer only once; remove the duplicate registration.","If replacing a serializer intentionally, deregister or restructure registration so one class maps to one serializer."],"exampleFix":null,"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"}