Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MSC4178: Additional Error Codes for requestToken endpoint #4178

Merged
merged 6 commits into from
Sep 3, 2024
Merged
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions proposals/4178-threepid-medium-not-supported.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# MSC4178: Error codes for requestToken

There are a number of ways that sending a token to validate a third party identifier can go wrong.
The requestToken API, however, has a very limited number of error codes that it can return.

Firstly, homeservers may not always support adding email addresses or phone numbers to a user's account,
however, there is no error code to signal this situation. Synapse currently returns `M_UNKNOWN`
which leads to bad, untranslatable error messages.

Secondly, the supplied third party identifier may be invalid.

## Proposal
anoadragon453 marked this conversation as resolved.
Show resolved Hide resolved

Firstly, Add the `M_THREEPID_MEDIUM_NOT_SUPPORTED` code to be returned by both
[`/account/3pid/email/requestToken`](https://spec.matrix.org/v1.11/client-server-api/#post_matrixclientv3account3pidemailrequesttoken)
and
[`/account/3pid/msisdn/requestToken`](https://spec.matrix.org/v1.11/client-server-api/#post_matrixclientv3account3pidmsisdnrequesttoken),
anoadragon453 marked this conversation as resolved.
Show resolved Hide resolved
defined to mean that the homeserver does not support adding a third party identifier of that medium.

Secondly, allow these endpoints to also return `M_INVALID_PARAM`, to indicate that the third party identifier parameter
was not a valid identifier for that medium (eg. not a valid phone number).
dbkr marked this conversation as resolved.
Show resolved Hide resolved

## Potential issues

None forseen
anoadragon453 marked this conversation as resolved.
Show resolved Hide resolved

## Alternatives

A better UX would be for servers to advertise what third party identifiers that support adding so that clients can
anoadragon453 marked this conversation as resolved.
Show resolved Hide resolved
inform users before they try to do so. This should be in addition rather than as alternative though: the clearest
possible API will come from having both.

## Security considerations

None forseen
anoadragon453 marked this conversation as resolved.
Show resolved Hide resolved

## Unstable prefix

This is sufficiently simple that proving it on a large scale is unnecessary. The code should not be used in the open
before the MSC has been accepted.

## Dependencies

None