diff --git a/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/DeserializationExceptionMessagesTest.java b/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/DeserializationExceptionMessagesTest.java
index c914035..efa6fe7 100644
--- a/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/DeserializationExceptionMessagesTest.java
+++ b/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/DeserializationExceptionMessagesTest.java
@@ -117,7 +117,7 @@
     public void numberFromObject() throws Exception {
         assertMessage("{ \"number\" : {\"red\": 255, \"green\": 165, \"blue\":0} }",
                 "Widget property 'number' of type Integer cannot be mapped to json object value: {\"red\":255,\"green\":1" +
-                        "...\nCan't map JSON Object to class java.lang.Integer: {\"red\":255,\"green\":1...");
+                        "...\nUnable to map json object value to class java.lang.Integer: {\"red\":255,\"green\":1...");
     }
 
     @Test
@@ -166,7 +166,7 @@
     public void intPrimitiveFromObject() throws Exception {
         assertMessage("{ \"intPrimitive\" : {\"red\": 255, \"green\": 165, \"blue\":0} }",
                 "Widget property 'intPrimitive' of type int cannot be mapped to json object value: {\"red\":255,\"green\"" +
-                        ":1...\nCan't map JSON Object to int: {\"red\":255,\"green\":1...");
+                        ":1...\nUnable to map json object value to int: {\"red\":255,\"green\":1...");
     }
 
     @Test
@@ -336,7 +336,7 @@
     public void enumFromObject() throws Exception {
         assertMessage("{ \"unit\" : {\"red\": 255, \"green\": 165, \"blue\":0} }",
                 "Widget property 'unit' of type TimeUnit cannot be mapped to json object value: {\"red\":255,\"green\":1." +
-                        "..\nCan't map JSON Object to class java.lang.String: {\"red\":255,\"green\":1...");
+                        "..\nUnable to map json object value to class java.lang.String: {\"red\":255,\"green\":1...");
     }
 
     @Test
@@ -394,8 +394,8 @@
     @Test
     public void dateFromObject() throws Exception {
         assertMessage("{ \"date\" : {\"red\": 255, \"green\": 165, \"blue\":0} }",
-                "Widget property 'date' of type Date cannot be mapped to json object value: {\"red\":255,\"green\":1...\nC" +
-                        "an't map JSON Object to class java.lang.String: {\"red\":255,\"green\":1...");
+                "Widget property 'date' of type Date cannot be mapped to json object value: {\"red\":255,\"green\":1...\nU" +
+                        "nable to map json object value to class java.lang.String: {\"red\":255,\"green\":1...");
     }
 
     @Test
@@ -538,7 +538,7 @@
     public void arrayOfStringFromArrayOfObject() throws Exception {
         assertMessage("{ \"arrayOfString\" : [{\"red\": 255, \"green\": 165, \"blue\":0},{\"red\": 0, \"green\": 45, \"blue\":127}] }",
                 "Widget property 'arrayOfString' of type String[] cannot be mapped to json array value: [{\"red\":255,\"" +
-                        "green\":...\nCan't map JSON Object to class java.lang.String: {\"red\":255,\"green\":1...");
+                        "green\":...\nUnable to map json object value to class java.lang.String: {\"red\":255,\"green\":1...");
     }
 
     @Test
@@ -723,8 +723,8 @@
     public void listOfObjectFromObject() throws Exception {
         assertMessage("{ \"listOfObject\" : {\"red\": 255, \"green\": 165, \"blue\":0} }",
                 "Widget property 'listOfObject' of type List<Color> cannot be mapped to json object value: {\"red\":255" +
-                        ",\"green\":1...\nCan't map JSON Object to java.util.List<org.apache.johnzon.jsonb.DeserializationExcept" +
-                        "ionMessagesTest$Color>: {\"red\":255,\"green\":1...");
+                        ",\"green\":1...\nUnable to map json object value to java.util.List<org.apache.johnzon.jsonb.Deserializa" +
+                        "tionExceptionMessagesTest$Color>: {\"red\":255,\"green\":1...");
     }
 
     @Test
@@ -779,7 +779,8 @@
     public void listOfStringFromObject() throws Exception {
         assertMessage("{ \"listOfString\" : {\"red\": 255, \"green\": 165, \"blue\":0} }",
                 "Widget property 'listOfString' of type List<String> cannot be mapped to json object value: {\"red\":25" +
-                        "5,\"green\":1...\nCan't map JSON Object to java.util.List<java.lang.String>: {\"red\":255,\"green\":1...");
+                        "5,\"green\":1...\nUnable to map json object value to java.util.List<java.lang.String>: {\"red\":255,\"gree" +
+                        "n\":1...");
     }
 
     @Test
