Fouten

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


Verzoekfouten

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

Antwoordformaat

Het foutantwoord bevat een enkel message-veld 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 succesvol antwoord aan.

    • Name
      200 - OK
      Description

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

    • Name
      202 - Accepted
      Description

      Je verzoek is geaccepteerd voor verwerking, maar de verwerking is nog niet voltooid. Dit is een niet-bindend antwoord van de Meshy API. Bijvoorbeeld, een verzoek om een nieuwe taak te maken zal een 202-statuscode retourneren.

  • Name
    4xx
    Description

    Een 4xx-statuscode geeft een klantfout aan.

    • Name
      400 - Bad Request
      Description

      Het verzoek was onacceptabel, vaak vanwege het ontbreken van een verplichte parameter of omdat een van de parameters onjuist was.

    • Name
      401 - Unauthorized
      Description

      Geen geldige API-sleutel verstrekt of de verstrekte API-sleutel is niet geautoriseerd om toegang te krijgen tot de Meshy API endpoint.

    • Name
      402 - Payment Required
      Description

      Onvoldoende saldo op de rekening die is gekoppeld aan de verstrekte API-sleutel.

    • Name
      403 - Forbidden
      Description

      Toegang tot de gevraagde bron is verboden. Dit kan gebeuren als je probeert toegang te krijgen tot de Meshy API direct vanuit client-side JavaScript-code, omdat Cross-Origin Resource Sharing (CORS)-verzoeken vanuit browsers niet zijn toegestaan. Overweeg het gebruik van een server-side proxy voor dergelijke verzoeken. Voor meer details, zie de MDN CORS-gids.

    • Name
      404 - Not Found
      Description

      De gevraagde bron bestaat niet. Bijvoorbeeld, wanneer je probeert een taak op te halen via zijn ID maar een ongeldige ID hebt verstrekt, krijg je een 404-statuscode.

    • Name
      429 - Too Many Requests
      Description

      Te veel verzoeken hebben de Meshy API te snel bereikt. Raadpleeg de Rate Limits gids 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.

Voorbeeld: 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 code aanwezig 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."
  }
}

Fouttypen

Het type veld vertelt je de brede categorie van de fout. Gebruik het om je herhalingsstrategie te bepalen.

  • Name
    invalid_input
    Description

    Er is iets mis met de invoer die je hebt verstrekt. 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 het verzoek opnieuw, en als het blijft mislukken, probeer dan je invoer te vereenvoudigen.

  • Name
    service_unavailable
    Description

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

  • Name
    server_error
    Description

    Er is een interne fout opgetreden tijdens de verwerking. Probeer het verzoek opnieuw. Als het probleem aanhoudt, neem dan contact op met de ondersteuning met 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:

Een krat met gemengde bessenEen ingewikkeld kathedraalplafondEen gebouw in aanbouw met steigersEen honingraat roosterbol

Oplossing:

  1. 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.
  2. Vereenvoudig je onderwerp. Verminder het detailniveau. Bijvoorbeeld, een eenvoudige vaas in plaats van een vaas gevuld met tientallen bloemen.
  3. 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.
  4. 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.

Geen UVs vs Goede UVs

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_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 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.

Onvoldoende UV's vs Goede UV's

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_uv weg of stel het in op false. 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.

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. De filter evalueert zowel de tekstprompt als eventuele referentieafbeeldingen samen.

Oplossing:

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

timeout

Deze fout betekent dat de verwerkingstijd van je taak de toegestane limiet heeft overschreden. Dit kan gebeuren door een 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 herhaalde pogingen blijven mislukken, kan je invoer te complex zijn. Probeer het detailniveau in je afbeelding of prompt te verminderen. Zie image_too_complex voor richtlijnen over welke soorten invoer moeilijker te verwerken zijn.

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:

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

Beste Praktijken

  1. Implementeer retry-logica. Voor timeout en service_unavailable fouten, implementeer exponentiële backoff retry-logica.
  2. Log taak-ID's. Log altijd de taak-ID voor foutopsporingsdoeleinden. Voeg deze toe wanneer u contact opneemt met de ondersteuning.
  3. Valideer invoer. Zorg ervoor dat uw invoerafbeeldingen en modellen voldoen aan de formaatvereisten voordat u ze indient.