Errori

In questa guida, parleremo di cosa succede quando qualcosa va storto mentre lavori con la Meshy API.


Errori di Richiesta

Questi errori vengono restituiti immediatamente quando la tua richiesta API viene rifiutata. Controlla il codice di stato HTTP e il campo message per capire cosa è andato storto.

Formato della Risposta

La risposta di errore contiene un singolo campo message che descrive cosa è andato storto:

  • Name
    message
    Type
    string
    Description

    Una breve descrizione dell'errore.

Codici di Stato

  • Name
    2xx
    Description

    Un codice di stato 2xx indica una risposta avvenuta con successo.

    • Name
      200 - OK
      Description

      Per impostazione predefinita, se tutto ha funzionato come previsto, verrà restituito un codice di stato 200.

    • Name
      202 - Accepted
      Description

      La tua richiesta è stata accettata per l'elaborazione, ma l'elaborazione non è stata completata. Questa è una risposta non impegnativa da parte di Meshy API. Ad esempio, una richiesta per creare un nuovo compito restituirà un codice di stato 202.

  • Name
    4xx
    Description

    Un codice di stato 4xx indica un errore del client.

    • Name
      400 - Bad Request
      Description

      La richiesta non era accettabile, spesso a causa della mancanza di un parametro obbligatorio o uno dei parametri era malformato.

    • Name
      401 - Unauthorized
      Description

      Nessuna chiave API valida fornita o la chiave API fornita non è autorizzata ad accedere all'endpoint Meshy API.

    • Name
      402 - Payment Required
      Description

      Fondi insufficienti nell'account associato alla chiave API fornita.

    • Name
      403 - Forbidden
      Description

      L'accesso alla risorsa richiesta è vietato. Questo potrebbe accadere se si tenta di accedere direttamente all'API Meshy dal codice JavaScript lato client, poiché le richieste Cross-Origin Resource Sharing (CORS) dai browser non sono permesse. Considera l'uso di un proxy lato server per tali richieste. Per maggiori dettagli, vedi la guida MDN CORS.

    • Name
      404 - Not Found
      Description

      La risorsa richiesta non esiste. Ad esempio, quando si tenta di recuperare un compito tramite il suo ID ma si fornisce un ID non valido, si otterrà un codice di stato 404.

    • Name
      429 - Too Many Requests
      Description

      Troppe richieste hanno colpito l'API Meshy troppo rapidamente. Si prega di fare riferimento alla guida Limiti di Frequenza per i dettagli.

  • Name
    5xx
    Description

    Un codice di stato 5xx indica un errore del server. Se ne vedi uno, controlla la nostra pagina di stato per maggiori informazioni e contattaci tramite Discord per assistenza.

Esempio: 400 Bad Request

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

Errori del Task

Questi errori si verificano dopo che un task è stato creato ed è in elaborazione. Controlla l'oggetto task_error nella risposta del task per i dettagli dell'errore.

L'oggetto task_error contiene i seguenti campi:

  • Name
    type
    Type
    string
    Description

    La categoria dell'errore. Sempre presente nei task falliti. Vedi Tipi di Errori sotto.

  • Name
    message
    Type
    string
    Description

    Una descrizione leggibile dell'errore. Sempre presente nei task falliti.

  • Name
    code
    Type
    string
    Opzionale
    Description

    Un codice di errore specifico che identifica il problema. Presente quando sono disponibili dettagli aggiuntivi. Vedi Codici di Errore sotto.

  • Name
    doc_url
    Type
    string
    Opzionale
    Description

    Un link alla documentazione dettagliata per questo codice di errore, inclusa la guida alla risoluzione. Presente quando code è presente.

Errore con dettagli

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

Errore senza dettagli

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

Tipi di Errore

Il campo type indica la categoria generale del fallimento. Usalo per decidere la tua strategia di ritentativo.

  • Name
    invalid_input
    Description

    C'è qualcosa di sbagliato nell'input fornito. Controlla i campi code e message per i dettagli, correggi il problema e riprova.

  • Name
    timeout
    Description

    Il tempo limite per l'elaborazione è stato superato. Questo è spesso transitorio. Riprova la richiesta e, se continua a fallire, prova a semplificare il tuo input.

  • Name
    service_unavailable
    Description

    Il servizio è temporaneamente non disponibile. Attendi un momento e riprova.

  • Name
    server_error
    Description

    Si è verificato un errore interno durante l'elaborazione. Riprova la richiesta. Se il problema persiste, contatta il supporto con il tuo ID attività.


Codici di Errore

Quando il campo code è presente, identifica un problema specifico e risolvibile. Di seguito è riportato il riferimento completo per ciascun codice di errore.

image_too_complex

Questo errore si verifica quando l'immagine di input o il prompt descrive un soggetto troppo complesso geometricamente per essere elaborato dal modello di generazione 3D.

Esempi comuni includono:

  • Pile dense di piccoli oggetti (ad es., una cassa piena di frutta, una pila di libri)
  • Motivi intricati e ripetuti (ad es., strutture a griglia, impalcature, reti metalliche)
  • Strutture edilizie complesse (ad es., edifici a più piani con molte finestre e balconi)
  • Molteplici oggetti distinti in un'immagine invece di un singolo soggetto

Esempi di input probabilmente troppo complessi:

Una cassa di bacche misteUn soffitto di cattedrale intricatoUn edificio in costruzione con impalcatureUna sfera a griglia a nido d'ape

