diff --git a/binarycpython/utils/ensemble.py b/binarycpython/utils/ensemble.py
index 72a0ced7d9879a9398135c70adb028e729b447d5..590907d4fb287a3c926d5d996b11be4414bf9259 100644
--- a/binarycpython/utils/ensemble.py
+++ b/binarycpython/utils/ensemble.py
@@ -282,8 +282,14 @@ def binaryc_json_serializer(obj: Any) -> Any:
 
     if inspect.isfunction(obj) or isinstance(obj, py_rinterpolate.Rinterpolate):
         return str(obj)
-    return obj
-
+    else:
+        try:
+            string_version = str(obj)
+            return string_version
+        except:
+            raise TypeError(
+                "Unserializable object {} of type {}. Attempted to convert to string but that failed.".format(obj, type(obj))
+            )
 
 class binarycDecoder(json.JSONDecoder):
     """
diff --git a/binarycpython/utils/grid.py b/binarycpython/utils/grid.py
index d4f2f830f2da13bbffeb8e777a9ef9e158999fed..7ec47378d7f0e9c3793f83b2de1296c0038ad806 100644
--- a/binarycpython/utils/grid.py
+++ b/binarycpython/utils/grid.py
@@ -1364,9 +1364,10 @@ class Population:
             include_binary_c_version_info=True,
             include_binary_c_help_all=True,
         )
-        self.grid_ensemble_results["metadata"]["settings"] = json.loads(
-            json.dumps(all_info, default=binaryc_json_serializer)
-        )
+        # self.grid_ensemble_results["metadata"]["settings"] = json.loads(
+        #     json.dumps(all_info, default=binaryc_json_serializer)
+        # )
+        self.grid_ensemble_results['metadata']['settings'] = all_info
 
         ##############################
         # Update grid options