Chyby

V tomto průvodci si povíme o tom, co se stane, když se něco pokazí při práci s Meshy API.


Chyby žádosti

Tyto chyby jsou vráceny okamžitě, když je vaše API žádost odmítnuta. Zkontrolujte HTTP stavový kód a pole message, abyste pochopili, co se pokazilo.

Formát odpovědi

Odpověď na chybu obsahuje jedno pole message, které popisuje, co se pokazilo:

  • Name
    message
    Type
    string
    Description

    Krátký popis chyby.

Stavové kódy

  • Name
    2xx
    Description

    Stavový kód 2xx označuje úspěšnou odpověď.

    • Name
      200 - OK
      Description

      Ve výchozím nastavení, pokud vše fungovalo podle očekávání, bude vrácen stavový kód 200.

    • Name
      202 - Accepted
      Description

      Vaše žádost byla přijata ke zpracování, ale zpracování nebylo dokončeno. Toto je nezávazná odpověď od Meshy API. Například žádost o vytvoření nového úkolu vrátí stavový kód 202.

  • Name
    4xx
    Description

    Stavový kód 4xx označuje chybu na straně klienta.

    • Name
      400 - Bad Request
      Description

      Žádost byla nepřijatelná, často kvůli chybějícímu povinnému parametru nebo jeden z parametrů byl nesprávně formátován.

    • Name
      401 - Unauthorized
      Description

      Nebyl poskytnut platný API klíč nebo poskytnutý API klíč není autorizován pro přístup k Meshy API koncovému bodu.

    • Name
      402 - Payment Required
      Description

      Nedostatečné prostředky na účtu spojeném s poskytnutým API klíčem.

    • Name
      403 - Forbidden
      Description

      Přístup k požadovanému zdroji je zakázán. To se může stát, pokud se pokusíte přistupovat k Meshy API přímo z klientského JavaScriptového kódu, protože požadavky Cross-Origin Resource Sharing (CORS) z prohlížečů nejsou povoleny. Zvažte použití serverového proxy pro takové požadavky. Pro více podrobností si přečtěte MDN CORS guide.

    • Name
      404 - Not Found
      Description

      Požadovaný zdroj neexistuje. Například, když se pokusíte získat úkol podle jeho ID, ale poskytnete neplatné ID, obdržíte stavový kód 404.

    • Name
      429 - Too Many Requests
      Description

      Příliš mnoho požadavků zasáhlo Meshy API příliš rychle. Podrobnosti naleznete v průvodci Rate Limits.

  • Name
    5xx
    Description

    Stavový kód 5xx označuje chybu na straně serveru. Pokud ji uvidíte, zkontrolujte prosím naši status page pro více informací a kontaktujte nás prostřednictvím Discord pro pomoc.

Příklad: 400 Bad Request

{
  "message": "Invalid model file extension: .3dm"
}

Chyby úkolu

Tyto chyby se vyskytují po vytvoření úkolu a během jeho zpracování. Zkontrolujte objekt task_error v odpovědi úkolu pro podrobnosti o chybě.

Objekt task_error obsahuje následující pole:

  • Name
    type
    Type
    string
    Description

    Kategorie chyby. Vždy přítomna u neúspěšných úkolů. Viz Typy chyb níže.

  • Name
    message
    Type
    string
    Description

    Čitelný popis chyby. Vždy přítomen u neúspěšných úkolů.

  • Name
    code
    Type
    string
    Volitelné
    Description

    Specifický kód chyby identifikující problém. Přítomen, když jsou k dispozici další podrobnosti. Viz Kódy chyb níže.

  • Name
    doc_url
    Type
    string
    Volitelné
    Description

    Odkaz na podrobnou dokumentaci k tomuto kódu chyby, včetně pokynů k řešení. Přítomen, když je přítomen code.

