トピック

APIエラー — 各コードの意味と修正方法

FastOGは、リクエストが失敗したとき — 署名付きOG画像のレンダリング、または製品内の管理画面のいずれかへの呼び出し — に機械可読なエラーコードを返します。すべてのエラーレスポンスには次のものが含まれます:

  • error — 従来の短いトークンです。古いクライアントが引き続き動作するよう、すべての失敗時に今も含まれます。
  • code — 同じ安定した文書化済みのエラーコード(下表)を、公開APIが使用する名前で示したものです。
  • message — 何が問題だったかを1文で説明したものです。
  • hint — 何が問題だったか、そして修正方法を簡潔な平易な言葉で説明したものです。
  • docs_url — このページへのリンクで、該当するコードのセクションにアンカーされています。
  • request_id — このHTTP失敗をダッシュボードのRender Logsテーブルの行に関連付けます(X-Request-IDレスポンスヘッダーでも返されます)。関連付ける対象がない画面ではnullを返しますが、キーは常に存在します。

製品内の画面 — Shopify管理画面、WooCommerce Studio、Wixブリッジ、デモ — は、以下のコードに対して同じエンベロープで応答するため、どこで遭遇しても失敗の意味は同じです。モジュール画面では、コードに対して従来から返しているHTTPステータスを維持する場合があります(たとえばrender_failedはカバーエクスポートでは503、公開APIでは502を返します)。コード、メッセージ、ヒント、ドキュメントリンクは変わりません。

エラーレスポンスを読む

json
{
  "error": "invalid_signature",
  "code": "invalid_signature",
  "message": "The signature does not match.",
  "hint": "The signature did not match. Re-sign with your HMAC secret after every param change.",
  "request_id": "5f2a9c1e-..."
}

理解できないレスポンスが返ってきた場合、最も早い解決手順は次のとおりです。

  1. code を確認します。
  2. URL ビルダーを確認します — 失敗のほとんどはアカウントの問題ではなく、署名のバグです。
  3. 以下に示すコードと照合して、正確な原因と修正方法を特定します。
  4. ダッシュボードで Render Logs を開き、同じ error_code でフィルタリングします — 各行にはリクエストされたパラメータが表示されるため、再現できます(また request_id が一致することも確認できます)。

署名と認証

missing_signature

リクエストに key および/または s (署名) クエリパラメータが含まれていません。

修正: URL に key=<api-key> と s=<hmac-signature> の両方が含まれていることを確認してください。SDK または /docs/hmac-signature-guide のチュートリアルを使用して URL を構築してください。

invalid_signature

s の値が、この URL に対して HMAC シークレットが生成する値と一致しませんでした。

修正: 署名は s を除くすべてのクエリパラメータを対象とし、キーはソートされます。パラメータを変更すると (並び順の変更、URL エンコードの差異、空白の追加など)、署名は無効になります。変更のたびに再署名してください。シークレットが API キー作成時に表示されたものと同じであることを確認してください。

invalid_signature_format

s の値が 64 文字の 16 進文字列ではありません。

修正: 署名は生の SHA-256 16 進数 (小文字の a-f0-9) である必要があります。出力を base64 エンコードしたり切り詰めたりしている場合は、プレーンな 16 進数を使用してください。

expired_timestamp

指定した t タイムスタンプが 5 分以上前のものです。

修正: URL を構築するたびにタイムスタンプを再生成してください。このコードはレガシーの署名付き URL フローに適用されます。現在の HMAC v2 フローにはタイムスタンプはありません。

invalid_api_key

渡した key が存在しません。

修正: ダッシュボードから完全な API キーをコピーしてください。これは sk_ で始まる公開識別子です。公開情報であり、URL に含めても安全です。所持を証明するのはシークレット (URL には絶対に含めない) です。

missing_hmac_secret

API キーに HMAC シークレットが設定されていません。

修正: ダッシュボードで新しい API キーを作成してください。HMAC シークレットは作成時に一度だけ生成・表示されます。


パラメータ / 入力

invalid_image_url

URL を含むプロパティ(image、brand_logo、logo、avatar、background_image、...)が公開された http(s) URL ではありません。

修正: 公開アクセス可能な https://... URL を渡してください。サーバーサイドリクエストフォージェリを防ぐため、localhost、プライベート IP、およびパスのみの指定は拒否されます。


サブスクリプション

subscription_required (402)

リクエストは Dynamic API に到達しましたが、アカウントに有効なプランがありません。API アクセスはサブスクリプション限定です。プランがゲートとなっており、FastOG アプリで販売されているものと同じカバレッジとケイパビリティの段階が適用されます。レンダリング自体は従量制ではありません。月間のレンダリングクォータや超過課金はありません。

