diff --git a/pom.xml b/pom.xml
index 1e712ee..1348585 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>com.intel.jndn.utils</groupId>
 	<artifactId>jndn-utils</artifactId>
-	<version>0.9.8</version>
+	<version>0.9.9</version>
 	<name>jndn-utils</name>
 	<description>Collection of tools to simplify synchronous and asynchronous data transfer over the NDN network</description>
 	<url>https://github.com/01org/jndn-utils</url>
diff --git a/src/main/java/com/intel/jndn/utils/SegmentedClient.java b/src/main/java/com/intel/jndn/utils/SegmentedClient.java
index b82051e..aa9cb1a 100644
--- a/src/main/java/com/intel/jndn/utils/SegmentedClient.java
+++ b/src/main/java/com/intel/jndn/utils/SegmentedClient.java
@@ -124,7 +124,7 @@
     try {
       lastSegment = segments.get(0).get().getMetaInfo().getFinalBlockId().toSegment();
     } catch (ExecutionException | InterruptedException e) {
-      logger.log(Level.SEVERE, "Failed to retrieve first segment: ", e);
+      logger.log(Level.FINE, "Failed to retrieve first segment: ", e);
       ((FutureData) segments.get(0)).reject(e); // TODO implies knowledge of underlying data structure
       return segments;
     } catch (EncodingException e) {
@@ -179,7 +179,7 @@
     try {
       return getAsync(face, interest).get();
     } catch (ExecutionException | InterruptedException e) {
-      logger.log(Level.WARNING, "Failed to retrieve data.", e);
+      logger.log(Level.FINE, "Failed to retrieve data.", e);
       throw new IOException("Failed to retrieve data.", e);
     }
   }
diff --git a/src/main/java/com/intel/jndn/utils/SimpleClient.java b/src/main/java/com/intel/jndn/utils/SimpleClient.java
index a751f8e..146391b 100644
--- a/src/main/java/com/intel/jndn/utils/SimpleClient.java
+++ b/src/main/java/com/intel/jndn/utils/SimpleClient.java
@@ -78,7 +78,7 @@
         }
       });
     } catch (IOException e) {
-      logger.log(Level.WARNING, "IO failure while sending interest: ", e);
+      logger.log(Level.FINE, "IO failure while sending interest: ", e);
       futureData.reject(e);
     }
 
@@ -112,7 +112,7 @@
     try {
       return getAsync(face, interest).get();
     } catch (ExecutionException | InterruptedException e) {
-      logger.log(Level.WARNING, "Failed to retrieve data.", e);
+      logger.log(Level.FINE, "Failed to retrieve data.", e);
       throw new IOException("Failed to retrieve data.", e);
     }
   }