Risoluzione:

  1. Usa un singolo oggetto per immagine. Il modello funziona meglio con un soggetto chiaro. Non includere più oggetti separati nella stessa immagine o prompt.
  2. Semplifica il tuo soggetto. Riduci il livello di dettaglio. Ad esempio, un semplice vaso invece di un vaso pieno di dozzine di fiori.
  3. Evita prompt a livello di scena. Edifici interi, isolati di città, interni pieni di mobili o paesaggi probabilmente superano la capacità del modello. Concentrati su un singolo oggetto invece.
  4. Evita strutture ripetute dense. Soggetti come impalcature, reti metalliche, motivi a griglia o pile di molti piccoli oggetti sono comuni fattori scatenanti.

model_missing_uv

Questo errore si verifica quando carichi un modello per la texturizzazione con enable_original_uv impostato su true, ma il modello non ha coordinate UV. Le coordinate UV definiscono come una texture 2D si avvolge sulla superficie 3D del tuo modello.

No UVs vs Good UVs

Risoluzione:

La soluzione giusta dipende dal motivo per cui hai impostato enable_original_uv su true:

  • Se hai bisogno di preservare il layout UV originale del tuo modello (ad esempio, posizionamento personalizzato delle cuciture per una mappatura precisa delle texture): il tuo modello deve avere coordinate UV valide. Verifica che le UV esistano nell'editor UV del tuo software 3D prima di caricare. Nota che i file STL non possono memorizzare dati UV, quindi utilizza GLB, FBX o OBJ invece.
  • Se non hai bisogno di un controllo specifico sulle UV (o non sei sicuro): ometti enable_original_uv o impostalo su false. Il sistema genererà automaticamente un layout UV per il tuo modello. Le UV generate automaticamente sono ottimizzate per la copertura, ma non avrai controllo su dove vengono posizionate le cuciture delle texture.

model_insufficient_uv

Questo errore si verifica quando un modello ha coordinate UV, ma la copertura UV è troppo piccola per una texturizzazione di qualità. Questo accade comunemente con modelli esportati da strumenti 3D che generano UV segnaposto o collassati senza un unwrap adeguato.

UV insufficienti vs UV buoni

Risoluzione:

  • Se hai bisogno di preservare il tuo layout UV originale: ri-unwrap le UV del modello nel tuo software 3D. Assicurati che le isole UV siano correttamente distribuite nello spazio UV piuttosto che collassate in un'area piccola.
  • Se non hai bisogno di un controllo UV specifico: ometti enable_original_uv o impostalo su false. Il sistema genererà automaticamente un nuovo layout UV. Il compromesso è che perderai il posizionamento originale delle cuciture, ma le UV generate automaticamente avranno una copertura adeguata per la texturizzazione.

invalid_input

Questo è il codice di errore di fallback quando l'input non supera la validazione ma non si applica nessun codice più specifico. Il campo message contiene la ragione specifica del fallimento.

Cause comuni includono:

  • File di modelli vuoti o corrotti
  • Variazioni di formato file non supportate (ad esempio, file FBX ASCII, GLB compressi con meshopt)
  • Nessun oggetto 3D valido trovato nel modello caricato (ad esempio, il file contiene solo armature, telecamere o luci)
  • Contenuti che non superano i filtri di sicurezza

Risoluzione: Controlla il campo message per dettagli su cosa è andato storto. Verifica che i tuoi file di input e parametri corrispondano ai requisiti dell'endpoint.

moderation_blocked

Questo errore si verifica quando il tuo prompt o le immagini di riferimento vengono rifiutati dai filtri di sicurezza AI. Il filtro valuta sia il prompt di testo che eventuali immagini di riferimento insieme.

Risoluzione:

  • Riformula il tuo prompt di testo per rimuovere descrizioni suggestive o sensibili.
  • Regola le immagini di riferimento se rappresentano contenuti che potrebbero attivare i filtri di sicurezza.

timeout

Questo errore significa che il tempo di elaborazione del tuo compito ha superato il limite consentito. Questo può accadere a causa di un elevato carico di sistema o perché l'input è troppo complesso da elaborare entro il limite di tempo.

Risoluzione:

  1. Riprova la richiesta. I timeout sono spesso transitori e un nuovo tentativo potrebbe avere successo.
  2. Semplifica il tuo input. Se i tentativi continuano a fallire, il tuo input potrebbe essere troppo complesso. Prova a ridurre il livello di dettaglio nella tua immagine o nel tuo prompt. Vedi image_too_complex per indicazioni su quali tipi di input sono più difficili da elaborare.

format_conversion_failed

Questo errore si verifica quando il modello 3D generato non può essere convertito nel formato di output richiesto. Il modello è stato generato con successo, ma il passaggio di conversione è fallito.

Risoluzione:

  1. Riprova la richiesta.
  2. Prova un formato di output diverso. Se un formato specifico continua a fallire, passa a un altro formato che soddisfi le tue esigenze.

Migliori Pratiche

  1. Implementa la logica di ripetizione. Per gli errori di timeout e service_unavailable, implementa una logica di ripetizione con backoff esponenziale.
  2. Registra gli ID delle attività. Registra sempre l'ID dell'attività per scopi di debug. Includilo quando contatti il supporto.
  3. Convalida gli input. Assicurati che le tue immagini e modelli di input soddisfino i requisiti di formato prima dell'invio.