Chyba s podrobnostmi

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "status": "FAILED",
  "task_error": {
    "type": "invalid_input",
    "code": "image_too_complex",
    "message": "The uploaded image is too complex for 3D generation.",
    "doc_url": "https://docs.meshy.ai/en/api/errors#image-too-complex"
  }
}

Chyba bez podrobností

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "status": "FAILED",
  "task_error": {
    "type": "server_error",
    "message": "An internal error occurred. Please retry."
  }
}

Typy chyb

Pole type vám sdělí širokou kategorii selhání. Použijte ji k rozhodnutí o vaší strategii opakování.

  • Name
    invalid_input
    Description

    Něco je špatně se vstupem, který jste poskytli. Zkontrolujte pole code a message pro podrobnosti, opravte problém a zkuste to znovu.

  • Name
    timeout
    Description

    Zpracování překročilo časový limit. To je často přechodné. Zkuste požadavek znovu, a pokud stále selhává, zkuste zjednodušit váš vstup.

  • Name
    service_unavailable
    Description

    Služba je dočasně nedostupná. Počkejte chvíli a zkuste to znovu.

  • Name
    server_error
    Description

    Během zpracování došlo k interní chybě. Zkuste požadavek znovu. Pokud problém přetrvává, kontaktujte podporu s vaším ID úkolu.


Chybové kódy

Když je přítomno pole code, identifikuje konkrétní, řešitelný problém. Níže je úplný přehled pro každý chybový kód.

image_too_complex

Tato chyba nastane, když vstupní obrázek nebo prompt popisuje objekt, který je příliš geometricky složitý pro zpracování modelem generování 3D.

Běžné příklady zahrnují:

  • Husté hromady malých objektů (např. bedna plná ovoce, hromada knih)
  • Složité opakující se vzory (např. mřížkové struktury, lešení, drátěné pletivo)
  • Složité stavební struktury (např. vícepodlažní budovy s mnoha okny a balkony)
  • Více odlišných objektů na jednom obrázku místo jednoho subjektu

Příklady vstupů, které jsou pravděpodobně příliš složité:

Bedna s různými bobulemiSložitý strop katedrályBudova ve výstavbě s lešenímKoule s mřížkovým vzorem

Řešení:

  1. Použijte jeden objekt na obrázek. Model funguje nejlépe s jedním jasným subjektem. Nezahrnujte více samostatných objektů na stejném obrázku nebo v promptu.
  2. Zjednodušte svůj subjekt. Snižte úroveň detailů. Například jednoduchá váza místo vázy plné desítek květin.
  3. Vyhněte se promptům na úrovni scény. Celé budovy, městské bloky, interiéry plné nábytku nebo krajiny pravděpodobně překročí kapacitu modelu. Zaměřte se místo toho na jeden objekt.
  4. Vyhněte se hustým opakujícím se strukturám. Subjekty jako lešení, drátěné pletivo, mřížkové vzory nebo hromady mnoha malých předmětů jsou běžnými spouštěči.

model_missing_uv

Tato chyba nastane, když nahrajete model pro texturování s nastavením enable_original_uv na true, ale model nemá žádné UV souřadnice. UV souřadnice definují, jak se 2D textura obaluje na 3D povrch vašeho modelu.

No UVs vs Good UVs

Řešení:

Správná oprava závisí na tom, proč jste nastavili enable_original_uv na true:

  • Pokud potřebujete zachovat původní UV rozvržení vašeho modelu (např. vlastní umístění švů pro přesné mapování textur): váš model musí mít platné UV souřadnice. Ověřte, že UV souřadnice existují v UV editoru vašeho 3D softwaru před nahráním. Upozorňujeme, že soubory STL nemohou ukládat UV data, takže použijte GLB, FBX nebo OBJ místo toho.
  • Pokud nepotřebujete specifickou kontrolu nad UV (nebo si nejste jisti): vynechejte enable_original_uv nebo jej nastavte na false. Systém automaticky vygeneruje UV rozvržení pro váš model. Automaticky generované UV souřadnice jsou optimalizovány pro pokrytí, ale nebudete mít kontrolu nad tím, kde jsou umístěny švy textury.

