API-virheet — Mitä kukin koodi tarkoittaa ja miten se korjataan
FastOG palauttaa koneellisesti luettavia virhekoodeja, kun pyyntö epäonnistuu — allekirjoitettu OG-kuvan renderöinti tai kutsu johonkin tuotteen sisäiseen hallintapintaan. Jokainen virhevastaus sisältää:
error— vanha lyhyt tunniste. Yhä mukana jokaisessa virheessä, jotta vanhempi asiakasohjelma toimii edelleen.code— sama vakaa, dokumentoitu virhekoodi (taulukko alla) sillä nimellä, jota julkinen API käyttää.message— yhden lauseen kuvaus siitä, mikä meni pieleen.hint— lyhyt selkokielinen kuvaus siitä, mikä meni pieleen ja miten se korjataan.docs_url— linkki tälle sivulle, ankkuroituna kyseisen koodin osioon.request_id— yhdistää tämän HTTP-virheen dashboardin Render Logs -taulukon riviin (palautetaan myösX-Request-ID-vastausotsakkeessa). Pinta, jolla ei ole mitään yhdistettävää, vastaanull, mutta avain on aina mukana.
Tuotteen sisäiset pinnat — Shopify-hallinta, WooCommerce Studio, Wix-silta ja demo — vastaavat
samalla kirjekuorella alla oleville koodeille, joten virhe tarkoittaa samaa asiaa missä ikinä sen kohtaat. Moduulipinta
voi säilyttää HTTP-tilakoodin, jonka se on aina palauttanut tietylle koodille (esimerkiksi render_failed
vastaa 503 kansikuvan viennissä ja 502 julkisessa API:ssa); koodi, viesti, vihje ja dokumentaatiolinkki eivät muutu.
Virhevastauksen lukeminen
{
"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-..."
}
Jos saat vastauksen, jota et ymmärrä, nopein tapa on:
- Kirjaa ylös
code. - Tarkista URL-rakentajasi — useimmat virheet johtuvat allekirjoitusbugeista, eivät tiliin liittyvistä ongelmista.
- Katso alla olevasta taulukosta tarkka syy ja korjaus.
- Avaa hallintapaneelissa Render Logs ja suodata samalla
error_code:lla — jokainen rivi näyttää pyydetyt parametrit, joten voit toistaa tilanteen (ja varmistaa, ettärequest_idtäsmää).
Allekirjoitus ja todennus
missing_signature
Pyynnöstäsi puuttuu key- ja/tai s-kyselyparametri (allekirjoitus).
Korjaus: varmista, että URL sisältää sekä key=<api-key> että s=<hmac-signature>. Käytä SDK:ta tai /docs/hmac-signature-guide-läpikäyntiä sen rakentamiseen.
invalid_signature
s-arvo ei vastannut sitä, mitä HMAC-salaisuutesi tuottaa tälle URL:lle.
Korjaus: allekirjoitus kattaa jokaisen kyselyparametrin paitsi s, avaimet lajiteltuina. Minkä tahansa parametrin muuttaminen — mukaan lukien uudelleenjärjestely, URL-koodauksen erot tai välilyönnin lisääminen — mitätöi allekirjoituksen. Allekirjoita uudelleen jokaisen muutoksen jälkeen. Varmista, että salaisuutesi on sama, joka näytettiin API-avainta luotaessa.
invalid_signature_format
s-arvo ei ole 64 merkin heksadesimaalimerkkijono.
Korjaus: allekirjoituksen on oltava raaka SHA-256 -heksadesimaali (pienet kirjaimet a-f0-9). Jos base64-koodaat tai katkaiset tulosteen, käytä pelkkää heksadesimaalia.
expired_timestamp
Antamasi t-aikaleima on yli 5 minuuttia vanha.
Korjaus: luo aikaleima uudelleen joka kerta, kun rakennat URL:n. Tämä koodi koskee vanhaa allekirjoitetun URL:n toimintatapaa; nykyisessä HMAC v2 -toimintatavassa ei ole aikaleimaa.
invalid_api_key
Antamaasi key ei ole olemassa.
Korjaus: kopioi täysi API-avain hallintapaneelista — se on julkinen tunniste, joka alkaa merkillä sk_. Se on julkinen ja turvallinen URL:issa; salaisuus (ei koskaan URL:issa) on se, joka todistaa hallussapidon.
missing_hmac_secret
API-avaimelle ei ole määritetty HMAC-salaisuutta.
Korjaus: luo uusi API-avain hallintapaneelissa — HMAC-salaisuus luodaan ja näytetään kerran luonnin yhteydessä.
Parametri / syöte
invalid_image_url
URL-osoitteen sisältävä prop (image, brand_logo, logo, avatar, background_image, ...) ei ole julkinen http(s)-URL.
Korjaus: välitä julkinen, haettavissa oleva https://...-URL. Localhost, yksityiset IP-osoitteet ja pelkät polut hylätään palvelinpuolen pyyntöjen väärentämisen (SSRF) estämiseksi.
Tilaus
subscription_required (402)
Pyyntö osui Dynamic API -rajapintaan, mutta tililläsi ei ole aktiivista suunnitelmaa. API-käyttö on vain tilauksella: suunnitelma on edellytys, ja se sisältää saman kattavuus- ja ominaisuusportaikon, jota FastOG-sovellukset myyvät. Itse renderöintejä ei laskuteta — kuukausittaista renderöintikiintiötä tai ylityslaskutusta ei ole.
Korjaus: valitse Dynamic API -suunnitelma hallintapaneelista ja luo API-avain. Vastaus sisältää top_up_url, joka osoittaa suunnitelmasivulle.
Renderöintipalvelu
store_blocked (403)
FastOG on keskeyttänyt tämän avaimen taustalla olevan kaupan renderöinnin (esimerkiksi väärinkäytön tai hallitsemattoman käytön vuoksi). Edgeen jo välimuistiin tallennetut kuvat voivat jatkaa tarjoilua, kunnes ne vanhenevat. Ota yhteyttä tukeen asian ratkaisemiseksi; mikään pyynnössä tehtävä muutos ei korjaa tätä.
render_unreachable
Renderöintipalveluun ei saatu yhteyttä (lyhyt uudelleenkäynnistysikkuna).
Korjaus: yritä uudelleen muutaman sekunnin kuluttua. Renderöintiä ei laskettu tästä yrityksestä.
render_failed
Renderöintipalvelu palautti virheen pyynnöllesi.
Korjaus: tarkista mallisi props-arvot — pitkät/virheelliset arvot, tukemattomat kentät tai tavoittamaton upstream-kuva. Vastaus sisältää taustalla olevan status. Renderöintiä ei laskettu.
Verkkokaupan ylläpitoliittymät
Nämä koodit vastaavat Shopify-administa ja WooCommerce Studiosta — upotetuista editoreista, joissa kauppias
työskentelee allekirjoitetun API:n sijaan. Useat ovat yhteisiä julkisen API:n kanssa (invalid_image_url,
render_failed, invalid_signature); ne säilyttävät yllä dokumentoidun merkinnän.
| Koodi | HTTP | Mitä se tarkoittaa ja mitä tehdä |
|---|---|---|
invalid_shop |
422 | Shopify-kauppaa ei voitu tunnistaa. Lataa FastOG-sovellus uudelleen Shopify-hallinnastasi, jotta upotettu pyyntö sisältää kaupan tiedot jälleen, ja yritä sitten uudelleen. |
invalid_shop_or_page |
422 | Kauppa tai sivutyyppi on tuntematon. Avaa FastOG-sovellus Shopify-hallinnastasi ja valitse kansisivun tyyppi editorista. |
invalid_store |
422 | WooCommerce-kauppaa ei voitu tunnistaa. Avaa Studio uudelleen WordPress-hallinnastasi, jotta kaupan token välitetään jälleen, ja yritä sitten uudelleen. |
invalid_store_or_page |
422 | Kauppa tai sivutyyppi on tuntematon. Avaa Studio uudelleen WordPress-hallinnastasi ja valitse kansisivun tyyppi, jonka editori tarjoaa. |
missing_api_key |
422 | Kaupalla ei ole allekirjoitusavainta. Viimeistele liitännäisen asennus WordPress-hallinnastasi, jotta FastOG voi myöntää kaupalle sen allekirjoitusavaimen. |
store_ownership_unverified |
403 | WordPress-sivustoa ei voitu vahvistaa. Sen on oltava tavoitettavissa julkisen HTTPS:n kautta ja REST API:n on oltava käytössä. |
community_is_free |
422 | Community-suunnitelma on ilmainen. Se on ilmainen oletussuunnitelma, eikä sitä voi ostaa; valitse maksullinen taso päivittääksesi. |
not_installed |
404 | FastOG ei ole asennettu tälle kaupalle. Asenna FastOG-sovellus Shopify App Storesta tälle kaupalle ja avaa se sitten uudelleen. |
oauth_required |
409 | Kaupan on valtuutettava FastOG uudelleen. Suorita FastOG OAuth -asennus uudelleen Shopify-hallinnastasi; tallennettu valtuutus peruutettiin tai sen käyttöoikeudet muuttuivat. |
reconnect_required |
409 | Shopify-yhteys on muodostettava uudelleen. Käytä FastOG-sovelluksen Reconnect-painiketta, jotta uusi access token myönnetään. |
token_rejected |
409 | Shopify myönsi access tokenin ja hylkäsi sen sitten. Yritä uudelleenyhdistämistä kerran; jos Shopify hylkää sen edelleen, asenna sovellus uudelleen. |
unauthorized |
401 | Pyynnössä ei ole kelvollista istuntoa tälle käyttöliittymälle. Lataa FastOG-sovellus uudelleen alustasi hallinnasta, jotta uusi istuntotoken liitetään, ja yritä sitten uudelleen. |
shop_not_found |
404 | Kauppaa ei enää ole FastOGissa. Asenna FastOG uudelleen Shopify-hallinnastasi kaupan tietueen luomiseksi uudelleen. |
invalid_product |
422 | Tuoteviittaus ei ole kelvollinen. Lataa tuotesivu uudelleen ja avaa FastOG uudelleen; lähetetty tuotetunnus puuttui tai ei ollut numeerinen. |
invalid_product_cover |
422 | Tuotteen kansidata on virheellinen. Lataa editori uudelleen ja tallenna uudelleen; props, style ja signals on kunkin oltava objekti. |
product_not_found |
404 | Tuotetta ei voitu lukea kaupasta. Tarkista, että tuote on edelleen olemassa ja julkaistu, ja lataa sitten editori uudelleen. |
product_customization_not_on_plan |
403 | Tuotekohtainen kansien mukauttaminen ei sisälly tähän suunnitelmaan. Päivitä tai muokkaa jaettua tuotekantta sen sijaan. |
no_product_handles |
422 | Päivitettäviä tuotteita ei löytynyt. Julkaise vähintään yksi tuote, jolla on julkinen handle, ja yritä sitten jakelun esikatselun päivitystä uudelleen. |
invalid_style |
422 | Tyylilohkoa ei voi käyttää. Lataa editori uudelleen ja valitse värit ja fontit uudelleen; yhtä arvoa ei voitu normalisoida. |
invalid_template |
422 | Pyydetty mallipohja ei ole tämän alustan luettelossa. Valitse jokin editorin tarjoamista asetteluista. |
invalid_preset |
422 | Esiasetuksen nimi ei ole sellainen, jota tämä alusta tarjoaa. Valitse esiasetus asetusnäytöltä. |
invalid_set |
422 | Kansisarjan data puuttuu tai on virheellinen. Lataa asetusnäyttö uudelleen ja valitse sarja uudelleen. |
preset_not_applyable |
422 | Esiasetusta ei voi soveltaa jokaiseen sivutyyppiin. Valitse toinen esiasetus; tästä puuttuu kansi ainakin yhdelle sivutyypille. |
template_not_available |
422 | Mallipohja ei ole renderöitävässä luettelossa. Valitse asettelu, jonka valitsin tarjoaa. |
template_not_available_on_shopify |
422 | Mallipohja ei ole saatavilla Shopify-kaupoissa. Valitse asettelu, jonka Shopify-editori tarjoaa. |
template_not_available_on_woocommerce |
422 | Mallipohja ei ole saatavilla WooCommerce-kaupoissa. Valitse asettelu, jonka Studio tarjoaa. |
template_unavailable |
422 | Mallipohja ei ole saatavilla tälle kaupalle. Valitse asettelu, jonka editori tarjoaa; se on poistettu käytöstä, tuntematon tai ylittää sen, mitä kauppa saa piirtää. |
template_not_on_plan |
403 | Mallipohja vaatii korkeamman suunnitelman. Vaihda suunnitelmaa tai valitse asettelu, jonka nykyinen suunnitelma kattaa. Vastaus nimeää suunnitelman kentässä requires. |
template_requires_higher_plan |
403 | Mallipohja vaatii korkeamman suunnitelman. Vastaus nimeää suunnitelman kentässä requires. |
no_rule |
404 | Tälle sivutyypille ei ole vielä kansisääntöä. Tallenna ensin kansi tälle sivutyypille editorissa. |
cover_not_configured |
404 | Tuotekantta ei ole vielä tallennettu. Tallenna tuotekansi ennen sen lataamista tai jakamista. |
schedule_only_product |
422 | Kampanja-aikataulutus on olemassa vain tuotekansille. Poista palautuspäivämäärä tai siirrä kampanja tuotekannelle. |
not_dismissible |
422 | Tätä ilmoitusta ei voi sulkea. Lataa sivu uudelleen; se on jo poistettu käytöstä tai kuuluu toiselle kaupalle. |
unsupported_locale |
422 | Kyseistä käyttöliittymän kieltä ei ole sisällytetty tähän sovellukseen. Valitse jokin kielistä, jotka vastaus luettelee kentässä supported. |
no_setup_sets |
422 | Kuratoituja kansisarjoja ei voitu koota. Yritä asetusnäytöllä uudelleen; jos se pysyy tyhjänä, ota yhteyttä tukeen. |
export_unavailable |
403 | Lataukset eivät sisälly tähän suunnitelmaan. Päivitä Pro-tasoon tai korkeammalle ladataksesi kansitiedostoja. |
cancellation_failed |
502 | Tilauksen peruutus hylättiin. Yritä hetken kuluttua uudelleen; jos se epäonnistuu edelleen, peruuta Shopify-laskutussivulta tai ota yhteyttä tukeen. |
logo_override_on_plan |
403 | Logon ohitus ei sisälly tähän suunnitelmaan. Päivitä tai tyhjennä logon ohitus. |
invalid_logo |
422 | Logotiedosto ei ole hyväksytty kuvamuoto. Lataa PNG-, JPEG- tai WebP-tiedosto editorissa näkyvän kokorajan alapuolella. |
invalid_brand_image |
422 | Brändin viitekuvaa ei voi käyttää. Lataa tuettu kuva kokorajan alapuolella tai tyhjennä viite ja tallenna uudelleen. |
brand_image_too_large |
422 | Brändin viitekuva on liian suuri. Pienennä tiedostoa ja lataa se uudelleen. |
brand_colors_too_many |
422 | Brändivärejä annettiin enemmän kuin kolme. Lähetä enintään kolme hex-väriä. |
upload_failed |
500 | Ladattua tiedostoa ei voitu tallentaa. Yritä uudelleen; jos se epäonnistuu edelleen, ota yhteyttä tukeen — resurssivarasto ei palauttanut julkista URL-osoitetta. |
attachment_upload_failed |
500 | Tukiliitettä ei voitu tallentaa. Lähetä viesti ilman liitettä ja lähetä tiedosto sitten sähköpostitse tukeen. |
invalid_webhook |
401 | Kaupan webhook-allekirjoitusta ei voitu vahvistaa. Tarkista, että WordPressin FastOG-asetuksissa oleva webhook-salaisuus vastaa sitä, jonka FastOG myönsi. |
not_found |
404 | Kyseistä päätepistettä ei enää ole. Avaa Studio uudelleen WordPress-hallinnastasi. |
meta_refresh_unavailable |
503 | Jakelun esikatselun päivitystä ei ole määritetty. Jaa linkki uudelleen Facebookista sen sijaan. |
theme_write_disabled |
409 | Teeman muokkaus ei ole käytössä tälle sovellukselle. Käytä teeman app embed -upotusta teematiedoston korjauksen sijaan. |
scope_required |
403 | FastOGilta puuttuu Shopify-käyttöoikeus. Hyväksy pyydetyt käyttöoikeudet vastauksen kentän consent_url avulla ja yritä sitten korjausta uudelleen. |
Wix-silta
Wix-sillan allekirjoittaa Wix-sovellus, ei kauppiaan istunto, joten sen virheet on osoitettu sovelluskehittäjälle. Jokainen vastaus sisältää silti code ja request_id; sillan pyyntötunnus on se, joka on allekirjoitetussa kirjekuoressa.
| Koodi | HTTP | Mitä se tarkoittaa ja mitä tehdä |
|---|---|---|
invalid_bridge_signature |
401 | Wix-sillan allekirjoitus ei vahvistunut. Luo pyyntö uudelleen jaetulla salaisuudella, tarkalla polulla ja alle viisi minuuttia vanhalla aikaleimalla. |
invalid_bridge_body |
400 | Sillan kirjekuoren runko on virheellinen. Lähetä body JSON-objektina ja koodaa jokainen sen sisällä oleva numero merkkijonoksi, jotta kanoninen allekirjoitus täsmää. |
replayed_bridge_request |
401 | Kyseinen siltapyyntö on jo käytetty. Luo uusi request_id jokaista tilaa muuttavaa kutsua varten. |
wix_site_not_installed |
403 | FastOG ei ole asennettu tälle Wix-sivustolle. Asenna FastOG-sovellus sivustolle ja avaa se sitten uudelleen. |
wix_site_not_provisioned |
422 | Wix-sivustolla ei ole vielä allekirjoituskirjautumistietoja. Asenna FastOG-sovellus uudelleen, jotta sivusto provisioidaan API-avaimella. |
invalid_page_type |
422 | Sivutyyppi ei ole yksi niistä, jotka FastOG kattaa Wixissä. Lähetä jokin Studio-palvelun tarjoamista sivutyypeistä. |
rule_not_found |
404 | Sääntöä kyseisellä id:llä ei ole. Päivitä lista; sääntö on poistettu tai kuuluu toiselle sivustolle. |
invalid_target_id |
422 | Wix-kohde-id ei ole kelvollinen tälle sivutyypille. Lähetä id, jonka Wix-sovellus tarjoaa kyseiselle sivutyypille. |
invalid_preview |
422 | Esikatselun hyötykuorma on virheellinen. Lue details-objektista, mikä kenttä epäonnistui. |
invalid_rule |
422 | Kansikuvan säännön hyötykuorma on virheellinen. Lue details-objekti; template on pakollinen ja valinnaisten lohkojen on oltava objekteja. |
invalid_sync |
422 | Synkronointihyötykuorma on virheellinen. Lue details-objekti; target_type ja target_id eivät saa olla ristiriidassa. |
invalid_regenerate_url |
422 | Uudelleenluotava URL puuttuu. Lähetä sivun URL kohdassa url. |
invalid_regenerate_host |
422 | URL ei kuulu FastOG-isäntään. Lähetä fastog.com-kansikuvan URL. |
ai_presets_unsupported |
422 | Tekoälyn suunnittelemia kansikuvasarjoja ei enää luoda. Valitse sen sijaan jokin kuratoiduista ilmeistä. |
original_tags_required |
422 | Alkuperäiset metatietotagit vaaditaan. Lähetä original_tags (tai current_tags), jotta asennuksen poisto voi palauttaa sivuston metatiedot. |
invalid_restored |
422 | Palautettujen avainten hyötykuorma on virheellinen. Lähetä restored metatietoavainten taulukkona. |
invalid_seo_target |
422 | SEO-kohdetyyppi on tuntematon. Käytä polussa arvoa site, pattern tai item. |
invalid_seo_payload |
422 | SEO-metatietojen hyötykuorma on virheellinen. Lähetä target_id, current_tags ja fastog_url absoluuttisena http(s)-URL:na. |
sync_failed |
500 | Metatietojen synkronointi Wixiin epäonnistui. Yritä uudelleen; jos se epäonnistuu edelleen, tarkista, että sivusto on tavoitettavissa ja sovellus on edelleen asennettu. |
invalid_tier |
422 | Kyseinen tilaus ei ole yksi niistä, joita FastOG myy Wixissä. Lähetä tasona starter, pro tai scale. |
Demoympäristö
Demo on vain omistajalle tarkoitettu myyntikonsoli, ei kauppiaan päätepiste.
| Koodi | HTTP | Mitä se tarkoittaa ja mitä tehdä |
|---|---|---|
url_required |
422 | URL-osoitetta ei lähetetty. Liitä kaupan tai tuotteen linkki ennen kortin lukemista. |
unreadable_url |
422 | Sivua ei voitu lukea. Tarkista, että linkki on julkinen ja täydellinen; kirjautumisen takana olevaa sivua ei voi lukea. |
no_api_key |
422 | API-avainta ei ole käytettävissä kansien allekirjoittamiseen. Luo API-avain (tai syötä kelvollinen); vastaus sisältää linkin API-avainten sivulle. |
no_presets |
500 | Kansiesiasetuksia ei ole määritetty. Määritä palvelimelle vähintään yksi esiasetus. |
Scoped-rule-editorien koodit
Scoped-rule-editorit (Shopify admin ja WooCommerce Studio) kääntävät nämä tokenit itse kauppiaan omalle
kielelle, joten niiden vastaukset sisältävät error ja code mutta eivät hint — toinen englanninkielinen
kuvaus poikkeaisi vain lokalisoidusta versiosta, jonka kauppias todella näkee:
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.
Vieläkö jumissa?
- Avaa dashboardin Render Logs -sivu — jokainen tulos (onnistuminen + hylkäys) listataan sen
error_code, HTTP-tilan ja pyydettyjen parametrien kanssa. - Aja
php artisan og:diagnoseallekirjoitetulle URL:lle käydäksesi läpi koko putken ja nähdäksesi, mikä vaihe epäonnistuu. - Tarkista sivupalkin dokumentaatiosta käyttämäsi kehys (Next.js, Express, SvelteKit, ...).