diff --git a/changelog.d/9361.bugfix b/changelog.d/9361.bugfix
new file mode 100644
index 0000000000000000000000000000000000000000..4d0477f033b384d8a9829c966e71d075cb177a15
--- /dev/null
+++ b/changelog.d/9361.bugfix
@@ -0,0 +1 @@
+Fix a bug causing Synapse to impose the wrong type constraints on fields when processing responses from appservices to `/_matrix/app/v1/thirdparty/user/{protocol}`.
diff --git a/synapse/appservice/api.py b/synapse/appservice/api.py
index e366a982b80147837ab4d12d1f029fc899db7d64..11aee50f7a0d42d6722ac0202d4ef979cef9124e 100644
--- a/synapse/appservice/api.py
+++ b/synapse/appservice/api.py
@@ -76,9 +76,6 @@ def _is_valid_3pe_result(r, field):
     fields = r["fields"]
     if not isinstance(fields, dict):
         return False
-    for k in fields.keys():
-        if not isinstance(fields[k], str):
-            return False
 
     return True