When I am trying to insert records to Salesforce using ARC(OAuth2) getting below error Error: This session could not be mutually authenticated for use with the REST API

"message": "This session could not be mutually authenticated for use with the REST API",

403 Forbidden

But this working fine before. I getting this error suddenly.

Can anyone help me with this?

Thanks in advance

2 Answers 2


This is in the documentation:

If a login call is made from the API for a user with an expired or temporary password, subsequent API calls to custom Apex REST Web service methods aren't supported and result in the MUTUAL_AUTHENTICATION_FAILED error. Reset the user's password and make a call with an unexpired password to be able to call Apex Web service methods.

You need to set a new password to continue. Note that other types of REST API calls will also fail, but this seems to be the only explicit mention of this error message; other similar resources claim that the error also occurs for other types of REST API calls.

  • Thanks for the reply. I can able to get the access token but the issue occurs only when making an API call to upsert the records. Commented Oct 16, 2018 at 6:57
  • @LavanyaSanathkumar You can still log in to reset your password, but other methods are blocked. Have you tried setting a new password?
    – sfdcfox
    Commented Oct 16, 2018 at 7:04
  • thanks for the reply. Yes, it's working fine when I changed the password. Commented Oct 16, 2018 at 7:47
  • 1
    Thanks to @sfdcfox for that answer. For us, resetting the password worked only after this system permission was removed from the user via profile/permission set: Enforce SSL/TLS Mutual Authentication Most users likely won't run into this, but is something to consider when troubleshooting this.
    – c.jones
    Commented Oct 30, 2019 at 20:43
  • @c.jones - I have the same issue. But I have to enforce TLS per requirement. But I'm facing this issue "MUTUAL_AUTHENTICATION_FAILED". Commented Jan 10, 2020 at 23:23

I faced the same issue but it didn't work with changing the password. The reason is I was using Mutual TLS enforced. For this use case the request should use port 8443 explicitly.

curl -v --cacert cacert.crt --cert cert.pem --key private.key -X POST   https://mydomain.my.salesforce.com:8443/services/data/v47.0/sobjects/Case

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .