FastOG
Topik

Error API — Arti Setiap Kode dan Cara Memperbaikinya

FastOG mengembalikan kode error yang dapat dibaca mesin saat sebuah permintaan gagal — render OG image yang ditandatangani, atau panggilan ke salah satu permukaan admin di dalam produk. Setiap respons error menyertakan:

  • error — token pendek lama. Tetap ada pada setiap kegagalan agar klien lama tetap berfungsi.
  • code — kode error stabil dan terdokumentasi yang sama (tabel di bawah), dengan nama yang digunakan API publik.
  • message — deskripsi satu kalimat tentang apa yang salah.
  • hint — deskripsi singkat dalam bahasa sederhana tentang apa yang salah dan cara memperbaikinya.
  • docs_url — tautan ke halaman ini, berjangkar pada bagian untuk kode tersebut.
  • request_id — mengorelasikan kegagalan HTTP ini ke sebuah baris di tabel Render Logs pada dashboard (juga dikembalikan dalam header respons X-Request-ID). Permukaan yang tidak memiliki apa pun untuk dikorelasikan menjawab null, tetapi key tersebut selalu ada.

Permukaan di dalam produk — admin Shopify, WooCommerce Studio, jembatan Wix, dan demo — menjawab dengan envelope yang sama untuk kode-kode di bawah, sehingga sebuah kegagalan berarti hal yang sama di mana pun Anda menjumpainya. Permukaan modul dapat mempertahankan status HTTP yang selalu dikembalikannya untuk sebuah kode (misalnya render_failed menjawab 503 pada ekspor cover dan 502 pada API publik); kode, pesan, hint, dan tautan docs tidak berubah.

Membaca respons error

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-..."
}

Jika Anda menerima respons yang tidak dipahami, jalur tercepat adalah:

  1. Catat code.
  2. Periksa pembangun URL Anda — sebagian besar kegagalan adalah bug penandatanganan (signing), bukan masalah akun.
  3. Cocokkan kode di bawah ini untuk penyebab dan perbaikan yang tepat.
  4. Di dashboard, buka Render Logs dan filter dengan error_code yang sama — setiap baris menampilkan parameter yang diminta sehingga Anda dapat mereproduksi (dan memastikan request_id cocok).

Penandatanganan & autentikasi

missing_signature

Permintaan Anda tidak menyertakan parameter kueri key dan/atau s (signature).

Perbaikan: pastikan URL Anda menyertakan key=<api-key> dan s=<hmac-signature>. Gunakan SDK atau panduan /docs/hmac-signature-guide untuk membangunnya.

invalid_signature

Nilai s tidak cocok dengan yang dihasilkan oleh secret HMAC Anda untuk URL ini.

Perbaikan: signature mencakup setiap parameter kueri kecuali s, dengan kunci yang diurutkan. Mengubah parameter apa pun — termasuk mengubah urutan, perbedaan pengodean URL, atau menambahkan spasi — akan membatalkan signature. Tandatangani ulang setelah setiap perubahan. Pastikan secret Anda sama dengan yang ditampilkan saat API key dibuat.

invalid_signature_format

Nilai s bukan string hex 64 karakter.

Perbaikan: signature harus berupa hex SHA-256 mentah (huruf kecil a-f0-9). Jika Anda melakukan pengodean base64 atau memotong output, gunakan hex biasa.

expired_timestamp

Timestamp t yang Anda berikan sudah lebih dari 5 menit.

Perbaikan: buat ulang timestamp setiap kali Anda membangun URL. Kode ini berlaku untuk alur signed-URL lama; alur HMAC v2 saat ini tidak memiliki timestamp.

invalid_api_key

key yang Anda berikan tidak ada.

Perbaikan: salin API key lengkap dari dashboard — itu adalah pengenal publik yang dimulai dengan sk_. Ini bersifat publik dan aman digunakan di URL; secret (tidak pernah di URL) adalah yang membuktikan kepemilikan.

missing_hmac_secret

API key tidak memiliki secret HMAC yang dikonfigurasi.

