422エラーとは?発生する原因や解決策、対策方法などを紹介

422エラーとは、ユーザーがWebページを閲覧しているときに表示されるエラーコードの一種で、Webブラウザなどのクライアントからサーバーへリクエストを送った際にリクエストの記述内容に誤りがなかったにもかかわらず、内容を適切に処理できずエラーとなってしまったときに表示されます。
422エラーは、一定時間が経過しても自然に解消せず、問題を修正しない限り繰り返し表示されるため注意が必要です。
この記事では、422エラーが表示された際に考えられる原因や解決策、エラーを防ぐための対策方法などをご紹介します。
執筆者

マーケティングサポート「バンソウ」のメディア管理人
株式会社クリエイティブバンクのマーケティングサポート「バンソウ」のメディア管理人。得意分野は、SEO全般・サイト分析・オウンドメディア・コンテンツマーケティング。バンソウはクライアント様のBtoBマーケティングをサポートするサービスです。詳しい内容はこちらをご覧ください。
422エラーとは
422エラーとは、422 Unprocessable Entity(処理できない内容)のことです。Webサーバー上のファイルなどをクライアントであるWebブラウザで使用できるようにする際に、サーバーがコードの内容を理解できていても、内容を適切に処理できなかった場合に表示されます。
503エラーなど一時的に生じるエラーとは異なり、422エラーはリクエストの問題を解消できるまで繰り返し表示されるため、422エラーが表示された場合はなるべく早く対処することが大切です。
422エラーが発生したときに考えられる原因
422エラーは、コードの記述や文法に誤りがなく、サーバーが記述内容を理解できたとしても、記述内容がリクエスト内容に対して無効なデータであった場合に表示されます。例えば、以下のようなケースで422エラーが発生することが多いです。
フィールド内の入力内容の間違い
日付を入力するフィールドに、日付以外の文章などが入力されていたり、数字を入力するフィールドにひらがなや英字、記号など数字以外の内容が入力されていたりする場合にエラーが起こることがあります。
特定の文字種での入力を指定したい場合は、あらかじめ該当のフィールドを数字や英字のみ入力可能なように設定するなど対策するとよいでしょう。
送信データとAPIの仕様の不一致
APIを利用している場合は、APIリクエストで送信したデータがAPIの仕様と合致していないと、422エラーとして返されてしまうことが多いです。
APIリクエストを送信する際は、あらかじめAPIドキュメントで指定されている形式、データ型に沿ってデータを作成するようご注意ください。
入力必須のフィールドが空欄
問い合わせフォームやアンケートを送信したときなど、「名前」「電話番号」といった入力必須項目として指定されているフィールドが空欄のまま送信された際にエラーが生じることがあります。
リクエストの送信前には、入力必須とされているフィールドに内容が記述できているかを必ず確認することで、エラーの発生を防げるでしょう。
422エラーの解決策
ここまで、422エラーが発生した際に考えられる主な原因をご紹介しました。ここからは、上記のような原因からエラーが生じた際にどのように対処すればよいのか、解決策をご紹介します。
各入力フィールドへの入力内容の確認
それぞれの入力フィールド内に記述した内容が、指定された形式で正しく入力できているかを事前に確認しましょう。氏名の「フリガナ」にはカタカナ、「電話番号」には数字、「メールアドレス」には半角英数字と記号など、指定と異なる文字種が入力されていないかをチェックします。
異なる文字種が入力されることを防ぐために、各入力フィールドに指定の文字種を明記したり、フィールド内に入力例を表示させたりするのもおすすめです。
APIドキュメントの仕様を確認する
APIリクエストを送信する際は、APIドキュメント内にリクエスト内容が適切に記されているかを確認しましょう。リクエストが実行されるエンドポイントによってはパラメータが必要な場合もあるため、仕様に合わせてリクエストを作成することが重要です。
エンドポイントに合わせて適切な形式のAPIドキュメントの作成や管理ができる専用ツールを活用するのもおすすめです。
必須項目への入力内容の確認
入力必須項目と指定されている箇所にすべて内容が記述されているかを確認しましょう。空欄があるとエラーが発生する可能性があるため、必須項目と任意項目を入力時にも確認しながら進めることが大切です。
なお、入力必須項目を作成する際は、必須であることをわかりやすく示せるようフィールドを目立たせたり、注意書きを加えたりするのもよいでしょう。
422エラーを表示させないための対策
ここまで、422エラーが表示されたときに考えられる原因や解決策をご紹介しました。ユーザーや開発者がWebページを操作したときに422エラーが表示されてしまうことを防ぐためには、以下のような対策方法があげられます。
エラーメッセージを表示する
ユーザーがフォームを入力し、入力内容を送信したときなどに無効なデータが送信された際は、422エラーのみを表示させるのではなく、どこにエラーが生じているかを具体的に示すエラーメッセージを表示するとよいでしょう。
例えば、電話番号を入力する箇所にひらがななど数字以外の文字が入力されていた場合は、電話番号の入力欄に「数字を入力してください」とメッセージを表示させるといった方法があげられます。
このように、送信内容に対するエラーメッセージを表示させることで、ユーザーや開発者はどこを修正したらよいかをすぐに理解しやすくなるため、修正をスムーズに行えるでしょう。
リアルタイムバリデーションを活用する
リアルタイムバリデーションとは、各フィールドに入力された内容をリアルタイムでチェックし、内容に誤りがあった場合や、入力必須項目に何も入力されていなかった場合に警告メッセージが表示される機能です。
このようにリアルタイムバリデーションを活用することで、ユーザーの入力漏れによるエラーを防げるようになるでしょう。
サーバーにバリデーションを実装する
リアルタイムバリデーションに加えて、サーバーにもバリデーションを実装しましょう。サーバーでバリデーションを行うことで、サーバー側でもリクエストされたデータの形式などを確認できるため、無効なデータが送信された際も適切に処理できます。
また、サーバーでバリデーションを行うことによって、第三者によってサーバーの脆弱性を狙った不正なデータ登録などを防げるため、セキュリティの強化にもつながります。
422エラーとそのほかのエラーコードとの違い
ここまで、422エラーとは何かを、表示される原因や表示させないための対策方法などとあわせてご紹介しました。最後に、500エラーなどそのほかのエラーコードと422エラーとの違いをご紹介します。
422と数字が近い場合でも、エラー箇所などがそれぞれ異なるため、ぜひあわせて覚えておくことをおすすめします。
500エラーとの違い
500エラー(Internal Server Error)は、サーバー側で異常が起こり、クライアントからのリクエストを正常に処理できなかった際に表示されるエラーコードです。422エラーはクライアント側に原因があるのに対して、500エラーはサーバー側に問題があるため、Webサイトを閲覧しているユーザーには対処できない点が異なります。
500エラーが生じた際は、サーバーにアクセスが集中して負荷がかかっているか、サーバーに不具合が起きているかが主な原因として考えられるため、サーバーを契約している会社へ問い合わせて解決を促しましょう。
415エラーとの違い
415エラー(Unsupported Media Type)は、サーバーが受け取ったデータ内でサポートされていないメディアが含まれており、正常に認識・処理できなかった際に表示されるエラーコードです。
422エラーでは、送信されたデータ自体はサーバーが認識しているものの、必要項目が未入力など無効なデータが送信された際に表示される点で異なります。
415エラーはSEO対策においても重要で、エラーをそのままにしておくと、検索エンジンが該当のWebページの内容を理解できず、インデックス登録がされないままになってしまう恐れもあるため、注意が必要です。
400エラーとの違い
400エラー(Bad Request)は、クライアントからサーバーへ送信されたリクエストの内容に何らかの不具合があり、正常に処理できなかった際に表示されるエラーです。
400エラーは、URLを入力し間違えたときなど、リクエストで送信したデータの記述に誤りがあった場合に表示されることが多いです。一方で422エラーでは、リクエストで送信したデータの記述に誤りはないものの、無効なデータとして認識されてしまい、正常にサーバーで処理ができなかった際に表示される点が異なります。
400エラーが表示された際は、まずURLが正しく入力されているかを確認しましょう。そのほかにも、ファイルサイズが大きすぎたり、キャッシュ・Cookieが破損していたりすることが原因でエラーが生じる場合もあるため、URLの確認とあわせてブラウザのキャッシュやCookieの削除も行うことをおすすめします。
そのほかの400番台のエラーについては、以下の記事をご確認ください。
まとめ
この記事では、422エラーが表示された際に考えられる原因や解決策、エラーを防ぐための対策方法などをご紹介しました。
422エラーは、フォームなどにユーザーが内容を入力した際に必須項目が空欄のまま送信されてしまったときなど、送信内容が無効なデータとして取り扱われた際に表示されます。
Webサイトで問い合わせフォームやアンケートなどを設置する際は、リアルタイムバリデーションを実装し、必須項目を目立たせたり警告メッセージを表示させたりすることで、422エラーが発生する頻度の低下につながるでしょう。