Erreurs
Découvrez pourquoi une requête ou une tâche a échoué, et ce qu'il faut faire ensuite. Une requête peut échouer immédiatement avec une erreur HTTP, et une tâche peut échouer plus tard avec une task_error.
Erreurs de requête
Meshy renvoie ces erreurs immédiatement, lorsqu'elle rejette une requête. Pour savoir ce qui n'a pas fonctionné, vérifiez le code de statut HTTP et le champ message.
Format de réponse
La réponse d'erreur comporte un champ message qui décrit ce qui n'a pas fonctionné :
- Name
- message
- Type
- string
- Description
Une courte description de l'erreur.
Codes de statut
- Name
2xx- Description
Succès.
- Name
200 - OK- Description
La requête a fonctionné.
- Name
202 - Accepted- Description
Meshy a accepté la requête, et le traitement n'est pas encore terminé. Par exemple, une requête qui crée une tâche renvoie
202.
- Name
4xx- Description
Il y a un problème avec la requête ou avec votre compte. Chaque statut indique quoi faire.
- Name
400 - Bad Request- Description
La requête n'est pas valide, souvent parce qu'un paramètre requis est manquant ou qu'un paramètre est mal formé.
- Name
401 - Unauthorized- Description
La clé API est manquante, n'est pas valide, ou ne peut pas accéder à ce point de terminaison. Voir Authentification.
- Name
402 - Payment Required- Description
Le compte de la clé API n'a pas assez de crédits pour la requête. Sur le plan Free, la plupart des requêtes qui créent une tâche renvoient aussi
402.
- Name
403 - Forbidden- Description
Vous n'êtes pas autorisé à effectuer cette requête, par exemple pour l'une de ces raisons :
- La requête provenait d'une adresse en dehors de la liste d'autorisation IP de la clé API.
- Le filtrage IP de votre organisation a bloqué les fichiers d'une tâche lorsque vous l'avez lue.
- Le point de terminaison n'est pas disponible sur votre plan.
- Name
404 - Not Found- Description
La ressource n'existe pas. Par exemple, récupérer une tâche avec un identifiant qui n'existe pas renvoie
404.
- Name
409 - Conflict- Description
La ressource existe, mais son état ne permet pas l'opération. Par exemple, supprimer une tâche
IN_PROGRESSrenvoie409, car Meshy ne peut pas rembourser une tâche qu'un worker a déjà commencée. La tâche continue de s'exécuter. Attendez un statut final (SUCCEEDED,FAILED, ouCANCELED), puis supprimez la tâche.
- Name
429 - Too Many Requests- Description
Vous avez envoyé trop de requêtes, ou trop de vos tâches sont en file d'attente ou en cours d'exécution. Lorsque la réponse contient un en-tête
Retry-After, attendez ce nombre de secondes, puis réessayez. Voir Limites de débit.
- Name
5xx- Description
Un problème est survenu du côté de Meshy. Réessayez avec un intervalle croissant. Si l'erreur persiste, consultez la page de statut et contactez-nous sur Discord.
Example: 400 Bad Request
{
"message": "Invalid model file extension: .3dm"
}
Erreurs de tâche
Une tâche créée par Meshy peut tout de même échouer pendant son exécution. Son status devient FAILED, Meshy rembourse ses crédits, et task_error explique pourquoi.
Le task_error d'une tâche échouée comporte les champs suivants :
- Name
- type
- Type
- string
- Description
La catégorie de l'erreur. Elle est toujours présente sur une tâche échouée. Servez-vous-en pour décider si vous devez réessayer. Voir Types d'erreurs.
- Name
- message
- Type
- string
- Description
Une description de l'erreur lisible par un humain. Elle est toujours présente sur une tâche échouée.
- Name
- code
- Type
- string
- Optionnel
- Description
Un problème spécifique et documenté sur lequel vous pouvez agir. Présent lorsque Meshy dispose de plus de détails. Voir Codes d'erreurs. Meshy peut ajouter des codes, donc traitez un code que vous ne reconnaissez pas selon son
type.
- Name
- doc_url
- Type
- string
- Optionnel
- Description
Un lien vers l'entrée du code sur cette page, qui indique quoi faire. Présent lorsque
codeest 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'erreur
type est la catégorie générale de l'échec. Utilisez-le pour décider de la marche à suivre.
- Name
invalid_input- Description
Il y a un problème avec l'entrée que vous avez envoyée. Lisez
codeetmessage, corrigez l'entrée, puis créez une nouvelle tâche.
- Name
timeout- Description
La tâche a dépassé une limite de temps côté serveur, pour le traitement ou pour l'attente dans la file, et a échoué. Meshy rembourse ses crédits. C'est souvent temporaire. Créez à nouveau la tâche, et si elle continue d'échouer, essayez une entrée plus simple.
- Name
service_unavailable- Description
Le service était temporairement indisponible. Attendez un instant, puis créez à nouveau la tâche.
- Name
server_error- Description
Un problème est survenu du côté de Meshy pendant l'exécution de la tâche. Créez à nouveau la tâche. Si elle continue d'échouer, contactez le support en indiquant l'identifiant de la tâche.
Codes d'erreur
Lorsque code est présent, il désigne l'un des problèmes suivants.
image_too_complex
L'image d'entrée ou le prompt décrit un sujet trop complexe sur le plan géométrique pour la génération 3D.
Par exemple :
- Des amas denses de petits objets, comme une caisse pleine de fruits ou une pile de livres
- Des motifs répétitifs complexes, comme des structures en treillis, des échafaudages ou des grillages métalliques
- Des bâtiments complexes, comme des immeubles à plusieurs étages avec de nombreuses fenêtres et balcons
- Plusieurs objets distincts dans une seule image, au lieu d'un sujet unique
Ces entrées sont probablement trop complexes :