Perbaikan: buat API key baru di dashboard — secret HMAC dibuat dan ditampilkan sekali saat pembuatan.


Parameter / input

invalid_image_url

Prop yang membawa URL (image, brand_logo, logo, avatar, background_image, ...) bukan URL http(s) publik.

Perbaikan: teruskan URL https://... yang dapat diambil secara publik. Localhost, IP privat, dan path tanpa domain ditolak untuk mencegah server-side request forgery.


Langganan

subscription_required (402)

Permintaan mencapai Dynamic API tetapi akun Anda tidak memiliki paket aktif. Akses API bersifat khusus langganan: paket adalah gerbangnya, dan paket tersebut membawa cakupan + tingkatan kemampuan yang sama dengan yang dijual aplikasi FastOG. Render itu sendiri tidak diukur — tidak ada kuota render bulanan dan tidak ada penagihan kelebihan.

Perbaikan: pilih paket Dynamic API di dasbor dan buat kunci API. Respons menyertakan top_up_url yang mengarah ke halaman paket.


Layanan render

store_blocked (403)

Render untuk toko di balik key ini telah dijeda oleh FastOG (misalnya penyalahgunaan atau penggunaan berlebihan). Cover yang sudah di-cache di edge dapat terus disajikan hingga kedaluwarsa. Hubungi support untuk menyelesaikannya; tidak ada yang dapat Anda ubah dalam permintaan yang akan memperbaiki ini.

render_unreachable

Layanan render tidak dapat dijangkau (jendela restart singkat).

Perbaikan: coba lagi dalam beberapa detik. Render tidak dihitung untuk percobaan ini.

render_failed

Layanan render mengembalikan error untuk permintaan Anda.

Perbaikan: verifikasi props template Anda — nilai yang terlalu panjang/malformed, field yang tidak didukung, atau gambar upstream yang tidak dapat dijangkau. Respons menyertakan status yang mendasarinya. Render tidak dihitung.


Permukaan admin toko

Kode-kode ini menjawab dari admin Shopify dan WooCommerce Studio — editor tertanam tempat merchant bekerja, bukan dari API yang ditandatangani. Beberapa di antaranya dipakai bersama dengan API publik (invalid_image_url, render_failed, invalid_signature); kode tersebut tetap memakai entri yang didokumentasikan di atas.