修正方法: ダッシュボードで Dynamic API プランを選択し、API キーを作成してください。レスポンスにはプランページを指す top_up_url が含まれます。


レンダリングサービス

store_blocked (403)

このキーの背後にあるストアのレンダリングは、FastOG によって一時停止されています(不正利用や過剰な使用など)。エッジにすでにキャッシュされているカバーは、有効期限が切れるまで配信され続ける場合があります。解決するにはサポートに連絡してください。リクエスト側で変更してもこの問題は解決しません。

render_unreachable

レンダリングサービスに到達できませんでした(短時間の再起動期間)。

修正: 数秒後に再試行してください。この試行のレンダリングはカウントされていません。

render_failed

レンダリングサービスがリクエストに対してエラーを返しました。

修正: テンプレートの props を確認してください。長すぎる、または不正な形式の値、サポートされていないフィールド、到達できない上流の画像などが原因です。レスポンスには基になる status が含まれます。レンダリングはカウントされていません。


ストア管理画面

これらのコードは、Shopify 管理画面と WooCommerce Studio から返されます。これらは署名付き API ではなく、マーチャントが作業する埋め込みエディタです。いくつかは公開 API と共通です(invalid_image_url、render_failed、invalid_signature)。それらは上記で文書化されているエントリを維持します。

