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 などのエラータイプを特定します。
GraphQL に到達する前に発生する OAuth エラーについては、OAuthエラーのトラブルシューティング をご覧ください。
次のエラーが発生する可能性があります:
- FORBIDDEN
- UNAUTHENTICATED
- BAD_USER_INPUT
- NOT_FOUND
- DOWNSTREAM_SERVICE_ERROR または INTERNAL_SERVER_ERROR
FORBIDDEN エラー
アクセストークンに、要求された操作を実行する権限がありません。具体的な原因は message フィールドで確認してください。
広告主が制限されたモデレーションステータスにある
{ "errors": [{ "extensions": { "code": "FORBIDDEN", "message": "Advertiser is in a restricted moderation status" } }]}OAuth トークンに関連付けられた広告主は、スパム対策のため制限された状態です。
このエラーはまれです。発生した場合は、担当のパートナーマネージャーに連絡して制限を解除してもらってください。
この操作に必要な権限がない
{ "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 account settings をご覧ください。
別の広告主が保有する求人に更新をリクエストしている
{ "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 エラー
OAuth トークンの有効期限が切れているか、形式が不正です。
{ "errors": [{ "extensions": { "code": "UNAUTHENTICATED" } }]}解決するには:
- OAuth トークンの有効期限が切れていないことを確認します。トークンの有効期間は 1 時間です。
- 新しいアクセストークンをリクエストします。
- OAuthエラーのトラブルシューティング をご覧ください。
BAD_USER_INPUT エラー
リクエストの形式が不正です。
{ "errors": [{ "extensions": { "code": "BAD_USER_INPUT" } }]}解決するには:
- 無効なフィールドを特定するため、
messageフィールドを確認します。 - リクエストのフィールドが正しい形式であることを確認します。
- リクエスト例については、次の API リファレンスをご覧ください:
NOT_FOUND エラー
Indeed で求人が見つかりません。
{ "errors": [{ "extensions": { "code": "NOT_FOUND" } }]}解決するには:
sourcedPostingIdが正しいことを確認します。- OAuth トークンが正しい広告主に対してリクエストされたことを確認します。
このエラーは、リクエストした広告主にその求人を表示する権限がない場合にも発生することがあります。
DOWNSTREAM_SERVICE_ERROR または INTERNAL_SERVER_ERROR
内部サーバーエラーが発生しました。
{ "errors": [{ "extensions": { "code": "DOWNSTREAM_SERVICE_ERROR" } }]}または:
{ "errors": [{ "extensions": { "code": "INTERNAL_SERVER_ERROR" } }]}解決するには:
- しばらくしてからリクエストを再試行します。
- エラーが続く場合は、担当のパートナーマネージャーにお問い合わせください。
求人が拒否された場合
拒否された求人 をご覧ください。
再試行戦略
次のエラーは再試行してください:
DOWNSTREAM_SERVICE_ERRORとINTERNAL_SERVER_ERROR: 指数バックオフを使用して再試行します。UNAUTHENTICATED(トークンの期限切れ): トークンを更新してから 1 回再試行します。
次のエラーは再試行しないでください。まず原因を解消します:
FORBIDDEN: 権限の問題を解消します。BAD_USER_INPUT: リクエストを修正します。NOT_FOUND:sourcedPostingIdと広告主を確認します。
サポートを受ける
このページで扱っていない問題が発生した場合:
- GraphQL の
messageフィールドとextensionsフィールドを確認します。 - 必須フィールドがすべて存在し、正しい形式であることを確認します。
- まず最小限の入力でテストし、その後フィールドを段階的に追加します。
- Indeed の担当者にお問い合わせください。
関連項目
- OAuthエラーのトラブルシューティング — GraphQL にアクセスする前に発生する可能性がある OAuth エラーをトラブルシューティングします。
- GraphQL エラーをトラブルシューティングする。
- エラーリファレンス — Indeed API のエラーコード、メッセージ、HTTP ステータスコードを検索します。