422

状態符号 422 (HTTP)

[1] 422 (Unprocessable Entity) は、要求payload body に含まれているデータが構文的には正しいものの、 内容が仕様的に正しくなく処理できないことを表す状態符号です。

仕様書

意味

[4] 422 は、要求payload bodyMIME型は理解でき、構文的には正しかったものの、 記述されている指示に従って処理することはできなかったことを表す状態符号です >>3

[2] MIME型に対応していない時は、 415 がより適当です >>3
[5] payload body が構文的に正しくない時は、 400 がより適当です >>3
[11] 整形式であっても要素の構造が仕様上正しくない時には 400 を返すともされており、 422 との使い分けはよくわかりません。 (PROPFIND (>>44)参照。)
[10] 外部実体参照が含まれ、がこれを拒絶したい時は、 403 を使うことになっています。

[23] このように 4xx エラーの意味はかなり細分されていて、 一見便利そうですが、 実応用に当てはめて考えてみるとその使い分けは必ずしも明確とはいえません。 一方で、 エラーの細分化は要求の送信者に十分な情報を与えることが主たる目的ですが (他にはサーバーのアクセスログからエラーの分析を行うための便宜というのもあるでしょう)、 そのために十分なほどに細分化されているとはいえません。 つまり帯に短し𧜎に長しというべき状況なのであります。

[24] 応用は、 状態符号の選択に迷うのであれば、 400 を使えばよろしいでしょう。 適用可能性に自信がないところで敢えて 422 を使う必要性はありません。 エラーの詳細は、 応答JSON 形式で含めるなり、 HTTPヘッダーに適宜記述するなり、 クライアントが扱いやすい方法を採ればよい。

文脈

[13] PATCH 要求payload body を理解できるものの、 処理はできない場合には、 422 応答を返すべきです >>12

[14] 例えばパッチ文書を適用した結果 XML文書整形式でなくなるなら、 422 応答を返すことができます >>12

実装

[9] 要求JSON を求める Web API で、入力が期待される構造でなかった時に 422 応答が返されることがよくあります。

[15] Linked Data Patch Format ( 版) https://dvcs.w3.org/hg/ldpwg/raw-file/ldpatch/ldpatch.html#h-error-handling

[16] RFC 7482 - Registration Data Access Protocol (RDAP) Query Format ( 版) https://tools.ietf.org/html/rfc7482#section-4.1

If a server receives a search request but cannot process the request

because it does not support a particular style of partial match

searching, it SHOULD return an HTTP 422 (Unprocessable Entity)

[RFC4918] response. When returning a 422 error, the server MAY also

return an error response body as specified in Section 6 of [RFC7483]

if the requested media type is one that is specified in [RFC7480].

[6] Uber API Reference Guide ( 版) https://developer.uber.com/v1/api-reference/

422 Invalid request. The request body is parse-able however with invalid content or there are issues with a rider's user account.

[17] Asterisk Project : Asterisk 12 Applications REST API () http://www.hiastar.com/download/Asterisk-Admin-Guide/Asterisk-12-Applications-REST-API_26478371.html

422 - Event source does not exist.

[18] Asterisk Project : Asterisk 12 Bridges REST API () http://www.hiastar.com/download/Asterisk-Admin-Guide/Asterisk-12-Bridges-REST-API_22773911.html

422 - Channel not in Stasis application

[19] API reference overview | Postmark Developer Documentation ( (Wildbit, LLC著, )) http://developer.postmarkapp.com/developer-api-overview.html

422 — Unprocessable Entity

Something with the message isn’t quite right, this could be malformed JSON or incorrect fields. In this case, the response body contains JSON {ErrorCode: 405, Message: "details"} with an API error code and message containing details on what went wrong.

[20] Mapbox API Documentation () https://www.mapbox.com/api-documentation/#directions-errors

InvalidInput 422 The given request was not valid. The message key of the response will hold an explanation of the invalid input.

[21] RFC 5323 - Web Distributed Authoring and Versioning (WebDAV) SEARCH () https://tools.ietf.org/html/rfc5323#section-5.11

[22] GitHubAPI要求に含まれる公開鍵が未対応の形式 (秘密鍵形式の場合を含みます。) のとき、 422 を返すようです。

歴史

[7] RFC 2518 (WebDAV) 10.3 422 Unprocessable Entity

The 422 (Unprocessable Entity) status code means the server understands the content type of the request entity (hence a 415(Unsupported Media Type) status code is inappropriate), and the syntax of the request entity is correct (thus a 400 (Bad Request) status code is inappropriate) but was unable to process the contained instructions. For example, this error condition may occur if an XML request body contains well-formed (i.e., syntactically correct), but semantically erroneous XML instructions.

422 (処理不能実体) 状態符号は、 サーバーが要求実体の内容型は理解した (従って 415 (未対応の媒体型) 状態符号は不適切である) し、要求実体は正しい (従って 400 (悪い要求) 状態符号は不適切である) ものの含まれている指示を処理することができなかったことを意味します。 例えば、 XML 要求本体が整形式である (つまり構文的には正しい) が意味的に誤っている XML 指示のときにこの誤り状況が発生するかもしれません。

[8] S-HTTP は別の意味 (SHTTP Proxy Authentication Required) で使っていました >>423

メモ

[25] Issues - GitHub Docs () https://docs.github.com/en/rest/issues/issues

422

Validation failed