diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/PathNotFoundException.java b/core/net/src/main/java/org/onosproject/net/intent/impl/PathNotFoundException.java
index 32f1e35..41b1c8f 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/PathNotFoundException.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/PathNotFoundException.java
@@ -15,23 +15,32 @@
  */
 package org.onosproject.net.intent.impl;
 
+import com.google.common.base.MoreObjects;
+import org.onosproject.net.ElementId;
 import org.onosproject.net.intent.IntentException;
 
+import static com.google.common.base.Preconditions.checkNotNull;
+
 /**
  * An exception thrown when a path is not found.
  */
 public class PathNotFoundException extends IntentException {
     private static final long serialVersionUID = -2087045731049914733L;
 
-    public PathNotFoundException() {
-        super();
+    private final ElementId source;
+    private final ElementId destination;
+
+    public PathNotFoundException(ElementId source, ElementId destination) {
+        super(String.format("No path from %s to %s", source, destination));
+        this.source = checkNotNull(source);
+        this.destination = checkNotNull(destination);
     }
 
-    public PathNotFoundException(String message) {
-        super(message);
-    }
-
-    public PathNotFoundException(String message, Throwable cause) {
-        super(message, cause);
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(this)
+                .add("source", source)
+                .add("destination", destination)
+                .toString();
     }
 }
