diff --git a/core/store/serializers/src/main/java/org/onosproject/store/serializers/ImmutableByteSequenceSerializer.java b/core/store/serializers/src/main/java/org/onosproject/store/serializers/ImmutableByteSequenceSerializer.java
index 1cbd021..9670acd 100644
--- a/core/store/serializers/src/main/java/org/onosproject/store/serializers/ImmutableByteSequenceSerializer.java
+++ b/core/store/serializers/src/main/java/org/onosproject/store/serializers/ImmutableByteSequenceSerializer.java
@@ -38,12 +38,14 @@
     @Override
     public void write(Kryo kryo, Output output, ImmutableByteSequence object) {
         byte[] data = object.asArray();
+        output.writeBoolean(object.isAscii());
         output.writeInt(data.length);
         output.write(data);
     }
 
     @Override
     public ImmutableByteSequence read(Kryo kryo, Input input, Class<ImmutableByteSequence> type) {
+        boolean isAscii = input.readBoolean();
         int length = input.readInt();
         byte[] data = new byte[length];
         int bytesRead = input.read(data);
@@ -51,6 +53,10 @@
             throw new IllegalStateException("Byte sequence serializer read expected " + length +
                     " but got " + bytesRead);
         }
+
+        if (isAscii) {
+            return ImmutableByteSequence.copyFrom(new String(data));
+        }
         return ImmutableByteSequence.copyFrom(data);
     }
 }
