Fouten

In deze gids bespreken we wat er gebeurt wanneer er iets misgaat terwijl je met de Meshy API werkt.


Aanvraagfouten

Deze fouten worden onmiddellijk geretourneerd wanneer je API-aanvraag wordt afgewezen. Controleer de HTTP-statuscode en het veld message om te begrijpen wat er misging.

Responsindeling

De foutrespons bevat één veld message dat beschrijft wat er misging:

  • Name
    message
    Type
    string
    Description

    Een korte beschrijving van de fout.

Statuscodes

  • Name
    2xx
    Description

    Een 2xx-statuscode geeft een succesvolle respons aan.

    • Name
      200 - OK
      Description

      Standaard wordt een 200-statuscode geretourneerd als alles naar verwachting heeft gewerkt.

    • Name
      202 - Accepted
      Description

      Je aanvraag is geaccepteerd voor verwerking, maar de verwerking is nog niet voltooid. Dit is een niet-bindende respons van Meshy API. Een aanvraag om bijvoorbeeld een nieuwe taak aan te maken, retourneert een 202-statuscode.

  • Name
    4xx
    Description

    Een 4xx-statuscode geeft een clientfout aan.

    • Name
      400 - Bad Request
      Description

      De aanvraag was onaanvaardbaar, vaak omdat een verplichte parameter ontbrak of omdat een van de parameters ongeldig was gevormd.

    • Name
      401 - Unauthorized
      Description

      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 saldo in het account dat is gekoppeld aan de opgegeven API-sleutel.

    • Name
      403 - Forbidden
      Description

      Toegang tot de aangevraagde resource is verboden. Dit kan gebeuren als je probeert de Meshy API rechtstreeks vanuit client-side JavaScript-code te benaderen, omdat Cross-Origin Resource Sharing (CORS)-aanvragen vanuit browsers niet zijn toegestaan. Overweeg voor dergelijke aanvragen een server-side proxy te gebruiken. Zie voor meer details de MDN CORS-gids.

    • Name
      404 - Not Found
      Description

      De aangevraagde resource bestaat niet. Wanneer je bijvoorbeeld een taak probeert op te halen op basis van de ID maar een ongeldige ID hebt opgegeven, krijg je een 404-statuscode.

    • Name
      429 - Too Many Requests
      Description

      Te veel aanvragen bereiken de Meshy API te snel. Raadpleeg de gids Limieten voor aanvraagsnelheid voor details.

  • Name
    5xx
    Description

    Een 5xx-statuscode geeft een serverfout aan. Als je er een ziet, controleer 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 object task_error in de taakrespons voor foutdetails.

Het object task_error 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 aanvullende details beschikbaar zijn. Zie Foutcodes hieronder.

  • Name
    doc_url
    Type
    string
    Optioneel
    Description

    Een link naar gedetailleerde documentatie voor deze foutcode, inclusief richtlijnen voor oplossing. Aanwezig wanneer code aanwezig is.

Error with 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"
  }
}

Error without details

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

Fouttypen

Het veld type geeft de brede categorie van de fout aan. Gebruik dit om je strategie voor opnieuw proberen te bepalen.

  • Name
    invalid_input
    Description

    Er is iets mis met de invoer die je hebt opgegeven. Controleer de velden code en message voor details, los het probleem op en probeer het opnieuw.

  • Name
    timeout
    Description

    De verwerking heeft de tijdslimiet overschreden. Dit is vaak tijdelijk. Probeer de aanvraag opnieuw, en als deze blijft mislukken, probeer dan je invoer te vereenvoudigen.

  • Name
    service_unavailable
    Description

    De service is tijdelijk niet beschikbaar. Wacht even en probeer het opnieuw.

  • Name
    server_error
    Description

    Er is een interne fout opgetreden tijdens de verwerking. Probeer de aanvraag opnieuw. Als het probleem aanhoudt, neem dan contact op met support met je taak-ID.


Foutcodes

Wanneer het veld code aanwezig is, identificeert het een specifiek, uitvoerbaar probleem. Hieronder staat de volledige referentie voor elke foutcode.

image_too_complex

Deze fout treedt op wanneer de invoerafbeelding of prompt een onderwerp beschrijft dat geometrisch te complex is voor het 3D-generatiemodel om te verwerken.

Veelvoorkomende voorbeelden zijn:

  • Dichte stapels kleine objecten (bijv. een krat vol fruit, een stapel boeken)
  • Ingewikkelde herhalende patronen (bijv. roosterstructuren, steigers, draadgaas)
  • Complexe gebouwstructuren (bijv. gebouwen met meerdere verdiepingen met veel ramen en balkons)
  • Meerdere afzonderlijke objecten in één afbeelding in plaats van één enkel onderwerp

Voorbeelden van invoer die waarschijnlijk te complex is:

Een krat met gemengde bessenEen ingewikkeld kathedraalplafondEen gebouw in aanbouw met steigersEen bol met honingraatrooster