コード HTTP 意味と対処方法
invalid_shop 422 Shopify ショップを特定できませんでした。Shopify 管理画面から FastOG アプリを再読み込みして、埋め込みリクエストにショップ情報が再度含まれるようにしてから、再試行してください。
invalid_shop_or_page 422 ショップまたはページタイプが不明です。Shopify 管理画面から FastOG アプリを開き、エディターでカバーのページタイプを選択してください。
invalid_store 422 WooCommerce ストアを特定できませんでした。WordPress 管理画面から Studio を開き直して、ストアトークンが再度提示されるようにしてから、再試行してください。
invalid_store_or_page 422 ストアまたはページタイプが不明です。WordPress 管理画面から Studio を開き直し、エディターが提供するカバーのページタイプを選択してください。
missing_api_key 422 ストアに署名キーがありません。WordPress 管理画面からプラグインのインストールを完了して、FastOG がストアに署名キーを発行できるようにしてください。
store_ownership_unverified 403 WordPress サイトを検証できませんでした。サイトは公開 HTTPS で到達可能であり、REST API が有効になっている必要があります。
community_is_free 422 Community プランは無料です。これは無料の既定プランであり購入できません。アップグレードするには有料プランを選択してください。
not_installed 404 このショップには FastOG がインストールされていません。Shopify App Store からこのショップに FastOG アプリをインストールしてから、開き直してください。
oauth_required 409 ショップが FastOG を再度承認する必要があります。Shopify 管理画面から FastOG の OAuth インストールを再度実行してください。保存されていた許可が取り消されたか、スコープが変更されています。
reconnect_required 409 Shopify 接続を再確立する必要があります。FastOG アプリの「再接続」ボタンを使用して、新しいアクセストークンを発行してください。
token_rejected 409 Shopify がアクセストークンを発行したものの、そのトークンを拒否しました。再接続を一度再試行してください。Shopify が拒否し続ける場合は、アプリを再インストールしてください。
unauthorized 401 この画面に対して有効なセッションがリクエストに含まれていません。プラットフォームの管理画面から FastOG アプリを再読み込みして、新しいセッショントークンが付与されるようにしてから、再試行してください。
shop_not_found 404 ショップが FastOG に存在しなくなりました。Shopify 管理画面から FastOG を再インストールして、ショップレコードを再作成してください。
invalid_product 422 商品参照が有効ではありません。商品ページを再読み込みして FastOG を開き直してください。送信された商品 id が欠落しているか、数値ではありませんでした。
invalid_product_cover 422 商品カバーのペイロードが不正です。エディターを再読み込みして再度保存してください。props、style、signals はそれぞれオブジェクトである必要があります。
product_not_found 404 ストアから商品を読み取れませんでした。商品が存在し公開されていることを確認してから、エディターを再読み込みしてください。
product_customization_not_on_plan 403 商品ごとのカバーカスタマイズはこのプランでは利用できません。アップグレードするか、共有の商品カバーを編集してください。
no_product_handles 422 更新する商品が見つかりませんでした。公開ハンドルを持つ商品を少なくとも 1 つ公開してから、共有プレビューの更新を再度試してください。
invalid_style 422 スタイルブロックが使用できません。エディターを再読み込みして、色とフォントを選び直してください。いずれかの値を正規化できませんでした。
invalid_template 422 要求されたテンプレートはこのプラットフォームのカタログにありません。エディターが提供するレイアウトのいずれかを選択してください。
invalid_preset 422 プリセット名はこのプラットフォームが提供するものではありません。セットアップ画面からプリセットを選択してください。
invalid_set 422 カバーセットのペイロードが欠落しているか不正です。セットアップ画面を再読み込みして、セットを選び直してください。
preset_not_applyable 422 このプリセットはすべてのページタイプに適用できません。別のプリセットを選択してください。このプリセットには少なくとも 1 つのページタイプのカバーが欠けています。
template_not_available 422 テンプレートはレンダリング可能なカタログにありません。ピッカーが提供するレイアウトを選択してください。
template_not_available_on_shopify 422 テンプレートは Shopify ストアでは利用できません。Shopify エディターが提供するレイアウトを選択してください。
template_not_available_on_woocommerce 422 テンプレートは WooCommerce ストアでは利用できません。Studio が提供するレイアウトを選択してください。
template_unavailable 422 テンプレートはこのストアでは利用できません。エディターが提供するレイアウトを選択してください。廃止済み、不明、またはストアが描画できる範囲を超えています。
template_not_on_plan 403 テンプレートにはより上位のプランが必要です。プランを変更するか、現在のプランで利用できるレイアウトを選択してください。レスポンスの requires にプラン名が示されています。
template_requires_higher_plan 403 テンプレートにはより上位のプランが必要です。レスポンスの requires にプラン名が示されています。
no_rule 404 このページタイプのカバールールはまだありません。先にエディターでこのページタイプのカバーを保存してください。
cover_not_configured 404 商品カバーがまだ保存されていません。ダウンロードまたは共有する前に、商品カバーを保存してください。
schedule_only_product 422 キャンペーンのスケジュール設定は商品カバーにのみ存在します。復帰日を削除するか、キャンペーンを商品カバーに移動してください。
not_dismissible 422 そのお知らせは非表示にできません。ページを再読み込みしてください。すでに廃止されているか、別のショップに属しています。
unsupported_locale 422 その UI 言語はこのアプリにバンドルされていません。レスポンスの supported に一覧表示されている言語のいずれかを選択してください。
no_setup_sets 422 厳選されたカバーセットを組み立てられませんでした。セットアップ画面を再試行してください。空のままの場合はサポートにお問い合わせください。
export_unavailable 403 ダウンロードはこのプランでは利用できません。カバーファイルをダウンロードするには Pro 以上にアップグレードしてください。
cancellation_failed 502 サブスクリプションのキャンセルが拒否されました。しばらくしてから再試行してください。失敗し続ける場合は、Shopify の請求ページからキャンセルするか、サポートにお問い合わせください。
logo_override_on_plan 403 ロゴの上書きはこのプランでは利用できません。アップグレードするか、ロゴの上書きを解除してください。
invalid_logo 422 ロゴファイルが受け付けられる画像ではありません。エディターに表示されるサイズ上限以下の PNG、JPEG、または WebP をアップロードしてください。
invalid_brand_image 422 ブランド参照画像が使用できません。サイズ上限以下のサポート対象画像をアップロードするか、参照を解除して再度保存してください。
brand_image_too_large 422 ブランド参照画像が大きすぎます。ファイルを縮小して再度アップロードしてください。
brand_colors_too_many 422 ブランドカラーが 3 色を超えて指定されました。16 進カラーは最大 3 色まで送信してください。
upload_failed 500 アップロードされたファイルを保存できませんでした。再試行してください。失敗し続ける場合はサポートにお問い合わせください。アセットストアが公開 URL を返しませんでした。
attachment_upload_failed 500 サポート添付ファイルを保存できませんでした。添付ファイルなしでメッセージを送信し、その後ファイルをサポート宛てにメールしてください。
invalid_webhook 401 ストアの Webhook 署名を検証できませんでした。WordPress の FastOG 設定にある Webhook シークレットが、FastOG が発行したものと一致していることを確認してください。
not_found 404 そのエンドポイントは存在しなくなりました。WordPress 管理画面から Studio を開き直してください。
meta_refresh_unavailable 503 共有プレビューの更新が構成されていません。代わりに Facebook からリンクを再共有してください。
theme_write_disabled 409 このアプリではテーマ編集が有効になっていません。テーマファイルの修正ではなく、テーマアプリ埋め込みを使用してください。
scope_required 403 FastOG に Shopify の権限が不足しています。レスポンスの consent_url を使用して要求されたスコープを承認してから、修正を再試行してください。

Wix ブリッジ

Wix ブリッジはマーチャントのセッションではなく Wix アプリによって署名されるため、その失敗はアプリ開発者に向けたものになります。どのレスポンスにも引き続き code と request_id が含まれます。ブリッジのリクエスト id は、署名済みエンベロープのものが使われます。

