diff --git a/pw_rpc/py/pw_rpc/callback_client/call.py b/pw_rpc/py/pw_rpc/callback_client/call.py
index abe1083..aba87f9 100644
--- a/pw_rpc/py/pw_rpc/callback_client/call.py
+++ b/pw_rpc/py/pw_rpc/callback_client/call.py
@@ -52,7 +52,8 @@
     response: Any
 
     def __repr__(self) -> str:
-        return f'({self.status}, {proto_repr(self.response)})'
+        reply = proto_repr(self.response) if self.response else self.response
+        return f'({self.status}, {reply})'
 
 
 class StreamResponse(NamedTuple):
diff --git a/pw_rpc/py/tests/callback_client_test.py b/pw_rpc/py/tests/callback_client_test.py
index b06939f..53d9030 100755
--- a/pw_rpc/py/tests/callback_client_test.py
+++ b/pw_rpc/py/tests/callback_client_test.py
@@ -401,6 +401,14 @@
 
         self.assertEqual(context.exception.__cause__, exception)
 
+    def test_unary_response(self) -> None:
+        proto = self._protos.packages.pw.test1.SomeMessage(magic_number=123)
+        self.assertEqual(
+            repr(callback_client.UnaryResponse(Status.ABORTED, proto)),
+            '(Status.ABORTED, pw.test1.SomeMessage(magic_number=123))')
+        self.assertEqual(repr(callback_client.UnaryResponse(Status.OK, None)),
+                         '(Status.OK, None)')
+
 
 class ServerStreamingTest(_CallbackClientImplTestBase):
     """Tests for server streaming RPCs."""
@@ -965,6 +973,15 @@
         self.assertIs(first_call.error, Status.CANCELLED)
         self.assertFalse(second_call.completed())
 
+    def test_stream_response(self) -> None:
+        proto = self._protos.packages.pw.test1.SomeMessage(magic_number=123)
+        self.assertEqual(
+            repr(callback_client.StreamResponse(Status.ABORTED, [proto] * 2)),
+            '(Status.ABORTED, [pw.test1.SomeMessage(magic_number=123), '
+            'pw.test1.SomeMessage(magic_number=123)])')
+        self.assertEqual(repr(callback_client.StreamResponse(Status.OK, [])),
+                         '(Status.OK, [])')
+
 
 if __name__ == '__main__':
     unittest.main()
