diff --git a/bindings/single.go b/bindings/single.go
index bebd9024c6abe8572782c8a96b9d9638860a7b96..f619720204f2b688ce5f00df5ef73556f91aa895 100644
--- a/bindings/single.go
+++ b/bindings/single.go
@@ -135,7 +135,7 @@ type SingleUseResponseReport struct {
 	Payload     []byte
 	ReceptionID *id.ID
 	EphID       int64
-	Err         error
+	Err         string
 }
 
 // SingleUseCallbackReport is the bindings-layer struct used to represent
@@ -261,13 +261,17 @@ func (sr singleUseResponse) Callback(payload []byte,
 	if len(rids) > 0 {
 		roundURL = getRoundURL(rids[0])
 	}
+	errString := ""
+	if err != nil {
+		errString = err.Error()
+	}
 	sendReport := SingleUseResponseReport{
 		RoundsList:  makeRoundsList(rids...),
 		RoundURL:    roundURL,
 		ReceptionID: receptionID.Source,
 		EphID:       receptionID.EphId.Int64(),
 		Payload:     payload,
-		Err:         err,
+		Err:         errString,
 	}
 	sr.response.Callback(json.Marshal(&sendReport))
 }
diff --git a/bindings/single_test.go b/bindings/single_test.go
index b49503819833f95674c6cfc416556e20fa506fde..212ed5c92825b1f5069aecc7b895fb6404e2cdee 100644
--- a/bindings/single_test.go
+++ b/bindings/single_test.go
@@ -50,7 +50,7 @@ func TestSingleUseJsonMarshals(t *testing.T) {
 		Payload:     payload,
 		ReceptionID: ephId.Source,
 		EphID:       ephId.EphId.Int64(),
-		Err:         nil,
+		Err:         "",
 	}
 	rrm, err := json.Marshal(responseReport)
 	if err != nil {