{"record":{"id":"9ad0bc84a1e9a359","repo":"apache/hadoop","slug":"serializer-is-not-assigable-from-inativeserializer","errorCode":null,"errorMessage":"Serializer is not assigable from INativeSerializer","messagePattern":"Serializer is not assigable from INativeSerializer","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":66,"sourceCode":"    final Class<?> serializer = map.get(name);\n\n    if (null != serializer) {\n      try {\n        return (INativeSerializer<Writable>) serializer.newInstance();\n      } catch (final Exception e) {\n        throw new IOException(e);\n      }\n    }\n    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  }","sourceCodeStart":48,"sourceCodeEnd":84,"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#L48-L84","documentation":"Error \"Serializer is not assigable from INativeSerializer\" thrown in apache/hadoop.","triggerScenarios":"Thrown by NativeSerialization.register() when the configured serializer class does not implement INativeSerializer. Make the custom serializer implement INativeSerializer before registering it.","commonSituations":"See trigger scenarios.","solutions":["Ensure the serializer class implements INativeSerializer; native tasks require serializers assignable to that interface.","Replace the custom serializer with an INativeSerializer implementation or disable native tasks for this job."],"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-23T01:17:44.959Z"}