Fouten
In deze gids bespreken we wat er gebeurt als er iets misgaat terwijl je met de Meshy API werkt.
Fouten bij verzoeken
Deze fouten worden onmiddellijk geretourneerd wanneer uw API-verzoek wordt afgewezen. Controleer de HTTP-statuscode en het message-veld om te begrijpen wat er fout is gegaan.
Antwoordformaat
Het foutantwoord bevat een enkel message-veld dat beschrijft wat er fout is gegaan:
- Name
- message
- Type
- string
- Description
Een korte beschrijving van de fout.
Statuscodes
- Name
2xx- Description
Een 2xx-statuscode geeft een succesvol antwoord aan.
- Name
200 - OK- Description
Standaard wordt, als alles naar verwachting werkte, een statuscode 200 geretourneerd.
- Name
202 - Accepted- Description
Uw verzoek is geaccepteerd voor verwerking, maar de verwerking is nog niet voltooid. Dit is een vrijblijvend antwoord van de Meshy API. Een verzoek om een nieuwe taak aan te maken geeft bijvoorbeeld een statuscode 202 terug.
- Name
4xx- Description
Een 4xx-statuscode geeft een clientfout aan.
- Name
400 - Bad Request- Description
Het verzoek was onaanvaardbaar, vaak doordat een verplichte parameter ontbrak of omdat een van de parameters onjuist was opgemaakt.
- Name
401 - Unauthorized- Description
Er is geen geldige API-sleutel opgegeven, of de opgegeven API-sleutel is niet geautoriseerd om toegang te krijgen tot de Meshy API-endpoint.
- Name
402 - Payment Required- Description
Onvoldoende tegoed op het account dat is gekoppeld aan de opgegeven API-sleutel.
- Name
403 - Forbidden- Description
U mag dit verzoek niet doen. Dit kan bijvoorbeeld komen doordat het verzoek afkomstig was van een adres buiten de IP-toegestane lijst van de API-sleutel, doordat de contentcontrole van een Enterprise-abonnement de bestanden van een taak blokkeerde toen u deze las, of doordat de endpoint niet beschikbaar is binnen uw abonnement.
- Name
404 - Not Found- Description
De opgevraagde bron bestaat niet. Als u bijvoorbeeld een taak probeert op te halen aan de hand van de ID, maar een ongeldige ID opgeeft, krijgt u een statuscode 404.
- Name
409 - Conflict- Description
De bron bestaat wel, maar de huidige status staat de bewerking niet toe. Het verwijderen van een taak die al
IN_PROGRESSis, geeft bijvoorbeeld een 409: de worker is al begonnen met werk dat niet kan worden terugbetaald, dus wordt de taak gewoon doorgezet. Wacht op een eindstatus (SUCCEEDED,FAILEDofCANCELED) en probeer het opnieuw.
- Name
429 - Too Many Requests- Description
Er zijn te veel verzoeken te snel naar de Meshy API gestuurd. Wacht het aantal seconden dat in de
Retry-After-header staat voordat u het opnieuw probeert. Raadpleeg de Rate Limits-gids voor meer informatie.
- Name
5xx- Description
Een 5xx-statuscode geeft een serverfout aan. Als u er een tegenkomt, raadpleeg dan onze statuspagina voor meer informatie en neem contact met ons op via Discord voor hulp.
Example: 400 Bad Request
{
"message": "Invalid model file extension: .3dm"
}
Taakfouten
Deze fouten treden op nadat een taak is aangemaakt en wordt verwerkt. Controleer het task_error object in de taakrespons voor foutdetails.
Het task_error object bevat de volgende velden:
- Name
- type
- Type
- string
- Description
De foutcategorie. Altijd aanwezig bij mislukte taken. Zie Fouttypen hieronder.
- Name
- message
- Type
- string
- Description
Een voor mensen leesbare beschrijving van de fout. Altijd aanwezig bij mislukte taken.
- Name
- code
- Type
- string
- Optioneel
- Description
Een specifieke foutcode die het probleem identificeert. Aanwezig wanneer er aanvullende details beschikbaar zijn. Zie Foutcodes hieronder.
- Name
- doc_url
- Type
- string
- Optioneel
- Description
Een link naar gedetailleerde documentatie voor deze foutcode, inclusief oplossingsrichtlijnen. Aanwezig wanneer
codeaanwezig is.
Fout met details
{
"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"
}
}
Fout zonder details
{
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"status": "FAILED",
"task_error": {
"type": "server_error",
"message": "An internal error occurred. Please retry."
}
}
Foutsoorten
Het veld type geeft de algemene categorie van de fout aan. Gebruik dit veld om je retry-strategie te bepalen.
- Name
invalid_input- Description
Er is iets mis met de door jou opgegeven invoer. Controleer de velden
codeenmessagevoor details, los het probleem op en probeer het opnieuw.
- Name
timeout- Description
De taak overschreed een serverzijdige tijdslimiet, voor verwerking of voor wachten in de wachtrij, en is mislukt. De credits hiervoor worden terugbetaald. Dit is vaak tijdelijk: maak de taak opnieuw aan, en als dit blijft mislukken, probeer dan je invoer te vereenvoudigen.
- Name
service_unavailable- Description
De service was tijdelijk niet beschikbaar. Wacht even en maak de taak opnieuw aan.
- Name
server_error- Description
Er is een interne fout opgetreden tijdens de verwerking. Maak de taak opnieuw aan. Als het probleem aanhoudt, neem dan contact op met support en vermeld je taak-ID.
Foutcodes
Wanneer het veld code aanwezig is, identificeert het een specifiek, uitvoerbaar probleem. Hieronder is de volledige referentie voor elke foutcode.
image_too_complex
Deze fout treedt op wanneer de invoerafbeelding of prompt een onderwerp beschrijft dat te geometrisch complex is voor het 3D-generatiemodel om te verwerken.
Veelvoorkomende voorbeelden zijn:
- Dichte stapels van kleine objecten (bijv. een krat vol fruit, een stapel boeken)
- Ingewikkelde herhalende patronen (bijv. roosterstructuren, steigers, draadnetten)
- Complexe gebouwstructuren (bijv. gebouwen met meerdere verdiepingen met veel ramen en balkons)
- Meerdere verschillende objecten in één afbeelding in plaats van een enkel onderwerp
Voorbeelden van invoer die waarschijnlijk te complex zijn:




