Erreurs

Dans ce guide, nous parlerons de ce qui se passe lorsque quelque chose ne va pas pendant que vous travaillez avec le Meshy API.


Erreurs de requête

Ces erreurs sont renvoyées immédiatement lorsque votre requête API est rejetée. Vérifiez le code de statut HTTP et le champ message pour comprendre ce qui s'est mal passé.

Format de réponse

La réponse d'erreur contient un seul champ message décrivant ce qui s'est mal passé :

  • Name
    message
    Type
    string
    Description

    Une brève description de l'erreur.

Codes de statut

  • Name
    2xx
    Description

    Un code de statut 2xx indique une réponse réussie.

    • Name
      200 - OK
      Description

      Par défaut, si tout a fonctionné comme prévu, un code de statut 200 sera renvoyé.

    • Name
      202 - Accepted
      Description

      Votre requête a été acceptée pour traitement, mais le traitement n'a pas été terminé. Ceci est une réponse non engageante de Meshy API. Par exemple, une requête pour créer une nouvelle tâche renverra un code de statut 202.

  • Name
    4xx
    Description

    Un code de statut 4xx indique une erreur côté client.

    • Name
      400 - Bad Request
      Description

      La requête était inacceptable, souvent en raison de l'absence d'un paramètre obligatoire ou d'un paramètre mal formé.

    • Name
      401 - Unauthorized
      Description

      Aucune clé API valide fournie ou la clé API fournie n'est pas autorisée à accéder au point de terminaison Meshy API.

    • Name
      402 - Payment Required
      Description

      Fonds insuffisants dans le compte associé à la clé API fournie.

    • Name
      403 - Forbidden
      Description

      L'accès à la ressource demandée est interdit. Cela peut se produire si vous essayez d'accéder directement à l'API Meshy depuis du code JavaScript côté client, car les requêtes Cross-Origin Resource Sharing (CORS) depuis les navigateurs ne sont pas autorisées. Envisagez d'utiliser un proxy côté serveur pour de telles requêtes. Pour plus de détails, consultez le guide CORS de MDN.

    • Name
      404 - Not Found
      Description

      La ressource demandée n'existe pas. Par exemple, lorsque vous essayez de récupérer une tâche par son ID mais que vous avez fourni un ID invalide, vous obtiendrez un code de statut 404.

    • Name
      429 - Too Many Requests
      Description

      Trop de requêtes ont atteint l'API Meshy trop rapidement. Veuillez vous référer au guide Limites de taux pour plus de détails.

  • Name
    5xx
    Description

    Un code de statut 5xx indique une erreur côté serveur. Si vous en voyez un, veuillez vérifier notre page de statut pour plus d'informations et contactez-nous via Discord pour obtenir de l'aide.

Exemple : 400 Bad Request

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

Erreurs de Tâche

Ces erreurs surviennent après qu'une tâche a été créée et est en cours de traitement. Vérifiez l'objet task_error dans la réponse de la tâche pour les détails de l'erreur.

L'objet task_error contient les champs suivants :

  • Name
    type
    Type
    string
    Description

    La catégorie de l'erreur. Toujours présent sur les tâches échouées. Voir Types d'Erreur ci-dessous.

  • Name
    message
    Type
    string
    Description

    Une description lisible par l'homme de l'erreur. Toujours présent sur les tâches échouées.

  • Name
    code
    Type
    string
    Optionnel
    Description

    Un code d'erreur spécifique identifiant le problème. Présent lorsque des détails supplémentaires sont disponibles. Voir Codes d'Erreur ci-dessous.

  • Name
    doc_url
    Type
    string
    Optionnel
    Description

    Un lien vers une documentation détaillée pour ce code d'erreur, y compris des conseils de résolution. Présent lorsque code est présent.

Erreur avec détails

{
  "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"
  }
}

Erreur sans détails

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

Types d'erreurs

Le champ type vous indique la catégorie générale de l'échec. Utilisez-le pour décider de votre stratégie de nouvelle tentative.

  • Name
    invalid_input
    Description

    Il y a un problème avec les données que vous avez fournies. Vérifiez les champs code et message pour plus de détails, corrigez le problème et réessayez.

  • Name
    timeout
    Description

    Le traitement a dépassé la limite de temps. Cela est souvent transitoire. Réessayez la demande, et si elle continue d'échouer, essayez de simplifier votre entrée.

  • Name
    service_unavailable
    Description

    Le service est temporairement indisponible. Attendez un moment et réessayez.

  • Name
    server_error
    Description

    Une erreur interne s'est produite lors du traitement. Réessayez la demande. Si le problème persiste, contactez le support avec votre ID de tâche.


Codes d'erreur

Lorsque le champ code est présent, il identifie un problème spécifique et exploitable. Vous trouverez ci-dessous la référence complète pour chaque code d'erreur.

image_too_complex

Cette erreur se produit lorsque l'image d'entrée ou le prompt décrit un sujet trop complexe géométriquement pour que le modèle de génération 3D puisse le traiter.

Des exemples courants incluent :

  • Piles denses de petits objets (par exemple, une caisse pleine de fruits, une pile de livres)
  • Motifs répétitifs complexes (par exemple, structures en treillis, échafaudages, treillis métalliques)
  • Structures de bâtiments complexes (par exemple, bâtiments à plusieurs étages avec de nombreuses fenêtres et balcons)
  • Plusieurs objets distincts dans une image au lieu d'un seul sujet

Exemples d'entrées probablement trop complexes :

Une caisse de baies mélangéesUn plafond de cathédrale complexeUn bâtiment en construction avec échafaudagesUne sphère en treillis de nid d'abeille

