diff --git a/bindings/restoreContacts.go b/bindings/restoreContacts.go
index 61e14d3c1073e3e80a44fcbb58df4b6f400393ea..b970c77a2ed8cbf5664f76a6754904edb9b8d0f0 100644
--- a/bindings/restoreContacts.go
+++ b/bindings/restoreContacts.go
@@ -29,6 +29,7 @@ type RestoreContactsReport struct {
 	restored []*id.ID
 	failed   []*id.ID
 	errs     []error
+	restErr  error
 }
 
 // LenRestored returns the length of ID's restored.
@@ -56,6 +57,14 @@ func (r *RestoreContactsReport) GetErrorAt(index int) string {
 	return r.errs[index].Error()
 }
 
+// GetRestoreContactsError returns an error string. Empty if no error.
+func (r *RestoreContactsReport) GetRestoreContactsError() string {
+	if r.restErr == nil {
+		return ""
+	}
+	return r.restErr.Error()
+}
+
 // RestoreContactsFromBackup takes as input the jason output of the
 // `NewClientFromBackup` function, unmarshals it into IDs, looks up
 // each ID in user discovery, and initiates a session reset request.
@@ -65,8 +74,8 @@ func (r *RestoreContactsReport) GetErrorAt(index int) string {
 // the mobile phone apps and are not intended to be part of the xxDK. It
 // should be treated as internal functions specific to the phone apps.
 func RestoreContactsFromBackup(backupPartnerIDs []byte, client *Client,
-	udManager *UserDiscovery, updatesCb RestoreContactsUpdater) (
-	*RestoreContactsReport, error) {
+	udManager *UserDiscovery,
+	updatesCb RestoreContactsUpdater) *RestoreContactsReport {
 
 	restored, failed, errs, err := xxmutils.RestoreContactsFromBackup(
 		backupPartnerIDs, &client.api, udManager.ud, updatesCb)
@@ -75,6 +84,7 @@ func RestoreContactsFromBackup(backupPartnerIDs []byte, client *Client,
 		restored: restored,
 		failed:   failed,
 		errs:     errs,
-	}, err
+		restErr:  err,
+	}
 
 }