Kode HTTP Arti dan tindakan yang perlu dilakukan
invalid_shop 422 Toko Shopify tidak dapat diidentifikasi. Muat ulang aplikasi FastOG dari admin Shopify Anda agar permintaan tersemat membawa data toko kembali, lalu coba lagi.
invalid_shop_or_page 422 Toko atau jenis halaman tidak dikenal. Buka aplikasi FastOG dari admin Shopify Anda dan pilih jenis halaman sampul dari editor.
invalid_store 422 Toko WooCommerce tidak dapat diidentifikasi. Buka kembali Studio dari admin WordPress Anda agar token toko disertakan kembali, lalu coba lagi.
invalid_store_or_page 422 Toko atau jenis halaman tidak dikenal. Buka kembali Studio dari admin WordPress Anda dan pilih jenis halaman sampul yang ditawarkan editor.
missing_api_key 422 Toko tidak memiliki kunci penandatanganan (signing key). Selesaikan instalasi plugin dari admin WordPress Anda agar FastOG dapat menerbitkan kunci penandatanganan untuk toko.
store_ownership_unverified 403 Situs WordPress tidak dapat diverifikasi. Situs harus dapat diakses melalui HTTPS publik dengan REST API aktif.
community_is_free 422 Paket Community gratis. Paket ini adalah paket default gratis dan tidak dapat dibeli; pilih tingkat berbayar untuk melakukan upgrade.
not_installed 404 FastOG belum terpasang untuk toko ini. Pasang aplikasi FastOG dari Shopify App Store untuk toko ini, lalu buka kembali.
oauth_required 409 Toko perlu mengotorisasi FastOG kembali. Jalankan kembali instalasi OAuth FastOG dari admin Shopify Anda; hibah (grant) yang tersimpan telah dicabut atau cakupannya berubah.
reconnect_required 409 Koneksi Shopify perlu dibangun ulang. Gunakan tombol Reconnect di aplikasi FastOG agar access token baru diterbitkan.
token_rejected 409 Shopify menerbitkan access token lalu menolaknya. Coba reconnect sekali lagi; jika Shopify terus menolaknya, pasang ulang aplikasi.
unauthorized 401 Permintaan tidak membawa sesi yang valid untuk antarmuka ini. Muat ulang aplikasi FastOG dari admin platform Anda agar session token baru disertakan, lalu coba lagi.
shop_not_found 404 Toko tidak lagi ada di FastOG. Pasang ulang FastOG dari admin Shopify Anda untuk membuat ulang data toko.
invalid_product 422 Referensi produk tidak valid. Muat ulang halaman produk dan buka kembali FastOG; product id yang dikirim tidak ada atau bukan angka.
invalid_product_cover 422 Payload sampul produk tidak valid. Muat ulang editor dan simpan lagi; props, style, dan signals masing-masing harus berupa objek.
product_not_found 404 Produk tidak dapat dibaca dari toko. Periksa apakah produk masih ada dan sudah dipublikasikan, lalu muat ulang editor.
product_customization_not_on_plan 403 Kustomisasi sampul per produk tidak tersedia pada paket ini. Lakukan upgrade, atau edit sampul produk bersama (shared) sebagai gantinya.
no_product_handles 422 Tidak ada produk yang ditemukan untuk disegarkan. Publikasikan setidaknya satu produk dengan handle publik, lalu coba lagi penyegaran pratinjau berbagi (share preview).
invalid_style 422 Blok style tidak dapat digunakan. Muat ulang editor dan pilih ulang warna serta font; salah satu nilai tidak dapat dinormalisasi.
invalid_template 422 Template yang diminta tidak ada dalam katalog platform ini. Pilih salah satu tata letak yang ditawarkan editor.
invalid_preset 422 Nama preset bukan salah satu yang ditawarkan platform ini. Pilih preset dari layar penyiapan.
invalid_set 422 Payload kumpulan sampul (cover set) tidak ada atau tidak valid. Muat ulang layar penyiapan dan pilih kumpulan lagi.
preset_not_applyable 422 Preset tidak dapat diterapkan ke semua jenis halaman. Pilih preset lain; preset ini tidak memiliki sampul untuk setidaknya satu jenis halaman.
template_not_available 422 Template tidak ada dalam katalog yang dapat dirender. Pilih tata letak yang ditawarkan pemilih.
template_not_available_on_shopify 422 Template tidak tersedia di toko Shopify. Pilih tata letak yang ditawarkan editor Shopify.
template_not_available_on_woocommerce 422 Template tidak tersedia di toko WooCommerce. Pilih tata letak yang ditawarkan Studio.
template_unavailable 422 Template tidak tersedia untuk toko ini. Pilih tata letak yang ditawarkan editor; template tersebut sudah dihentikan, tidak dikenal, atau melebihi yang boleh digunakan toko.
template_not_on_plan 403 Template memerlukan paket yang lebih tinggi. Ubah paket, atau pilih tata letak yang tercakup dalam paket saat ini. Respons menyebutkan paket pada requires.
template_requires_higher_plan 403 Template memerlukan paket yang lebih tinggi. Respons menyebutkan paket pada requires.
no_rule 404 Belum ada aturan sampul untuk jenis halaman ini. Simpan sampul untuk jenis halaman ini di editor terlebih dahulu.
cover_not_configured 404 Belum ada sampul produk yang disimpan. Simpan sampul produk sebelum mengunduh atau membagikannya.
schedule_only_product 422 Penjadwalan kampanye hanya tersedia untuk sampul produk. Hapus tanggal pengembalian (revert date), atau pindahkan kampanye ke sampul produk.
not_dismissible 422 Pengumuman tersebut tidak dapat ditutup. Muat ulang halaman; pengumuman sudah dihentikan atau milik toko lain.
unsupported_locale 422 Bahasa UI tersebut tidak disertakan untuk aplikasi ini. Pilih salah satu bahasa yang tercantum dalam respons pada supported.
no_setup_sets 422 Tidak ada kumpulan sampul pilihan (curated) yang dapat disusun. Coba lagi layar penyiapan; jika tetap kosong, hubungi dukungan.
export_unavailable 403 Unduhan tidak tersedia pada paket ini. Lakukan upgrade ke Pro atau lebih tinggi untuk mengunduh file sampul.
cancellation_failed 502 Pembatalan langganan ditolak. Coba lagi sebentar lagi; jika terus gagal, batalkan dari halaman penagihan Shopify atau hubungi dukungan.
logo_override_on_plan 403 Penggantian logo (logo override) tidak tersedia pada paket ini. Lakukan upgrade, atau hapus penggantian logo.
invalid_logo 422 File logo bukan gambar yang diterima. Unggah PNG, JPEG, atau WebP di bawah batas ukuran yang ditampilkan di editor.
invalid_brand_image 422 Gambar referensi merek tidak dapat digunakan. Unggah gambar yang didukung di bawah batas ukuran, atau hapus referensi dan simpan lagi.
brand_image_too_large 422 Gambar referensi merek terlalu besar. Perkecil file dan unggah lagi.
brand_colors_too_many 422 Lebih dari tiga warna merek dikirim. Kirim paling banyak tiga warna hex.
upload_failed 500 File yang diunggah tidak dapat disimpan. Coba lagi; jika terus gagal, hubungi dukungan — penyimpanan aset tidak mengembalikan URL publik.
attachment_upload_failed 500 Lampiran dukungan tidak dapat disimpan. Kirim pesan tanpa lampiran, lalu kirim file tersebut melalui email ke dukungan.
invalid_webhook 401 Tanda tangan webhook toko tidak terverifikasi. Periksa apakah webhook secret di pengaturan FastOG WordPress Anda cocok dengan yang diterbitkan FastOG.
not_found 404 Endpoint tersebut tidak lagi ada. Buka kembali Studio dari admin WordPress Anda.
meta_refresh_unavailable 503 Penyegaran pratinjau berbagi belum dikonfigurasi. Bagikan ulang tautan dari Facebook sebagai gantinya.
theme_write_disabled 409 Pengeditan tema tidak diaktifkan untuk aplikasi ini. Gunakan theme app embed alih-alih perbaikan file tema.
scope_required 403 FastOG kekurangan izin Shopify. Setujui cakupan yang diminta menggunakan consent_url pada respons, lalu coba lagi perbaikannya.

