When a client tries to add a phone number to their account, they first need to call /requestToken on the homeserver. The user will get a code sent via SMS and give it to the client. At this point the client doesn't know where to submit this token because there is no spec'd /submitToken endpoint.
This is solved in MSC2078 by having a submit_url parameter returned on Client-Server /requestToken calls, so clients knew where to submit the token.
Up until this point, Synapse has ignored this as it's only needed for phone numbers and Synapse does not support handling phone numbers on its own. However, due to recent privacy work there is a case where a homeserver may be delegating phone number sending to one identity server, and the client may have configured to use another, or none at all!
The client is thus unsure where to submit the token to, and adding a phone number to the user's account fails.
Synapse needs to implement the submit_url response parameter in MSC2078 to fix this.
This will be done in two parts. First is adding a POST /add_threepid/email/submit_token endpoint to Synapse which will simply proxy to the threepid delegate if one is configured. The second is to return this URL when the client calls .../requestToken.