Pour résoudre ce problème, essayez une ou plusieurs des solutions suivantes :
- Utilisez un seul objet par image. Meshy fonctionne mieux avec un seul sujet clair, donc évitez de placer plusieurs objets distincts dans la même image ou le même prompt.
- Simplifiez votre sujet. Par exemple, utilisez un vase simple plutôt qu'un vase rempli de dizaines de fleurs.
- Évitez les scènes. Des bâtiments entiers, des pâtés de maisons, des pièces meublées et des paysages sont susceptibles d'être trop complexes. Concentrez-vous sur un seul objet.
- Évitez les structures répétitives denses. Les échafaudages, les grillages métalliques, les treillis et les amas de petits objets sont des déclencheurs fréquents.
model_missing_uv
Vous avez envoyé un modèle pour le texturage avec enable_original_uv défini sur true, mais le modèle ne possède pas de coordonnées UV. Les coordonnées UV définissent comment une texture 2D s'enroule sur la surface 3D.

Pour résoudre ce problème, effectuez l'une des opérations suivantes :
- Pour conserver la disposition UV propre à votre modèle, par exemple pour un placement personnalisé des coutures, ajoutez des UV au modèle dans votre logiciel 3D. Vérifiez-les dans son éditeur UV, puis téléchargez à nouveau le modèle. Les fichiers STL ne peuvent pas stocker d'UV, utilisez donc GLB, FBX ou OBJ.
- Si vous n'avez pas besoin de votre propre disposition, ou si vous n'êtes pas sûr, omettez
enable_original_uvou définissez-le surfalse. Meshy crée alors une disposition UV pour le modèle. Les nouvelles UV couvrent bien le modèle, mais vous ne pouvez pas contrôler l'emplacement des coutures de la texture.
model_insufficient_uv
Le modèle possède des coordonnées UV, mais elles ne couvrent qu'une trop petite partie de l'espace UV pour permettre une bonne texturation. Cela arrive souvent avec des modèles dont l'exportateur a écrit des UV provisoires ou effondrées sans dépliage correct.