@@ -809,7 +810,7 @@
     public void listOfStringFromArrayOfObject() throws Exception {
         assertMessage("{ \"listOfString\" : [{\"red\": 255, \"green\": 165, \"blue\":0},{\"red\": 0, \"green\": 45, \"blue\":127}] }",
                 "Widget property 'listOfString' of type List<String> cannot be mapped to json array value: [{\"red\":25" +
-                        "5,\"green\":...\nCan't map JSON Object to class java.lang.String: {\"red\":255,\"green\":1...");
+                        "5,\"green\":...\nUnable to map json object value to class java.lang.String: {\"red\":255,\"green\":1...");
     }
 
     @Test
@@ -830,7 +831,8 @@
     public void listOfNumberFromObject() throws Exception {
         assertMessage("{ \"listOfNumber\" : {\"red\": 255, \"green\": 165, \"blue\":0} }",
                 "Widget property 'listOfNumber' of type List<Number> cannot be mapped to json object value: {\"red\":25" +
-                        "5,\"green\":1...\nCan't map JSON Object to java.util.List<java.lang.Number>: {\"red\":255,\"green\":1...");
+                        "5,\"green\":1...\nUnable to map json object value to java.util.List<java.lang.Number>: {\"red\":255,\"gree" +
+                        "n\":1...");
     }
 
     @Test
@@ -882,7 +884,8 @@
     public void listOfBooleanFromObject() throws Exception {
         assertMessage("{ \"listOfBoolean\" : {\"red\": 255, \"green\": 165, \"blue\":0} }",
                 "Widget property 'listOfBoolean' of type List<Boolean> cannot be mapped to json object value: {\"red\":" +
-                        "255,\"green\":1...\nCan't map JSON Object to java.util.List<java.lang.Boolean>: {\"red\":255,\"green\":1...");
+                        "255,\"green\":1...\nUnable to map json object value to java.util.List<java.lang.Boolean>: {\"red\":255,\"g" +
+                        "reen\":1...");
     }
 
     @Test
diff --git a/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/SnippetMaxLengthTest.java b/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/SnippetMaxLengthTest.java
index 9daab96..93c437e 100644
--- a/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/SnippetMaxLengthTest.java
+++ b/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/SnippetMaxLengthTest.java
@@ -40,7 +40,7 @@
         } catch (JsonbException e) {
             assertMessage("Person property 'name' of type String cannot be mapped to json object value: " +
                     "{\"first\":\"Charlie\",\"last\":\"Brown\"}\n" +
-                    "Can't map JSON Object to class java.lang.String: {\"first\":\"Charlie\",\"last\":\"Brown\"}", e.getMessage());
+                    "Unable to map json object value to class java.lang.String: {\"first\":\"Charlie\",\"last\":\"Brown\"}", e.getMessage());
         }
     }
 
@@ -53,7 +53,7 @@
         } catch (JsonbException e) {
             assertMessage("Person property 'name' of type String cannot be mapped to json object value:" +
                     " {\"first\":\"Charlie\",\"last\":\"Brown\",\"age\":\"8.5\",\"dog...\n" +
-                    "Can't map JSON Object to class java.lang.String: {\"first\":\"Charlie\",\"last\":\"Brown\",\"age\":\"8.5\",\"dog...", e.getMessage());
+                    "Unable to map json object value to class java.lang.String: {\"first\":\"Charlie\",\"last\":\"Brown\",\"age\":\"8.5\",\"dog...", e.getMessage());
         }
     }
 
@@ -68,7 +68,7 @@
         } catch (JsonbException e) {
             assertMessage("Person property 'name' of type String cannot be mapped to json object value:" +
                     " {\"first\":\"Charlie\",\"...\n" +
-                    "Can't map JSON Object to class java.lang.String: {\"first\":\"Charlie\",\"...", e.getMessage());
+                    "Unable to map json object value to class java.lang.String: {\"first\":\"Charlie\",\"...", e.getMessage());
         }
     }
 
@@ -91,7 +91,7 @@
         } catch (JsonbException e) {
             assertMessage("Person property 'name' of type String cannot be mapped to json object value:" +
                     " {\"first\":\"Charlie\",\"...\n" +
-                    "Can't map JSON Object to class java.lang.String: {\"first\":\"Charlie\",\"...", e.getMessage());
+                    "Unable to map json object value to class java.lang.String: {\"first\":\"Charlie\",\"...", e.getMessage());
         }
     }
 
diff --git a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingParserImpl.java b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingParserImpl.java
index 5d11077..0f77e91 100644
--- a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingParserImpl.java
+++ b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingParserImpl.java
@@ -346,7 +346,9 @@
             }
         }
         if (classMapping == null) {
-            throw new MapperException("Can't map JSON Object to " + type + ": " + config.getSnippet().of(object));
+            final String snippet = config.getSnippet().of(object);
+            final String description = ExceptionMessages.description(object);
+            throw new MapperException("Unable to map " + description + " to " + type + ": " + snippet);
         }
 
         if (applyObjectConverter && classMapping.reader != null && (skippedConverters == null || !skippedConverters.contains(type))) {