Résolution :

  1. Utilisez un seul objet par image. Le modèle fonctionne mieux avec un sujet clair. N'incluez pas plusieurs objets séparés dans la même image ou prompt.
  2. Simplifiez votre sujet. Réduisez le niveau de détail. Par exemple, un vase simple au lieu d'un vase rempli de dizaines de fleurs.
  3. Évitez les prompts au niveau de la scène. Les bâtiments entiers, les blocs de ville, les intérieurs remplis de meubles ou les paysages risquent de dépasser la capacité du modèle. Concentrez-vous sur un seul objet à la place.
  4. Évitez les structures répétitives denses. Les sujets comme les échafaudages, les treillis métalliques, les motifs en treillis ou les piles de nombreux petits objets sont des déclencheurs courants.

model_missing_uv

Cette erreur se produit lorsque vous téléchargez un modèle pour texturer avec enable_original_uv réglé sur true, mais que le modèle n'a pas de coordonnées UV. Les coordonnées UV définissent comment une texture 2D s'enroule sur la surface 3D de votre modèle.

Pas de UVs vs Bons UVs

Résolution :

La bonne solution dépend de la raison pour laquelle vous avez réglé enable_original_uv sur true :

  • Si vous devez préserver la disposition UV originale de votre modèle (par exemple, placement personnalisé des coutures pour un mappage de texture précis) : votre modèle doit avoir des coordonnées UV valides. Vérifiez que les UV existent dans l'éditeur UV de votre logiciel 3D avant de télécharger. Notez que les fichiers STL ne peuvent pas stocker de données UV, utilisez donc GLB, FBX ou OBJ à la place.
  • Si vous n'avez pas besoin de contrôle spécifique sur les UV (ou si vous n'êtes pas sûr) : omettez enable_original_uv ou réglez-le sur false. Le système générera automatiquement une disposition UV pour votre modèle. Les UV générés automatiquement sont optimisés pour la couverture, mais vous n'aurez pas de contrôle sur l'emplacement des coutures de texture.

model_insufficient_uv

Cette erreur se produit lorsqu'un modèle possède des coordonnées UV, mais que la couverture UV est trop petite pour un texturage de qualité. Cela se produit couramment avec des modèles exportés à partir d'outils 3D qui génèrent des UV de remplacement ou effondrés sans un dépliage approprié.

UVs insuffisantes vs Bonnes UVs

Résolution :

  • Si vous devez préserver votre disposition UV d'origine : redépliez les UV du modèle dans votre logiciel 3D. Assurez-vous que les îlots UV sont correctement répartis dans l'espace UV plutôt que d'être regroupés dans une petite zone.
  • Si vous n'avez pas besoin d'un contrôle UV spécifique : omettez enable_original_uv ou définissez-le sur false. Le système générera automatiquement une nouvelle disposition UV. Le compromis est que vous perdez le placement original des coutures, mais les UV générées automatiquement auront une couverture appropriée pour le texturage.

invalid_input

Il s'agit du code d'erreur de secours lorsque l'entrée échoue à la validation mais qu'aucun code plus spécifique ne s'applique. Le champ message contient la raison spécifique de l'échec.

Les causes courantes incluent :

  • Fichiers de modèle vides ou corrompus
  • Variations de format de fichier non prises en charge (par exemple, fichiers FBX ASCII, GLB compressés avec meshopt)
  • Aucun objet 3D valide trouvé dans le modèle téléchargé (par exemple, le fichier ne contient que des armatures, des caméras ou des lumières)
  • Contenu qui ne passe pas les filtres de sécurité

Résolution : Vérifiez le champ message pour des détails sur ce qui a mal tourné. Assurez-vous que vos fichiers d'entrée et paramètres correspondent aux exigences du point de terminaison.

moderation_blocked

Cette erreur se produit lorsque votre prompt ou vos images de référence sont rejetés par les filtres de sécurité de l'IA. Le filtre évalue à la fois le prompt textuel et toutes les images de référence ensemble.

Résolution :

  • Reformulez votre prompt textuel pour supprimer les descriptions suggestives ou sensibles.
  • Ajustez les images de référence si elles représentent un contenu susceptible de déclencher les filtres de sécurité.

timeout

Cette erreur signifie que le temps de traitement de votre tâche a dépassé la limite autorisée. Cela peut se produire en raison d'une charge système élevée ou parce que l'entrée est trop complexe pour être traitée dans le délai imparti.

Résolution :

  1. Réessayez la demande. Les timeouts sont souvent transitoires et un nouvel essai peut réussir.
  2. Simplifiez votre entrée. Si les réessais continuent d'échouer, votre entrée peut être trop complexe. Essayez de réduire le niveau de détail dans votre image ou prompt. Voir image_too_complex pour des conseils sur les types d'entrées plus difficiles à traiter.

format_conversion_failed

Cette erreur se produit lorsque le modèle 3D généré n'a pas pu être converti dans le format de sortie demandé. Le modèle a été généré avec succès, mais l'étape de conversion a échoué.

Résolution :

  1. Réessayez la demande.
  2. Essayez un format de sortie différent. Si un format spécifique échoue constamment, passez à un autre format qui répond à vos besoins.

Bonnes pratiques

  1. Implémentez une logique de nouvelle tentative. Pour les erreurs de type timeout et service_unavailable, implémentez une logique de nouvelle tentative avec backoff exponentiel.
  2. Enregistrez les identifiants de tâche. Enregistrez toujours l'identifiant de la tâche à des fins de débogage. Incluez-le lorsque vous contactez le support.
  3. Validez les entrées. Assurez-vous que vos images et modèles d'entrée répondent aux exigences de format avant la soumission.