Pour corriger cela, procédez de l'une des manières suivantes :
- Pour conserver votre propre disposition UV, redépliez les UV du modèle dans votre logiciel 3D. Répartissez les îlots sur l'ensemble de l'espace UV au lieu de les regrouper dans un petit coin.
- Si vous n'avez pas besoin de votre propre disposition, omettez
enable_original_uvou définissez-le surfalse. Meshy crée alors une nouvelle disposition UV. Vous perdez le placement de vos coutures, mais les nouvelles UV couvrent suffisamment d'espace pour la texturation.
model_missing_texture
Le modèle d'entrée d'une tâche Multi-Color Print n'a aucune couleur que Meshy peut répartir en couleurs d'impression. Meshy construit un fichier 3MF multicolore à partir des couleurs du modèle, donc un maillage blanc uni n'offre rien à exploiter. Par exemple, un aperçu Texte en 3D ou Image en 3D qui n'a jamais été texturé n'a pas de couleur. Il en va de même pour le résultat de Réparer l'imprimabilité, ou pour une tâche Auto Split qui n'a pas conservé la texture.
Ce qui compte comme couleur dépend du style demandé :
realisticéchantillonne la texture de couleur de base à travers les UV du modèle. Il lui faut une seule texture de couleur de base, et des UV sur chaque partie du maillage.cartoonaplatit les couleurs par face. Il accepte une texture de couleur de base sur n'importe quelle partie, ou des couleurs par sommet (COLOR_0).
Meshy rejette un modèle qui n'a ni texture de couleur de base ni couleurs de sommet pour les deux styles, plutôt que de laisser cartoon le transformer en une impression monochrome.
Meshy refuse la plupart de ces requêtes avant même de créer la tâche, avec un code 400 et la même explication. Vous n'obtenez généralement ce code que lorsque Meshy ne peut pas vérifier l'entrée à l'avance. Par exemple, Meshy ne vérifie un fichier .fbx téléversé qu'après la conversion de la tâche.
Pour corriger cela, utilisez l'option adaptée à votre modèle :
- Texturez d'abord le modèle. Exécutez Retexturisation dessus, ou générez-le avec une tâche refine Texte en 3D ou une tâche Image en 3D avec
should_texture: true. Envoyez ensuite cette tâche en tant queinput_task_id. - Pour un modèle à couleurs de sommet, comme un scan photogrammétrique ou un maillage peint à la main, utilisez
style: "cartoon", qui litCOLOR_0. - Pour un modèle partiellement texturé ou multi-texture avec
realistic, attribuez des UV à chaque partie du maillage ainsi qu'une seule et même texture de couleur de base. Pour ce faire, texturez les parties restantes, ou fusionnez les textures en un seul atlas. Vous pouvez aussi passer àstyle: "cartoon".
textured_split_refused
Une tâche Auto Split avec keep_texture: true ne peut pas conserver la texture du modèle d'entrée sur les pièces. Par exemple, le modèle n'a pas d'UV, ou sa texture ne dispose pas d'espace pour les nouvelles faces créées par les découpes. Meshy rembourse les crédits.
Pour corriger cela, envoyez à nouveau la requête sans keep_texture, ou avec keep_texture: false. Les pièces reviennent alors chacune avec une couleur unie.
invalid_input
L'entrée a échoué à une vérification, et aucun code plus spécifique ne s'applique. message indique la raison.
Par exemple :
- Un fichier de modèle vide ou corrompu
- Une variante non prise en charge d'un format de fichier, comme un fichier FBX en ASCII ou un fichier GLB compressé avec meshopt
- Un modèle téléchargé sans objet 3D valide, par exemple un fichier contenant uniquement des armatures, des caméras ou des lumières
- Un contenu qui ne passe pas les filtres de sécurité
Pour corriger cela, consultez message pour connaître le problème précis. Vérifiez que vos fichiers d'entrée et vos paramètres respectent les exigences du point de terminaison.
moderation_blocked
Les filtres de sécurité ont rejeté votre prompt ou vos images de référence. Les filtres vérifient le texte et les images ensemble.
Pour résoudre ce problème, effectuez l'une ou l'autre des actions suivantes (ou les deux) :
- Reformulez le prompt pour supprimer les descriptions suggestives ou sensibles.
- Changez les images de référence qui montrent un contenu susceptible d'être bloqué par les filtres.
moderation_unavailable
Type : server_error. La moderation de contenu était temporairement indisponible, donc Meshy a fait échouer la tâche plutôt que d'ignorer la vérification. Il n'y a rien d'anormal avec votre contenu.
Pour résoudre ce problème, créez à nouveau la tâche.
timeout
La tâche a dépassé une limite de temps côté serveur, que ce soit pour le traitement ou pour l'attente dans la file, Meshy l'a donc fait échouer et a remboursé ses crédits. Une charge élevée, ou une entrée trop complexe pour être traitée dans les délais, peut en être la cause.
Ceci est différent d'un timeout dans votre propre code. Si votre client a arrêté d'attendre, la tâche continue de s'exécuter. Voir Combien de temps attendre.
Pour corriger ce problème, suivez ces étapes :
- Recréez la tâche. Les timeouts sont souvent temporaires, et une nouvelle tâche peut réussir.
- Si l'échec persiste, simplifiez votre entrée, par exemple en réduisant le niveau de détail de votre image ou de votre prompt. Pour les entrées plus difficiles à traiter, voir
image_too_complex.
queue_timeout
Type : timeout. La tâche a attendu trop longtemps dans la file d'attente sans démarrer, Meshy l'a donc fait échouer et a remboursé les crédits facturés pour celle-ci. Votre saisie n'est pas à l'origine de cette erreur.
Pour corriger ce problème, recréez la tâche.
format_conversion_failed
Meshy a généré le modèle, mais sa conversion vers un format que vous avez demandé a échoué.
Pour corriger ce problème, suivez ces étapes :
- Recréez la tâche.
- Si un format échoue systématiquement, demandez un format différent adapté à vos besoins.
Bonnes pratiques
- Réessayez les tâches échouées. Pour une tâche échouée avec
timeout,service_unavailableouserver_error, créez une nouvelle tâche avec un backoff exponentiel. - Ne créez pas de nouvelle tâche lorsque votre propre requête expire. La première tâche pourrait encore être en cours d'exécution, vérifiez donc si elle existe avant d'en créer une autre. Consultez Combien de temps attendre.
- Journalisez les ID de tâches. Incluez l'ID lorsque vous contactez le support.
- Vérifiez les entrées avant de les envoyer. Assurez-vous que les images et les modèles respectent les exigences de format du point de terminaison.
- Appelez l'API depuis votre serveur. Le code exécuté dans un navigateur expose votre clé API à quiconque ouvre la page.