Oplossing:

  1. Gebruik één enkel object per afbeelding. Het model werkt het best met één duidelijk onderwerp. Neem geen meerdere afzonderlijke objecten op in dezelfde afbeelding of prompt.
  2. Vereenvoudig je onderwerp. Verminder het detailniveau. Bijvoorbeeld een eenvoudige vaas in plaats van een vaas gevuld met tientallen bloemen.
  3. Vermijd prompts op scèneniveau. Volledige gebouwen, stadsblokken, interieurs gevuld met meubels of landschappen overschrijden waarschijnlijk de capaciteit van het model. Richt je in plaats daarvan op één enkel object.
  4. Vermijd dichte herhalende structuren. Onderwerpen zoals steigers, draadgaas, roosterpatronen of stapels van veel kleine items zijn veelvoorkomende triggers.

model_missing_uv

Deze fout treedt op wanneer je een model uploadt om van textuur te voorzien met enable_original_uv ingesteld op true, maar het model geen UV-coördinaten heeft. UV-coördinaten definiëren hoe een 2D-textuur om het 3D-oppervlak van je model wordt gewikkeld.

Geen UV's versus goede UV's

Oplossing:

De juiste oplossing hangt af van waarom je enable_original_uv op true hebt ingesteld:

  • Als je de oorspronkelijke UV-layout van je model moet behouden (bijv. aangepaste plaatsing van naden voor nauwkeurige textuurmapping): je model moet geldige UV-coördinaten hebben. Controleer vóór het uploaden in de UV-editor van je 3D-software of er UV's bestaan. Houd er rekening mee 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 als je het niet zeker weet): laat enable_original_uv weg of stel het in op false. 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 texturing van goede kwaliteit. Dit gebeurt vaak bij modellen die zijn geëxporteerd vanuit 3D-tools die tijdelijke of samengevouwen UV's genereren zonder een correcte unwrap.

Onvoldoende UV's versus goede UV's

Oplossing:

  • Als je je oorspronkelijke UV-layout moet behouden: unwrap de UV's van het model opnieuw in je 3D-software. Zorg ervoor dat UV-eilanden goed over de UV-ruimte zijn verdeeld in plaats van samengevouwen in een klein gebied.
  • Als je geen specifieke UV-controle nodig hebt: laat enable_original_uv weg of stel het in op false. Het systeem genereert automatisch een nieuwe UV-layout. Het nadeel is dat je je oorspronkelijke plaatsing van naden verliest, maar de automatisch gegenereerde UV's hebben voldoende dekking voor texturing.

invalid_input

Dit is de fallback-foutcode wanneer de invoer niet door de validatie komt, maar er geen specifiekere code van toepassing is. Het veld message bevat de specifieke reden voor de fout.

Veelvoorkomende oorzaken zijn:

  • Lege of beschadigde modelbestanden
  • Niet-ondersteunde variaties van bestandsformaten (bijv. ASCII FBX-bestanden, met meshopt gecomprimeerde GLB)
  • Geen geldige 3D-objecten gevonden in het geüploade model (bijv. het bestand bevat alleen armaturen, camera's of lichten)
  • Content die niet door veiligheidsfilters komt

Oplossing: Controleer het veld message voor details over wat er misging. Controleer of je invoerbestanden en parameters overeenkomen met de vereisten van de endpoint.

moderation_blocked

Deze fout treedt op wanneer je prompt of referentieafbeeldingen worden afgewezen door AI-veiligheidsfilters. Het filter beoordeelt zowel de tekstprompt als eventuele referentieafbeeldingen samen.

Oplossing:

  • Herformuleer je tekstprompt om suggestieve of gevoelige beschrijvingen te verwijderen.
  • Pas referentieafbeeldingen aan als ze inhoud weergeven die veiligheidsfilters kan activeren.

timeout

Deze fout betekent dat de verwerkingstijd van je taak de toegestane limiet heeft overschreden. Dit kan gebeuren door hoge systeembelasting of omdat de invoer te complex is om binnen de tijdslimiet te verwerken.

Oplossing:

  1. Probeer het verzoek opnieuw. Timeouts zijn vaak tijdelijk en een nieuwe poging kan slagen.
  2. Vereenvoudig je invoer. Als nieuwe pogingen blijven mislukken, is je invoer mogelijk te complex. Probeer het detailniveau in je afbeelding of prompt te verminderen. Zie image_too_complex voor richtlijnen over welke typen invoer moeilijker te verwerken zijn.

format_conversion_failed

Deze fout treedt op wanneer het gegenereerde 3D-model niet kon worden geconverteerd naar het door jou aangevraagde uitvoerformaat. Het model is succesvol gegenereerd, maar de conversiestap is mislukt.

Oplossing:

  1. Probeer de aanvraag opnieuw.
  2. Probeer een ander uitvoerformaat. Als een specifiek formaat blijft mislukken, schakel dan over naar een ander formaat dat aan je behoeften voldoet.

Aanbevolen werkwijzen

  1. Implementeer retry-logica. Implementeer voor timeout- en service_unavailable-fouten retry-logica met exponentiële backoff.
  2. Log taak-ID's. Log altijd de taak-ID voor foutopsporingsdoeleinden. Vermeld deze wanneer je contact opneemt met support.
  3. Valideer invoer. Zorg ervoor dat je invoerafbeeldingen en modellen voldoen aan de formaatvereisten voordat je ze indient.