Bad Request

[まとめページに戻る](https://qiita.com/Keiji_otsubo/items/60afc2a8d211b6f7d89f)
[まとめA～M](https://qiita.com/Keiji_otsubo/items/f3ddedee6793bf1576f8)

# 拡張ドメインの影響もある？ 404の時は注意する

+ [Getting 401 Unauthorized Error](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000Otbgp)

# エラーコード別の例

[400 Bad Request](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400)

The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (for example, malformed request syntax, invalid request message framing, or deceptive request routing).


HyperText Transfer Protocol (HTTP) 400 Bad Request 応答ステータス コードは、クライアント エラーであると認識された何かが原因で、サーバーが要求を処理できない、または処理しないことを示します (たとえば、不正な形式の要求構文、無効な要求メッセージのフレーミング、または欺瞞的なもの)。リクエスト ルーティング）。

# 個別事例

+ [Has anyone connected data to your salesforce instance using Connectr?](https://trailhead.salesforce.com/en/trailblazer-community/feed/0D54S00000JdEvV)

```
Salesforce: Invalid response: Status code: 400 - {"error":"invalid_grant","error_description":"authentication failure"} (https://marketstar-hp-bdr.my.salesforce.com/services/oauth2/token) [Array ( [grant_type] => password [client_id] => 3MVG9kBt168mda_8tN7XVmdI70QPoFw1GtXQMWWCWZboZHweK0SDoYJlxS4AOYezIR9VGQdLKbzbjTfzXGsut [client_secret] => 6DED4C9EE1A41B4DB76EE93D35A5E4F20DA7FB9345C0F4483B7F42C7F7CCC790 [username] => bisupport.hpbdr@marketstar.com [password] => +MUl<?K)z=Z<%6p0tB%F6Cel800D4x000007rm3p8884x000002cNMcHTo5pVbyKXNra9AM3raG6xnR8BgsEblbrR78nhfSXTJE9KLDAtHo00MU7DtSKeKNmimAait ) ]
```

+ [Facing error when trying to connect salesforce to other ETL application](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007cluCj)

:::note
Work with your KNIME Analytics platform admin to see whats going on.

Same with your OKTA admin.

Check Salesforce users login history to see if there is an entry telling whats going on. Also this is more of Salesforce admin question.

KNIME Analytics プラットフォーム管理者と協力して、何が起こっているかを確認してください。

OKTA 管理者も同様です。

Salesforce ユーザーのログイン履歴をチェックして、何が起こっているかを示すエントリがあるかどうかを確認します。また、これは Salesforce 管理者の質問です。
:::


# Bad request 400

+ [Bad request 400](https://trailhead.salesforce.com/en/trailblazer-community/feed/0D54S00000G5jwj)

The 400 (Bad Request) status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).

400 (Bad Request) ステータス コードは、クライアント エラー (不正な形式のリクエスト構文、無効なリクエスト メッセージ フレーミング、不正なリクエスト ルーティングなど) が原因で、サーバーがリクエストを処理できない、または処理しないことを示します。

https://kinsta.com/knowledgebase/400-bad-request/


+ [[Salesforce] OAuth 2.0 ユーザ名パスワードフローで"authentication failure"が出たとき](https://qiita.com/fullkawa/items/ab495d874d59011d76f4)

```
{"error":"invalid_grant","error_description":"authentication failure"}
```

[How to get access token and refresh token for connected apps in salesforce](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007XIAPeSAP)

-------------------
+ [How to pass payload in setBody in JSON format in Apex](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000NQvyv)

パラメータが違う

:::note
I had a mismatch in post variable name and parameter in the Rest service

https://salesforce.stackexchange.com/questions/123416/status-bad-request-statuscode-400-on-rest-api-call


Rest サービスのポスト変数名とパラメータが一致しませんでした
:::

+ [【未解決】Einstein Content Selection REST API -- 400 Bad Request](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000PjYlJ)
+ [【未解決】Bad Request error 400](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000QKrJW)
+ [【未解決】How to get access token and refresh token for connected apps in salesforce](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/401)
+ [Implement the OAuth 2.0 Web Server Flow step fails](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000PlwWg)

:::note
This issue can be marked resolved. Turns out that when going through those steps, you have to do them immediately in succession.  I paused to read the instructions and then got pulled away for something at work. When I started the steps from the beginning and just went straight through, it worked. 

この問題は解決済みとしてマークできます。これらの手順を実行するときは、すぐに連続して実行する必要があることがわかりました。私は指示を読むために一時停止しましたが、仕事中に何かのために引っ張られました。最初から手順を開始してまっすぐ進めたところ、うまくいきました。
:::

+ [To get all files from google drive based on folder Id and filename](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V000074s2wX)

:::note
 I was passing folder Id in the double quote that's why I was getting errors. I got the answer, I passed the folder Id in a single quote then I was able to fetch the file.

 フォルダー ID を二重引用符で囲んで渡していたため、エラーが発生していました。答えが得られ、フォルダー ID を一重引用符で囲んで渡すと、ファイルをフェッチできました。
:::

+ [Salesforce API returned 400 level status code: [{'errorCode': 'NOT_FOUND', 'message': 'The requested resource does not exist'}]](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007VIjXo)

:::note
Please check this article.

https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007T42KYSAZ

https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007T4MfpSAF
:::

+ [Error: 400 {"requestId":"365f0478-8c71-499d-8017-93cc35f96ad8","error":{"id":400,"message":"Parameter Missing or Invalid (lineUserId)","code":400,"type":xxxxxxx"}}'.](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007Yvcta)

:::note
try removing the base64 encoding and set the body directly with the requestBody string. 

Also, uncomment the line where you set the 'Content-Type' header to 'multipart/form-data', because the endpoint still might need this to be able to correctly extract the payload.

base64 エンコーディングを削除し、requestBody 文字列を使用して本文を直接設定してみてください。 

また、「Content-Type」ヘッダーを「multipart/form-data」に設定した行のコメントを解除します。これは、エンドポイントがペイロードを正しく抽出できるようにするためにこれが必要になる可能性があるためです。
:::

+ [Special Character in username not allowed while fetching user with SCIM API](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007eqoBg)



:::note alert
This may be due to a special character apostrophe (') in the username. 
{
    "schemas": "[\"urn:ietf:params:scim:api:messages:2.0:Error\"]",
    "detail": "expecting a right parentheses, found 'pert.peter'",
    "status": 400
}
:::

:::note
Try using %27 instead of apostrophe.

https://www.urlencoder.org/enc/apostrophe/
:::

# 401

+ [401 Unauthorized の考察](https://qiita.com/Keiji_otsubo/items/700fc7d33f2f1a2adf93)
+ [REST api 401 response and login history](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000LHo1m)
+ [使用されているセッション ID または OAuth トークンの有効期限が切れているか、無効です。応答本文には、メッセージと errorCode が含まれます。](https://developer.salesforce.com/docs/atlas.en-us.240.0.api_rest.meta/api_rest/errorcodes.htm)
+ [Salesforce failed to complete task: Message: This session is not valid for use with the REST API](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000J6YtU)

:::note alert
{
  "status": 401,
  "message": "Salesforce failed to complete task: Message: This session is not valid for use with the REST API\r\nclientRequestId: XXXXXXXXXX",
  "error": null,
  "source": "Salesforce.Common",
  "errors": []
}
:::

:::note
This problem was associated with Salesforce Connected App Limits. Salesforce permits each user to grant access to a maximum of five connected apps at a time.

I had 6 accesses at the time.

Resolution: Review all the processes and ensure that no more than 5 access is used across salesforce connector in Azure.

https://help.salesforce.com/s/articleView?id=sf.ms_composer_salesforce_reference.htm&type=5

この問題は、Salesforce 接続アプリケーションの制限に関連していました。 Salesforce では、各ユーザが一度に最大 5 つの接続アプリケーションへのアクセスを許可できます。

その時点で6件のアクセスがありました。

解決策: すべてのプロセスを確認し、Azure の salesforce コネクタ間で使用されるアクセスが 5 つ以下であることを確認します。
:::


# 405

+ [405 Error - Unsubscribes](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007akIrA)

:::note
It did end up being the template. I pulled a ticket with Support and it seems that the template we were using were still using http go.pardot links instead of https. As soon as I changed the template, unsubscribes were working again. 
:::

# 406

+ [Assistance Requested on "Header Not Acceptable" error in REST call](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007KFp7K)

:::note alert
"406 Not Acceptable: "[{"errorCode":"NOT_ACCEPTABLE","message":"Accept header specified in HTTP request is not supported: Application/Json, application/*+json"}]"] 
:::

# 409 

+ [Error 409 occurring when trying to create Private Connection for Snowflake](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000MZfZb)

:::note
エラー 409 (「カスタム URL の重複」) は通常、Snowflake プライベート接続に使用しようとしているカスタム URL がすでに別の接続または構成に割り当てられている場合に発生します。この問題を解決するには、次の手順を実行します。

+ 作成しようとしているカスタム URL が一意であり、まだ使用されていないことを確認してください。別の一意の URL を選択してください。
+ 接続の問題が発生している場合は、暗号化されていない秘密キーを使用していることを確認してください。
:::

# 429

+ [【未解決】GA4 Data Sync error in CRM analytics connection ("errorMsg":"HTTP 429: Too many requests")](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007FVLFj)

# 503

+ [「プロキシ経由でトンネリングできません。」について プロキシが HTTP/1.1 503 サービスを利用できません」エラーを返します](https://regardie.dev/post-3370)
+ [force.com callout exception Unable to tunnel through proxy](https://stackoverflow.com/questions/13868350/force-com-callout-exception-unable-to-tunnel-through-proxy)

+ [Integration Procedure: "error": "Unable to tunnel through proxy. Proxy returns \"HTTP/1.1 503 Service Unavailable\"](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007KFN79SAH)
+ [Configure Remote Site Settings](https://help.salesforce.com/s/articleView?id=sf.configuring_remoteproxy.htm&type=5)
+ [【未解決】with Boomi in one of the processes:](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007ZB9JQ)

:::note alert
Error received executing Salesforce Get; Caused by: com.boomi.util.retry.RetryException: com.boomi.model.connector.common.salesforce.SalesforceException: Error received for Salesforce Query; Caused by: Error received for Salesforce Query; Caused by: Error invoking soap operation; Caused by: The server sent HTTP status code 503: Service Unavailable
:::

hyperforceになって、IPアドレスが変わったからと思ったけど、非hyperforceの本番環境でもエラーになるらしい

+ [Application Error 503"](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007clLP2)

:::note
I accomplished it the same day. I simply waited 15 min and tried again. It got fixed on its own. 
:::

# 508

+ [Are Lightning list view/Record detail pages compliant with 508 standards.](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007KWzeK)

# oas3 

+ [Getting 404 Error on GET with URI and locator ID from POST Response](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000Pj6M3)

If the locator were invalid or improperly formatted, a `400` error would be returned. 

+ [Getting 400 error when getting generated spec](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000PeSs8)

:::note
I understood the problem and solved it. Because of the 6 hour rule, I had created another user to generate the spec for all the resources. So, I made the post request to create this spec with the new user token. In the request to get the specification, I was using the old user's token, which although valid, was not the user configured in the connected app. The older user had not access to the new generated spec, so the locator was invalid for that user (I guess). When I entered the new token I was able to get the specification.

問題を理解して解決しました。6 時間ルールのため、すべてのリソースの仕様を生成する別のユーザーを作成しました。そこで、新しいユーザー トークンを使用してこの仕様を作成するように投稿リクエストを行いました。仕様を取得する要求で、古いユーザーのトークンを使用していました。これは有効ですが、接続されたアプリケーションで構成されたユーザーではありませんでした。古いユーザーは新しく生成された仕様にアクセスできなかったため、ロケーターはそのユーザーには無効でした (推測)。新しいトークンを入力すると、仕様を取得できました。
:::

# 302

+ [REST APIでアクセストークンの取得したいが、取得できない。](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007T4dfq)

HTTP/1.1 302 Found 
拡張ドメインでSandboxのURLがmyがついていることが原因？


# Error: 530003 (Azure)

+ [Salesforce Mobile SSO Login Giving Error: 530003 (Azure)](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000HDMYG)

:::note
This may happen with an environment which has been configured to use Edge to authennticate the device is a corporate owned.

The cause of the issue is that Salesforce app uses to SSO with build-in brower even if the device has configured to use Edge for a default browser.

これは、デバイスが企業所有であることを認証するために Edge を使用するように構成されている環境で発生する可能性があります。

この問題の原因は、デバイスがデフォルトのブラウザとして Edge を使用するように設定されている場合でも、Salesforce アプリケーションが組み込みブラウザで SSO を使用することです。
:::