コード HTTP 意味と対処方法
invalid_bridge_signature 401 Wix ブリッジの署名を検証できませんでした。共有シークレット、正確なパス、および 5 分以内のタイムスタンプでリクエストを再発行してください。
invalid_bridge_body 400 ブリッジのエンベロープ本文が不正です。body を JSON オブジェクトとして送信し、その中のすべての数値を文字列としてエンコードして、正規化署名が一致するようにしてください。
replayed_bridge_request 401 そのブリッジリクエストはすでに使用済みです。変更を伴う呼び出しごとに新しい request_id を発行してください。
wix_site_not_installed 403 この Wix サイトに FastOG がインストールされていません。サイトに FastOG アプリをインストールしてから、再度開いてください。
wix_site_not_provisioned 422 Wix サイトに署名用の認証情報がまだありません。FastOG アプリを再インストールして、サイトに API キーをプロビジョニングしてください。
invalid_page_type 422 そのページタイプは Wix 上で FastOG が対応しているものではありません。Studio が提供するページタイプのいずれかを送信してください。
rule_not_found 404 その id のルールは存在しません。一覧を更新してください。ルールが削除されたか、別のサイトに属しています。
invalid_target_id 422 Wix のターゲット id がこのページタイプに対して有効ではありません。そのページタイプに対して Wix アプリが提供する id を送信してください。
invalid_preview 422 プレビューのペイロードが不正です。失敗したフィールドについて details オブジェクトを確認してください。
invalid_rule 422 カバールールのペイロードが不正です。details オブジェクトを確認してください。template は必須で、任意のブロックはオブジェクトである必要があります。
invalid_sync 422 同期のペイロードが不正です。details オブジェクトを確認してください。target_type と target_id が一致している必要があります。
invalid_regenerate_url 422 再生成する URL がありません。ページ URL を url で送信してください。
invalid_regenerate_host 422 その URL は FastOG のホストに属していません。fastog.com のカバー URL を送信してください。
ai_presets_unsupported 422 AI がデザインしたカバーセットは生成されなくなりました。代わりにキュレーションされたルックのいずれかを選択してください。
original_tags_required 422 元のメタデータタグが必要です。アンインストール時にサイトのメタデータを復元できるよう、original_tags(または current_tags)を送信してください。
invalid_restored 422 復元キーのペイロードが不正です。restored をメタデータキーの配列として送信してください。
invalid_seo_target 422 SEO ターゲットタイプが不明です。パスには site、pattern、item のいずれかを使用してください。
invalid_seo_payload 422 SEO メタデータのペイロードが不正です。target_id、current_tags、fastog_url を絶対 http(s) URL として送信してください。
sync_failed 500 Wix へのメタデータ同期に失敗しました。再試行してください。失敗し続ける場合は、サイトに到達可能でアプリがまだインストールされていることを確認してください。
invalid_tier 422 そのプランは FastOG が Wix で販売しているものではありません。tier として starter、pro、scale のいずれかを送信してください。

デモ画面

デモはオーナー専用の販売コンソールであり、マーチャント向けのエンドポイントではありません。

コード HTTP 意味と対処方法
url_required 422 URL が送信されていません。カードを読み取る前に、ストアまたは商品のリンクを貼り付けてください。
unreadable_url 422 そのページを読み取れませんでした。リンクが公開されており完全なものであることを確認してください。ログインの背後にあるページは読み取れません。
no_api_key 422 カバーに署名するための API キーがありません。API キーを作成するか(または有効なキーを入力してください)、レスポンスには API キーページへのリンクが含まれています。
no_presets 500 カバープリセットが設定されていません。サーバー上で少なくとも 1 つのプリセットを設定してください。

スコープルールエディタのコード

スコープルールエディタ(Shopify 管理画面および WooCommerce Studio)は、これらのトークンをマーチャント自身の言語に自ら翻訳するため、そのレスポンスには error と code が含まれますが hint は含まれません。英語の説明を別途追加すると、マーチャントが実際に目にするローカライズ済みの説明とずれてしまうだけです。

scope_already_defined、scoped_rule_limit_reached、scoped_rules_not_on_plan、 scope_value_required、scope_value_too_long、unknown_scope_type、base_rule_required、 scoped_rules_product_only、cannot_delete_base_rule。


まだ解決しませんか?

  • ダッシュボードの Render Logs ページを開いてください。すべての結果(成功と拒否の両方)が error_code、HTTP ステータス、リクエストされたパラメータとともに一覧表示されます。
  • 署名済み URL に対して php artisan og:diagnose を実行すると、パイプライン全体をたどってどの段階で失敗するかを確認できます。
  • サイドバーのドキュメントで、使用しているフレームワーク(Next.js、Express、SvelteKit など)の項目を確認してください。

無料で試す — サインアップ不要

動的OG画像を数秒でプレビューおよびテスト。

無料のOG画像テスターを開く

A BeCaSimulations site