Oplossing:
- Gebruik één object per afbeelding. Het model werkt het beste met één duidelijk onderwerp. Voeg geen meerdere afzonderlijke objecten toe in dezelfde afbeelding of prompt.
- Vereenvoudig je onderwerp. Verminder het detailniveau. Bijvoorbeeld, een eenvoudige vaas in plaats van een vaas gevuld met tientallen bloemen.
- Vermijd scène-niveau prompts. Hele gebouwen, stadsblokken, interieurs gevuld met meubels of landschappen overschrijden waarschijnlijk de capaciteit van het model. Richt je in plaats daarvan op een enkel object.
- Vermijd dichte herhalende structuren. Onderwerpen zoals steigers, draadnetten, roosterpatronen of stapels van veel kleine items zijn veelvoorkomende triggers.
model_missing_uv
Deze fout treedt op wanneer je een model uploadt voor texturering met enable_original_uv ingesteld op true, maar het model geen UV-coördinaten heeft. UV-coördinaten bepalen hoe een 2D textuur op het 3D-oppervlak van je model wordt gewikkeld.

Oplossing:
De juiste oplossing hangt af van waarom je enable_original_uv op true hebt gezet:
- Als je de originele UV-layout van je model moet behouden (bijv. aangepaste naadplaatsing voor nauwkeurige textuurmapping): je model moet geldige UV-coördinaten hebben. Controleer of UV's bestaan in de UV-editor van je 3D-software voordat je uploadt. Let op dat STL-bestanden geen UV-gegevens kunnen opslaan, dus gebruik in plaats daarvan GLB, FBX of OBJ.
- Als je geen specifieke UV-controle nodig hebt (of je bent niet zeker): laat
enable_original_uvweg of stel het in opfalse. Het systeem genereert automatisch een UV-layout voor je model. De automatisch gegenereerde UV's zijn geoptimaliseerd voor dekking, maar je hebt geen controle over waar textuurnaden worden geplaatst.
model_insufficient_uv
Deze fout treedt op wanneer een model UV-coördinaten heeft, maar de UV-dekking te klein is voor kwalitatieve texturering. Dit gebeurt vaak met modellen die zijn geëxporteerd vanuit 3D-tools die tijdelijke of samengevouwen UV's genereren zonder een juiste unwrap.

