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を返します)。コード、メッセージ、ヒント、ドキュメントリンクは変わりません。
エラーレスポンスを読む
{
"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-..."
}
理解できないレスポンスが返ってきた場合、最も早い解決手順は次のとおりです。
codeを確認します。- URL ビルダーを確認します — 失敗のほとんどはアカウントの問題ではなく、署名のバグです。
- 以下に示すコードと照合して、正確な原因と修正方法を特定します。
- ダッシュボードで 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 など)の項目を確認してください。