{"record":{"id":"5af4a3316bb47b7e","repo":"eclipse-vertx/vert.x","slug":"mapping-is-not-available-without-jackson-databind","errorCode":null,"errorMessage":"Mapping  is not available without Jackson Databind on the classpath","messagePattern":"Mapping  is not available without Jackson Databind on the classpath","errorType":"exception","errorClass":"EncodeException","httpStatus":null,"severity":"error","filePath":"vertx-core/src/main/java/io/vertx/core/json/jackson/JacksonCodec.java","lineNumber":420,"sourceCode":"      } else if (json instanceof JsonArray) {\n        json = ((JsonArray)json).getList();\n      }\n      if (json instanceof Map) {\n        generator.writeStartObject();\n        for (Map.Entry<String, ?> e : ((Map<String, ?>)json).entrySet()) {\n          generator.writeFieldName(e.getKey());\n          Object value = e.getValue();\n          encodeJson0(value, generator);\n        }\n        generator.writeEndObject();\n      } else if (json instanceof List) {\n        generator.writeStartArray();\n        for (Object item : (List<?>) json) {\n          encodeJson0(item, generator);\n        }\n        generator.writeEndArray();\n      } else if (!encodeSingleType(generator, json)) {\n        throw new EncodeException(\"Mapping \" + json.getClass().getName() + \"  is not available without Jackson Databind on the classpath\");\n      }\n    } catch (IOException e) {\n      throw new EncodeException(e.getMessage(), e);\n    }\n  }\n\n  /**\n   * This is a way to overcome a limit of OpenJDK on MaxRecursiveInlineLevel:\n   * avoiding the \"direct\" recursive calls allow the JIT to have a better inlining budget for the recursive calls.\n   */\n  private static void encodeJson0(Object json, JsonGenerator generator) throws EncodeException {\n    try {\n      if (json instanceof JsonObject) {\n        json = ((JsonObject)json).getMap();\n      } else if (json instanceof JsonArray) {\n        json = ((JsonArray)json).getList();\n      }\n      if (json instanceof Map) {","sourceCodeStart":402,"sourceCodeEnd":438,"githubUrl":"https://github.com/eclipse-vertx/vert.x/blob/fb308bd8c3f12c79f4ae89bef67fadf6c80d036e/vertx-core/src/main/java/io/vertx/core/json/jackson/JacksonCodec.java#L402-L438","documentation":"Dependency capability error in JacksonCodec.encodeJson: POJO/Map-to-JSON mapping was requested, but only jackson-core is on the classpath (jackson-databind missing). The message is a static sentinel ('Mapping  is not available...'); the input at fault is a non-basic object passed for encoding that requires databind serialization.","triggerScenarios":"Thrown at vertx-core/src/main/java/io/vertx/core/json/jackson/JacksonCodec.java:420 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Add jackson-databind to the classpath to enable POJO mapping","Encode only built-in JSON types (Map, List, primitives) without databind"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fb308bd8c3f12c79f4ae89bef67fadf6c80d036e","analyzedAt":"2026-09-06T11:37:12.241Z","contentChangedAt":"2026-09-06T11:37:12.241Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}