Bridge Wix

Bridge Wix ditandatangani oleh aplikasi Wix, bukan sesi merchant, sehingga kegagalannya ditujukan kepada pengembang aplikasi. Setiap respons tetap membawa code dan request_id; id permintaan bridge adalah id dari envelope yang ditandatangani.

Kode HTTP Arti dan tindakan yang perlu dilakukan
invalid_bridge_signature 401 Tanda tangan bridge Wix tidak terverifikasi. Buat ulang permintaan dengan shared secret, path yang persis, dan timestamp yang usianya di bawah lima menit.
invalid_bridge_body 400 Body envelope bridge tidak valid. Kirim body sebagai objek JSON dan enkode setiap angka di dalamnya sebagai string, agar tanda tangan kanonik cocok.
replayed_bridge_request 401 Permintaan bridge tersebut sudah pernah digunakan. Buat request_id baru untuk setiap panggilan yang mengubah data.
wix_site_not_installed 403 FastOG tidak terpasang di situs Wix ini. Pasang aplikasi FastOG di situs tersebut, lalu buka kembali.
wix_site_not_provisioned 422 Situs Wix belum memiliki kredensial penandatanganan. Pasang ulang aplikasi FastOG agar situs diprovisikan dengan API key.
invalid_page_type 422 Jenis halaman tersebut bukan salah satu yang didukung FastOG di Wix. Kirim salah satu jenis halaman yang ditawarkan Studio.
rule_not_found 404 Tidak ada aturan dengan id tersebut. Segarkan daftar; aturan tersebut telah dihapus atau milik situs lain.
invalid_target_id 422 Id target Wix tidak valid untuk jenis halaman ini. Kirim id yang disediakan aplikasi Wix untuk jenis halaman tersebut.
invalid_preview 422 Payload pratinjau tidak valid. Baca objek details untuk field yang bermasalah.
invalid_rule 422 Payload aturan sampul tidak valid. Baca objek details; template wajib diisi dan blok opsional harus berupa objek.
invalid_sync 422 Payload sinkronisasi tidak valid. Baca objek details; target_type dan target_id harus sesuai.
invalid_regenerate_url 422 URL yang akan dibuat ulang tidak ada. Kirim URL halaman di url.
invalid_regenerate_host 422 URL tersebut bukan milik host FastOG. Kirim URL sampul fastog.com.
ai_presets_unsupported 422 Set sampul hasil desain AI tidak lagi dibuat. Pilih salah satu tampilan kurasi sebagai gantinya.
original_tags_required 422 Tag metadata asli wajib diisi. Kirim original_tags (atau current_tags) agar uninstall dapat memulihkan metadata situs.
invalid_restored 422 Payload kunci yang dipulihkan tidak valid. Kirim restored sebagai array berisi kunci metadata.
invalid_seo_target 422 Jenis target SEO tidak dikenal. Gunakan site, pattern, atau item di path.
invalid_seo_payload 422 Payload metadata SEO tidak valid. Kirim target_id, current_tags, dan fastog_url sebagai URL http(s) absolut.
sync_failed 500 Sinkronisasi metadata ke Wix gagal. Coba lagi; jika terus gagal, periksa apakah situs dapat dijangkau dan aplikasi masih terpasang.
invalid_tier 422 Paket tersebut bukan salah satu paket yang dijual FastOG di Wix. Kirim starter, pro, atau scale sebagai tier.