model_insufficient_uv

Tato chyba nastane, když má model UV souřadnice, ale pokrytí UV je příliš malé pro kvalitní texturování. To se běžně stává u modelů exportovaných z 3D nástrojů, které generují zástupné nebo zkolabované UV bez správného rozbalení.

Nedostatečné UV vs Dobré UV

Řešení:

  • Pokud potřebujete zachovat své původní UV rozvržení: znovu rozbalte UV modelu ve svém 3D softwaru. Ujistěte se, že UV ostrovy jsou správně rozprostřeny po UV prostoru, místo aby byly zkolabovány do malé oblasti.
  • Pokud nepotřebujete specifickou kontrolu UV: vynechejte enable_original_uv nebo jej nastavte na false. Systém automaticky vygeneruje nové UV rozvržení. Kompromisem je, že ztratíte původní umístění švů, ale automaticky generované UV budou mít správné pokrytí pro texturování.

invalid_input

Toto je výchozí chybový kód, když vstup neprojde validací, ale žádný konkrétnější kód se nepoužije. Pole message obsahuje konkrétní důvod selhání.

Běžné příčiny zahrnují:

  • Prázdné nebo poškozené soubory modelů
  • Nepodporované varianty formátů souborů (např. ASCII FBX soubory, GLB soubory komprimované pomocí meshopt)
  • Nebyly nalezeny žádné platné 3D objekty v nahraném modelu (např. soubor obsahuje pouze armatury, kamery nebo světla)
  • Obsah, který neprojde bezpečnostními filtry

Řešení: Zkontrolujte pole message pro podrobnosti o tom, co se pokazilo. Ověřte, že vaše vstupní soubory a parametry odpovídají požadavkům koncového bodu.

moderation_blocked

Tato chyba nastane, když je váš prompt nebo referenční obrázky odmítnuty bezpečnostními filtry AI. Filtr vyhodnocuje jak textový prompt, tak i jakékoliv referenční obrázky společně.

Řešení:

  • Přeformulujte svůj textový prompt, abyste odstranili sugestivní nebo citlivé popisy.
  • Upravte referenční obrázky, pokud zobrazují obsah, který může spustit bezpečnostní filtry.

timeout

Tato chyba znamená, že doba zpracování vašeho úkolu překročila povolený limit. To se může stát kvůli vysoké zátěži systému nebo proto, že vstup je příliš složitý na zpracování v rámci časového limitu.

Řešení:

  1. Zkuste požadavek znovu. Timeouty jsou často přechodné a opakování může být úspěšné.
  2. Zjednodušte svůj vstup. Pokud opakování stále selhává, váš vstup může být příliš složitý. Zkuste snížit úroveň detailů ve vašem obrázku nebo promptu. Viz image_too_complex pro pokyny, jaké typy vstupů jsou obtížnější ke zpracování.

format_conversion_failed

Tato chyba nastane, když nelze vygenerovaný 3D model převést do požadovaného výstupního formátu. Model byl úspěšně vygenerován, ale krok převodu selhal.

Řešení:

  1. Zkuste požadavek znovu.
  2. Vyzkoušejte jiný výstupní formát. Pokud konkrétní formát stále selhává, přepněte na jiný formát, který vyhovuje vašim potřebám.

Osvědčené postupy

  1. Implementujte logiku opakování. Pro chyby timeout a service_unavailable implementujte logiku opakování s exponenciálním zpožděním.
  2. Zaznamenávejte ID úkolů. Vždy zaznamenávejte ID úkolu pro účely ladění. Uveďte ho při kontaktování podpory.
  3. Ověřte vstupy. Ujistěte se, že vaše vstupní obrázky a modely splňují požadavky na formát před odesláním.