Oplossing:
- Als je je originele UV-layout moet behouden: unwrap de UV's van het model opnieuw in je 3D-software. Zorg ervoor dat UV-eilanden goed verspreid zijn over de UV-ruimte in plaats van samengevouwen in een klein gebied.
- Als je geen specifieke UV-controle nodig hebt: laat
enable_original_uvweg of stel het in opfalse. Het systeem genereert automatisch een nieuwe UV-layout. Het nadeel is dat je de originele naadplaatsing verliest, maar de automatisch gegenereerde UV's zullen een goede dekking hebben voor texturering.
model_missing_texture
Deze fout treedt op wanneer het invoermodel van een Multi-Color Print-taak geen kleurinformatie bevat die de converter kan scheiden in printkleuren. Een meerkleuren-3MF wordt opgebouwd uit de kleuren van het model, dus een geheel witte mesh — bijvoorbeeld een Tekst naar 3D- of Afbeelding naar 3D-preview die nooit is getextureerd, of een gerepareerde/automatisch opgesplitste output — biedt niets om mee te werken.
Wat als kleurbron telt, hangt af van de style die je hebt opgegeven:
realisticbemonstert de basiskleurtextuur via de UV's van het model, dus dit vereist één enkele basiskleurtextuur met UV-coördinaten op elk meshonderdeel.cartoonvlakt kleuren per zijvlak af en accepteert een basiskleurtextuur op willekeurig welk onderdeel of per-vertex-kleuren (COLOR_0).
Een model zonder basiskleurtextuur én zonder vertex-kleuren wordt voor beide stijlen geweigerd; bij cartoon zou het anders "slagen" als een eenkleurenprint.
De meeste verzoeken worden al geweigerd voordat de taak wordt aangemaakt (400 Bad Request met dezelfde uitleg), dus je zult deze code meestal alleen zien wanneer de invoer niet vooraf kon worden geïnspecteerd — een .fbx-upload bijvoorbeeld wordt pas gecontroleerd nadat de taak deze heeft genormaliseerd.
Oplossing:
- Textureer het model eerst. Voer een Hertextureren-taak erop uit, of genereer het met texturering ingeschakeld (een Tekst naar 3D refine-taak, of een Afbeelding naar 3D-taak met
should_texture: true), en geef die taak door alsinput_task_id. - Modellen met vertex-kleuren (fotogrammetriescans, handbeschilderde meshes): vraag
style: "cartoon"aan, watCOLOR_0uitleest. - Gedeeltelijk getextureerde of multi-textuur-modellen onder
realistic: elk meshonderdeel heeft UV's nodig en dezelfde, enkele basiskleurtextuur. Textureer de overige onderdelen of voeg de texturen samen tot één atlas, of schakel over naarstyle: "cartoon".
invalid_input
Dit is de standaard foutcode wanneer de invoer niet door de validatie komt, maar er geen specifiekere code van toepassing is. Het message veld bevat de specifieke reden voor de fout.
Veelvoorkomende oorzaken zijn onder andere:
- Lege of beschadigde modelbestanden
- Niet-ondersteunde bestandsformaatvariaties (bijv. ASCII FBX-bestanden, meshopt-gecomprimeerde GLB)
- Geen geldige 3D-objecten gevonden in het geüploade model (bijv. bestand bevat alleen armaturen, camera's of lichten)
- Inhoud die niet door de veiligheidsfilters komt
Oplossing: Controleer het message veld voor specifieke details over wat er misging. Verifieer of uw invoerbestanden en parameters voldoen aan de vereisten van het endpoint.
moderation_blocked
Deze fout treedt op wanneer je prompt of referentieafbeeldingen worden afgewezen door AI-veiligheidsfilters. Het filter beoordeelt zowel de tekst-prompt als eventuele referentieafbeeldingen samen.
Oplossing:
- Herformuleer je tekst-prompt om suggestieve of gevoelige beschrijvingen te verwijderen.
- Pas referentieafbeeldingen aan als deze inhoud bevatten die veiligheidsfilters kan activeren.
moderation_unavailable
Deze fout treedt op wanneer contentmoderation tijdelijk niet beschikbaar was, waardoor de taak als mislukt werd gemarkeerd in plaats van te worden uitgevoerd zonder de controle. Er is niets mis met je content. Het type is server_error.
Oplossing: Maak de taak opnieuw aan.
timeout
Deze fout betekent dat de taak een serverzijdige tijdslimiet heeft overschreden, voor verwerking of voor wachten in de wachtrij, waardoor de taak is mislukt en de credits zijn terugbetaald. Dit kan gebeuren door een hoge systeembelasting of omdat de invoer te complex is om binnen de tijdslimiet te verwerken.
Dit verschilt van een timeout in uw eigen code. Als uw client gestopt is met wachten, loopt de taak nog steeds; zie Task Lifecycle.
Oplossing:
- Maak de taak opnieuw aan. Timeouts zijn vaak tijdelijk en een nieuwe taak kan slagen.
- Vereenvoudig uw invoer. Als nieuwe pogingen steeds mislukken, is uw invoer mogelijk te complex. Probeer het detailniveau in uw afbeelding of prompt te verminderen. Zie
image_too_complexvoor richtlijnen over welke soorten invoer moeilijker te verwerken zijn.
queue_timeout
Deze fout betekent dat de taak te lang in de wachtrij heeft gewacht zonder te starten, waardoor deze is mislukt en eventuele credits die ervoor in rekening waren gebracht, zijn terugbetaald. Uw invoer heeft dit niet veroorzaakt. Het type is timeout.
Oplossing: Maak de taak opnieuw aan.
format_conversion_failed
Deze fout treedt op wanneer het gegenereerde 3D-model niet kon worden geconverteerd naar het door u gevraagde uitvoerformaat. Het model is succesvol gegenereerd, maar de conversiestap is mislukt.
Oplossing:
- Probeer het verzoek opnieuw.
- Probeer een ander uitvoerformaat. Als een specifiek formaat steeds blijft mislukken, schakel dan over naar een ander formaat dat aan uw behoeften voldoet.
Best Practices
- Implementeer retry-logica. Wanneer een taak mislukt met een
timeout-,service_unavailable- ofserver_error-fout, maak deze dan opnieuw aan met exponentiële back-off. Als in plaats daarvan uw eigen verzoek een time-out had, maak dan geen nieuwe taak aan: controleer eerst de bestaande (zie Task Lifecycle). - Log taak-ID's. Log altijd de taak-ID voor debugdoeleinden. Vermeld deze wanneer u contact opneemt met support.
- Valideer invoer. Zorg ervoor dat uw invoerafbeeldingen en -modellen aan de formaatvereisten voldoen voordat u ze indient.
- Roep de API aan vanaf uw server. Code die in een browser wordt uitgevoerd, zou uw API-sleutel blootstellen aan iedereen die de pagina opent.