Permukaan demo

Demo ini adalah konsol penjualan khusus pemilik, bukan endpoint merchant.

Kode HTTP Arti dan tindakan yang perlu dilakukan
url_required 422 Tidak ada URL yang dikirim. Tempelkan tautan toko atau produk sebelum membaca kartu.
unreadable_url 422 Halaman tersebut tidak dapat dibaca. Periksa apakah tautannya publik dan lengkap; halaman di balik login tidak dapat dibaca.
no_api_key 422 Tidak ada API key yang tersedia untuk menandatangani cover. Buat API key (atau masukkan yang valid); respons menautkan ke halaman API keys.
no_presets 500 Tidak ada preset cover yang dikonfigurasi. Konfigurasikan setidaknya satu preset di server.

Kode editor aturan terbatas

Editor aturan terbatas (admin Shopify dan WooCommerce Studio) menerjemahkan token-token ini sendiri ke dalam bahasa merchant, sehingga responsnya membawa error dan code tetapi tidak membawa hint — deskripsi bahasa Inggris kedua hanya akan menyimpang dari versi terlokalisasi yang benar-benar dilihat merchant:

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.


Masih mengalami kendala?

  • Buka halaman Render Logs di dashboard — setiap hasil (berhasil + ditolak) tercantum beserta error_code, status HTTP, dan parameter yang diminta.
  • Jalankan php artisan og:diagnose pada URL yang sudah ditandatangani untuk menelusuri seluruh pipeline dan melihat tahap mana yang gagal.
  • Periksa dokumentasi di sidebar untuk framework yang Anda gunakan (Next.js, Express, SvelteKit, ...).

Coba gratis — tanpa perlu mendaftar

Pratinjau dan uji gambar OG dinamis dalam hitungan detik.

Buka Penguji Gambar OG Gratis

A BeCaSimulations site