Job Update APIエラーのトラブルシューティング
Job Update APIのよくあるエラーと、その解決方法。
エラーの検出方法
Job Update APIはエラーをGraphQLレスポンスとして返します。ほとんどのエラーは、レスポンスボディにエラーの詳細を含めてHTTP 200を返します。
HTTP 200であっても、必ずレスポンスボディのerrors配列を確認してください。
{ "data": null, "errors": [{ "message": "Error description", "extensions": { "code": "FORBIDDEN" } }]}extensions.codeフィールドには、エラーの種類(FORBIDDEN、BAD_USER_INPUT、NOT_FOUNDなど)が含まれます。
FORBIDDENエラー
code | FORBIDDEN |
|---|---|
| 概要 | アクセストークンに、リクエストされたオペレーションの権限がありません。 |
Advertiser is in a restricted moderation status
{ "errors": [{ "extensions": { "code": "FORBIDDEN", "message": "Advertiser is in a restricted moderation status" } }]}OAuthトークンに関連付けられた広告主は、スパム対策措置として制限されています。
解決するには:
- パートナーマネージャーに連絡して、制限を解除してもらいます。
You are missing permissions for this action
{ "errors": [{ "extensions": { "code": "FORBIDDEN", "message": "You are missing permissions for this action. Ask your administrator for the permissions [Hosted_Job Create, Hosted_Job Update, Hosted_Job Read]" } }]}OAuthトークンに関連付けられたユーザーには、求人を更新するために必要な権限がありません。
解決するには:
- OAuthクライアントが管理者ユーザーで作成されていることを確認します。
- OAuthクライアントに関連付けられたユーザーに、
Hosted_Job Create、Hosted_Job Update、Hosted_Job Readの権限を付与します。任意の管理者ユーザーがこの権限を付与できます。Indeedアカウント設定をご覧ください。
Advertiser is requesting an update to a job claimed by a different advertiser
{ "errors": [{ "extensions": { "code": "FORBIDDEN", "message": "Advertiser is requesting an update to EJ (id=<EJID>), but the job is claimed by a different advertiser." } }]}別の広告主がすでにこの求人を更新しています。1つの求人を同時に更新できるのは、1社の広告主のみです。
解決するには:
- OAuthトークンが正しい広告主でリクエストされていることを確認します。
- 別の広告主が求人を更新した場合は、求人の更新を取り消すミューテーションを使用します。
これは、次の場合に発生する可能性があります。
- 代理店が複数の広告主から同じ求人にアクセスできる場合。1社の広告主から求人を更新した後、別の広告主から更新しようとすると、このエラーが発生します。
- 雇用主がUIで求人を編集した場合。代理店がAPIで求人を更新するには、雇用主がUIでこれらの編集を取り消す必要があります。
UNAUTHENTICATEDエラー
code | UNAUTHENTICATED |
|---|---|
| 概要 | OAuthトークンが期限切れか、不正な形式です。 |
{ "errors": [{ "extensions": { "code": "UNAUTHENTICATED" } }]}解決するには:
- OAuthトークンが期限切れになっていないことを確認します(トークンの有効期限は1時間です)。
- 新しいアクセストークンをリクエストします。
- 詳細な解決手順については、OAuthエラーのトラブルシューティングをご覧ください。
BAD_USER_INPUTエラー
code | BAD_USER_INPUT |
|---|---|
| 概要 | リクエストの形式が正しくありません。詳細は |
{ "errors": [{ "extensions": { "code": "BAD_USER_INPUT" } }]}解決するには:
- どのフィールドが無効かについての詳細は、
messageフィールドを確認します。 - リクエストのフィールドが正しい形式であることを確認します。
- 正しい形式のリクエスト例については、APIリファレンスをご覧ください。
NOT_FOUNDエラー
code | NOT_FOUND |
|---|---|
| 概要 | 求人が見つかりません。 |
{ "errors": [{ "extensions": { "code": "NOT_FOUND" } }]}解決するには:
sourcedPostingIdが正しいことを確認します。- OAuthトークンが正しい広告主でリクエストされていることを確認します。リクエスト元の広告主に求人の表示権限がない場合、このエラーが発生します。
DOWNSTREAM_SERVICE_ERRORまたはINTERNAL_SERVER_ERROR
code |
|
|---|---|
| 概要 | 内部サーバーエラーが発生しました。 |
{ "errors": [{ "extensions": { "code": "DOWNSTREAM_SERVICE_ERROR" } }]}解決するには:
- しばらくしてからリクエストを再試行します。
- エラーが続く場合は、パートナーマネージャーにお問い合わせください。
再試行の方針
| エラー | 再試行可能か | 方針 |
|---|---|---|
DOWNSTREAM_SERVICE_ERROR | はい | 指数バックオフ |
INTERNAL_SERVER_ERROR | はい | 指数バックオフ |
UNAUTHENTICATED(トークンの期限切れ) | はい | トークンを更新してから、1回のみ再試行 |
FORBIDDEN | いいえ | 権限を修正 |
BAD_USER_INPUT | いいえ | リクエストを修正 |
NOT_FOUND | いいえ | sourcedPostingIdと広告主を確認 |
サポートを受ける
このガイドに記載されていない問題が発生した場合:
- GraphQLエラーの
messageとextensionsオブジェクトを確認します。 - すべての必須フィールドが存在し、正しい形式であることを確認します。
- まず最小限の入力でテストし、その後フィールドを段階的に追加します。
- Indeedの担当者にお問い合わせください。
関連項目: