diff --git a/core/api/src/main/java/org/onosproject/core/Version.java b/core/api/src/main/java/org/onosproject/core/Version.java
index 379eda2..2183d59 100644
--- a/core/api/src/main/java/org/onosproject/core/Version.java
+++ b/core/api/src/main/java/org/onosproject/core/Version.java
@@ -77,6 +77,7 @@
      * @return version descriptor
      */
     public static Version version(String string) {
+        checkArgument(string != null, TOO_SHORT);
         String[] fields = string.split("[.-]", 4);
         checkArgument(fields.length >= 2, TOO_SHORT);
         return new Version(parseInt(fields[0]), parseInt(fields[1]),
diff --git a/web/api/src/main/java/org/onosproject/rest/resources/ApplicationsWebResource.java b/web/api/src/main/java/org/onosproject/rest/resources/ApplicationsWebResource.java
index 24ad50a..c73c612 100644
--- a/web/api/src/main/java/org/onosproject/rest/resources/ApplicationsWebResource.java
+++ b/web/api/src/main/java/org/onosproject/rest/resources/ApplicationsWebResource.java
@@ -17,6 +17,7 @@
 
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.onosproject.app.ApplicationAdminService;
+import org.onosproject.app.ApplicationException;
 import org.onosproject.core.Application;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.core.CoreService;
@@ -131,11 +132,15 @@
                                @DefaultValue("false") boolean activate,
                                InputStream stream) {
         ApplicationAdminService service = get(ApplicationAdminService.class);
-        Application app = service.install(stream);
-        if (activate) {
-            service.activate(app.id());
+        try {
+            Application app = service.install(stream);
+            if (activate) {
+                service.activate(app.id());
+            }
+            return ok(codec(Application.class).encode(app, this)).build();
+        } catch (ApplicationException appEx) {
+            throw new IllegalArgumentException(appEx);
         }
-        return ok(codec(Application.class).encode(app, this)).build();
     }
 
     /**
