diff --git a/VERSION b/VERSION
index b88e1c8..f1592fa 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.1.27
+2.1.28
diff --git a/containers/chameleon/Dockerfile.chameleon b/containers/chameleon/Dockerfile.chameleon
index 4708590..b9aa657 100644
--- a/containers/chameleon/Dockerfile.chameleon
+++ b/containers/chameleon/Dockerfile.chameleon
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 # xosproject/chameleon
-FROM xosproject/xos-base:2.1.27
+FROM xosproject/xos-base:2.1.28
 
 # xos-base already has protoc and dependencies installed
 
diff --git a/containers/xos/Dockerfile.client b/containers/xos/Dockerfile.client
index 2ba7abd..902bc4b 100644
--- a/containers/xos/Dockerfile.client
+++ b/containers/xos/Dockerfile.client
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 # xosproject/xos-client
-FROM xosproject/xos-libraries:2.1.27
+FROM xosproject/xos-libraries:2.1.28
 
 # Install XOS client
 COPY xos/xos_client /tmp/xos_client
diff --git a/containers/xos/Dockerfile.libraries b/containers/xos/Dockerfile.libraries
index 85a6085..f9ee238 100644
--- a/containers/xos/Dockerfile.libraries
+++ b/containers/xos/Dockerfile.libraries
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 # xosproject/xos-libraries
-FROM xosproject/xos-base:2.1.27
+FROM xosproject/xos-base:2.1.28
 
 # Add libraries
 COPY lib /opt/xos/lib
diff --git a/containers/xos/Dockerfile.synchronizer-base b/containers/xos/Dockerfile.synchronizer-base
index b4879ca..7329a5d 100644
--- a/containers/xos/Dockerfile.synchronizer-base
+++ b/containers/xos/Dockerfile.synchronizer-base
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 # xosproject/xos-synchronizer-base
-FROM xosproject/xos-client:2.1.27
+FROM xosproject/xos-client:2.1.28
 
 COPY xos/synchronizers/new_base /opt/xos/synchronizers/new_base
 COPY xos/xos/logger.py /opt/xos/xos/logger.py
diff --git a/containers/xos/Dockerfile.xos-core b/containers/xos/Dockerfile.xos-core
index 8bb2e66..02fd1a3 100644
--- a/containers/xos/Dockerfile.xos-core
+++ b/containers/xos/Dockerfile.xos-core
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 # xosproject/xos-core
-FROM xosproject/xos-libraries:2.1.27
+FROM xosproject/xos-libraries:2.1.28
 
 # Install XOS
 ADD xos /opt/xos
diff --git a/xos/xos_client/xosapi/orm.py b/xos/xos_client/xosapi/orm.py
index 6e3e5f4..07144f5 100644
--- a/xos/xos_client/xosapi/orm.py
+++ b/xos/xos_client/xosapi/orm.py
@@ -218,9 +218,9 @@
     def reverse_fk_resolve(self, name):
         if name not in self.reverse_cache:
             fk_entry = self._reverse_fkmap[name]
-            self.cache[name] = ORMLocalObjectManager(self.stub, fk_entry["modelName"], getattr(self, fk_entry["src_fieldName"]), fk_entry["writeable"])
+            self.reverse_cache[name] = ORMLocalObjectManager(self.stub, fk_entry["modelName"], getattr(self, fk_entry["src_fieldName"]), fk_entry["writeable"])
 
-        return self.cache[name]
+        return self.reverse_cache[name]
 
     def fk_set(self, name, model):
         fk_entry = self._fkmap[name]
diff --git a/xos/xos_client/xosapi/test_orm.py b/xos/xos_client/xosapi/test_orm.py
index 07c26fc..2f4593b 100644
--- a/xos/xos_client/xosapi/test_orm.py
+++ b/xos/xos_client/xosapi/test_orm.py
@@ -689,6 +689,9 @@
         testModel_resolved = testModelTwo.fk_resolve("testmodel")
         self.assertEqual(testModel_resolved.id, testModel.id)
 
+        # the cache should have been populated
+        self.assertIn(("testmodel", testModel_resolved), testModelTwo.cache.items())
+
     def test_ORMWrapper_reverse_fk_resolve(self):
         """ If a TestModelTwo has a relation to TestModel, then TestModel's reverse_fk should be resolvable to a list
             of TestModelTwo objects.
@@ -708,6 +711,9 @@
         testModelTwos_resolved = testModel.reverse_fk_resolve("testmodeltwos")
         self.assertEqual(testModelTwos_resolved.count(), 1)
 
+        # the reverse_cache should have been populated
+        self.assertIn(("testmodeltwos", testModelTwos_resolved), testModel.reverse_cache.items())
+
     def test_ORMWrapper_fk_set(self):
         """ fk_set will set the testmodel field on TesTModelTwo to point to the TestModel. """
 
