お問い合わせメールやチャットほかヘルプデスク管理を効率的に行うためのクラウドベースのソフトウェアソリューション、Zendesk。
Zendeskに関する詳しい説明は省きますが、API経由でzendeskのエンドユーザー作成(カスタマー用アカウント作成)をしようとしたら以下のエラーになりました。
APIのリクエストにはPHP/LaravelおよびGuzzleHttpを使用しています。
GuzzleHttp \ Exception \ ClientException (422)
Client error: `POST https://{subdomein}.zendesk.com/api/v2/users.json?xxxxx...` resulted in a `422 Unprocessable Entity`
Unprocessable Entity
というのが見慣れないエラーメッセージでしたが、
Unprocessable = 加工不可、処理不能
Entity = エンティティ、実体
とすると 「処理できないデータです」 くらいの意味合いでしょうか。
HTTPのレスポンスステータスコードが 422
ということもあり、こちらからリクエストを出しているデータ(パラメータ)に不備がありそうではあります。
Mozilla/MDN web docs - 422 Unprocessable Entity
Zendesk公式のヘルプ記事では以下の情報が見つかりました。
Error : 422 Unprocessable Entity
使用しているエンドポイントが異なるため完全に一致するケースではありませんが、Zendesk側からは以下のやり取りが行われています。
Could you confirm that this user actually exists in your Zendesk instance? Perhaps it did at one point and then was either deleted or merged with another user?
(日本語訳: Google翻訳)このユーザーが実際に Zendesk インスタンスに存在するかどうか確認できますか? おそらく、ある時点では存在していたものの、その後削除されたか、別のユーザーと統合されたのでしょうか?
結論から言えば、今回の自身のエラーに関しては
「同じメールアドレスで重複してユーザー登録をしようとしていたため発生したエラー」
でした。
だから 処理できないデータ ということだったんですかね。
もっとわかりやすいエラーの文面を返してほしいものだと思いますがユーザー周りはデリケートな部分ではあるので(例えばログイン情報登録時にそのメールアドレスで既に情報が存在しているかを悪意あるユーザーに知られるのはよくない等)、あえて表現を曖昧にしているという可能性もあるのかもしれません。
参考URL
zendesk developers - APIドキュメント
HTTP 422エラーの解決方法
HTTPステータスコード422とは