Błędy
W tym przewodniku omówimy, co się dzieje, gdy podczas pracy z Meshy API coś pójdzie nie tak.
Błędy żądań
Te błędy są zwracane natychmiast, gdy Twoje żądanie API zostanie odrzucone. Sprawdź kod statusu HTTP oraz pole message, aby zrozumieć, co poszło nie tak.
Format odpowiedzi
Odpowiedź z błędem zawiera pojedyncze pole message opisujące, co poszło nie tak:
- Name
- message
- Type
- string
- Description
Krótki opis błędu.
Kody statusu
- Name
2xx- Description
Kod statusu 2xx wskazuje na pomyślną odpowiedź.
- Name
200 - OK- Description
Domyślnie, jeśli wszystko przebiegło zgodnie z oczekiwaniami, zwracany jest kod statusu 200.
- Name
202 - Accepted- Description
Twoje żądanie zostało przyjęte do przetworzenia, ale przetwarzanie nie zostało jeszcze zakończone. Jest to niewiążąca odpowiedź od Meshy API. Na przykład żądanie utworzenia nowego zadania zwróci kod statusu 202.
- Name
4xx- Description
Kod statusu 4xx wskazuje na błąd po stronie klienta.
- Name
400 - Bad Request- Description
Żądanie było nieprawidłowe, często z powodu braku wymaganego parametru lub gdy jeden z parametrów był nieprawidłowo sformatowany.
- Name
401 - Unauthorized- Description
Nie podano prawidłowego klucza API lub podany klucz API nie jest uprawniony do dostępu do punktu końcowego Meshy API.
- Name
402 - Payment Required- Description
Niewystarczające środki na koncie powiązanym z podanym kluczem API.
- Name
403 - Forbidden- Description
Dostęp do żądanego zasobu jest zabroniony. Może się to zdarzyć, jeśli próbujesz uzyskać dostęp do Meshy API bezpośrednio z kodu JavaScript po stronie klienta, ponieważ żądania Cross-Origin Resource Sharing (CORS) z przeglądarek nie są dozwolone. Rozważ użycie proxy po stronie serwera dla takich żądań. Więcej informacji znajdziesz w przewodniku MDN CORS.
- Name
404 - Not Found- Description
Żądany zasób nie istnieje. Na przykład, gdy próbujesz pobrać zadanie po jego ID, ale podałeś nieprawidłowe ID, otrzymasz kod statusu 404.
- Name
409 - Conflict- Description
Zasób istnieje, ale jego bieżący stan nie pozwala na wykonanie operacji. Na przykład usunięcie zadania, które jest już w stanie
IN_PROGRESS, zwraca 409: proces roboczy rozpoczął już pracę, której nie można cofnąć, więc zadanie pozostaje uruchomione. Poczekaj na status końcowy (SUCCEEDED,FAILEDlubCANCELED) i spróbuj ponownie.
- Name
429 - Too Many Requests- Description
Zbyt wiele żądań trafiło do Meshy API w zbyt krótkim czasie. Szczegółowe informacje znajdziesz w przewodniku Limity zapytań.
- Name
5xx- Description
Kod statusu 5xx wskazuje na błąd po stronie serwera. Jeśli go zobaczysz, sprawdź naszą stronę statusu po więcej informacji i skontaktuj się z nami przez Discord, aby uzyskać pomoc.
Example: 400 Bad Request
{
"message": "Invalid model file extension: .3dm"
}
Błędy zadań
Te błędy występują po utworzeniu zadania i podczas jego przetwarzania. Sprawdź obiekt task_error w odpowiedzi zadania, aby uzyskać szczegóły błędu.
Obiekt task_error zawiera następujące pola:
- Name
- type
- Type
- string
- Description
Kategoria błędu. Zawsze obecna w przypadku nieudanych zadań. Zobacz Typy błędów poniżej.
- Name
- message
- Type
- string
- Description
Opis błędu w formie czytelnej dla człowieka. Zawsze obecny w przypadku nieudanych zadań.
- Name
- code
- Type
- string
- Opcjonalne
- Description
Specyficzny kod błędu identyfikujący problem. Obecny, gdy dostępne są dodatkowe szczegóły. Zobacz Kody błędów poniżej.
- Name
- doc_url
- Type
- string
- Opcjonalne
- Description
Link do szczegółowej dokumentacji dla tego kodu błędu, w tym wskazówki dotyczące rozwiązania. Obecny, gdy
codejest obecny.
Błąd ze szczegółami
{
"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"
}
}
Błąd bez szczegółów
{
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"status": "FAILED",
"task_error": {
"type": "server_error",
"message": "An internal error occurred. Please retry."
}
}
Typy błędów
Pole type informuje o ogólnej kategorii niepowodzenia. Użyj go, aby zdecydować o strategii ponowienia.
- Name
invalid_input- Description
Coś jest nie tak z danymi wejściowymi, które podałeś. Sprawdź pola
codeimessagedla szczegółów, napraw problem i spróbuj ponownie.
- Name
timeout- Description
Przetwarzanie przekroczyło limit czasu. Jest to często przejściowe. Spróbuj ponownie wysłać żądanie, a jeśli nadal się nie powiedzie, spróbuj uprościć dane wejściowe.
- Name
service_unavailable- Description
Usługa jest tymczasowo niedostępna. Poczekaj chwilę i spróbuj ponownie.
- Name
server_error- Description
Wystąpił wewnętrzny błąd podczas przetwarzania. Spróbuj ponownie wysłać żądanie. Jeśli problem będzie się powtarzał, skontaktuj się z pomocą techniczną, podając swój identyfikator zadania.
Kody błędów
Gdy pole code jest obecne, identyfikuje konkretny, możliwy do rozwiązania problem. Poniżej znajduje się pełna referencja dla każdego kodu błędu.
image_too_complex
Ten błąd występuje, gdy obraz wejściowy lub prompt opisuje temat, który jest zbyt geometrycznie skomplikowany, aby model generowania 3D mógł go przetworzyć.
Typowe przykłady obejmują:
- Gęste stosy małych obiektów (np. skrzynka pełna owoców, stos książek)
- Skomplikowane powtarzające się wzory (np. struktury kratowe, rusztowania, siatki druciane)
- Złożone struktury budynków (np. wielopiętrowe budynki z wieloma oknami i balkonami)
- Wiele odrębnych obiektów na jednym obrazie zamiast jednego tematu
Przykłady wejść, które prawdopodobnie są zbyt skomplikowane:




Rozwiązanie:
- Użyj jednego obiektu na obraz. Model działa najlepiej z jednym wyraźnym tematem. Nie umieszczaj wielu oddzielnych obiektów na tym samym obrazie lub w prompt.
- Uprość swój temat. Zmniejsz poziom szczegółowości. Na przykład, prosty wazon zamiast wazonu wypełnionego dziesiątkami kwiatów.
- Unikaj promptów na poziomie sceny. Całe budynki, bloki miejskie, wnętrza wypełnione meblami lub krajobrazy prawdopodobnie przekroczą możliwości modelu. Skup się na jednym obiekcie.
- Unikaj gęstych powtarzających się struktur. Tematy takie jak rusztowania, siatki druciane, wzory kratowe lub stosy wielu małych przedmiotów są częstymi wyzwalaczami.
model_missing_uv
Ten błąd występuje, gdy przesyłasz model do teksturowania z ustawionym enable_original_uv na true, ale model nie ma współrzędnych UV. Współrzędne UV definiują, jak 2D tekstura owija się na 3D powierzchni twojego modelu.

Rozwiązanie:
Właściwe rozwiązanie zależy od tego, dlaczego ustawiłeś enable_original_uv na true:
- Jeśli musisz zachować oryginalny układ UV swojego modelu (np. niestandardowe rozmieszczenie szwów dla precyzyjnego mapowania tekstur): twój model musi mieć prawidłowe współrzędne UV. Zweryfikuj istnienie UV w edytorze UV twojego oprogramowania 3D przed przesłaniem. Pamiętaj, że pliki STL nie mogą przechowywać danych UV, więc użyj GLB, FBX lub OBJ zamiast tego.
- Jeśli nie potrzebujesz specyficznej kontroli UV (lub nie jesteś pewien): pomiń
enable_original_uvlub ustaw go nafalse. System automatycznie wygeneruje układ UV dla twojego modelu. Automatycznie wygenerowane UV są zoptymalizowane pod kątem pokrycia, ale nie będziesz mieć kontroli nad tym, gdzie są umieszczone szwy tekstury.
model_insufficient_uv
Ten błąd występuje, gdy model ma współrzędne UV, ale pokrycie UV jest zbyt małe dla jakościowego teksturowania. Zwykle dzieje się to z modelami eksportowanymi z narzędzi 3D, które generują tymczasowe lub złożone UV bez odpowiedniego rozwinięcia.

Rozwiązanie:
- Jeśli musisz zachować swój oryginalny układ UV: ponownie rozwiń UV modelu w swoim oprogramowaniu 3D. Upewnij się, że wyspy UV są odpowiednio rozłożone w przestrzeni UV, a nie złożone w małym obszarze.
- Jeśli nie potrzebujesz specyficznej kontroli UV: pomiń
enable_original_uvlub ustaw nafalse. System automatycznie wygeneruje nowy układ UV. Kompromis polega na utracie oryginalnego rozmieszczenia szwów, ale automatycznie wygenerowane UV będą miały odpowiednie pokrycie dla teksturowania.
model_missing_texture
Ten błąd występuje, gdy model wejściowy zadania Multi-Color Print nie zawiera żadnych informacji o kolorze, które konwerter mógłby rozdzielić na kolory druku. Wielokolorowy plik 3MF jest budowany na podstawie kolorów modelu, więc zwykła biała siatka — na przykład podgląd z Tekst na 3D lub Obraz na 3D, który nigdy nie został poddany teksturowaniu, albo wynik naprawy / automatycznego podziału — nie zawiera niczego, na czym można by pracować.
To, co liczy się jako źródło koloru, zależy od żądanego style:
realisticpobiera próbki tekstury koloru bazowego na podstawie współrzędnych UV modelu, więc wymaga pojedynczej tekstury koloru bazowego ze współrzędnymi UV na każdej części siatki.cartoonspłaszcza kolory dla każdej ściany i akceptuje teksturę koloru bazowego na dowolnej części lub kolory na wierzchołkach (COLOR_0).
Model, który nie ma ani tekstury koloru bazowego, ani kolorów wierzchołków, zostanie odrzucony dla obu stylów; w przypadku cartoon w przeciwnym razie „powiódłby się” jako druk jednokolorowy.
Większość żądań jest odrzucana, zanim zadanie zostanie utworzone (400 Bad Request z tym samym wyjaśnieniem), więc zazwyczaj zobaczysz ten kod tylko wtedy, gdy nie można było wcześniej sprawdzić danych wejściowych — na przykład przesłany plik .fbx jest sprawdzany dopiero po tym, jak zadanie go znormalizuje.
Rozwiązanie:
- Najpierw nałóż teksturę na model. Uruchom na nim zadanie Retexture lub wygeneruj model z włączonym teksturowaniem (zadanie refine z Tekst na 3D albo zadanie Obraz na 3D z
should_texture: true), a następnie przekaż to zadanie jakoinput_task_id. - Modele z kolorami wierzchołków (skany fotogrametryczne, ręcznie malowane siatki): zażądaj
style: "cartoon", który odczytujeCOLOR_0. - Częściowo teksturowane modele lub modele z wieloma teksturami w trybie
realistic: każda część siatki wymaga współrzędnych UV oraz tej samej, pojedynczej tekstury koloru bazowego. Nałóż teksturę na pozostałe części lub połącz tekstury w jeden atlas, albo przełącz się nastyle: "cartoon".
invalid_input
To jest domyślny kod błędu, gdy dane wejściowe nie przechodzą walidacji, ale nie ma bardziej szczegółowego kodu, który można zastosować. Pole message zawiera konkretny powód niepowodzenia.
Typowe przyczyny to:
- Puste lub uszkodzone pliki modeli
- Nieobsługiwane warianty formatów plików (np. pliki ASCII FBX, GLB skompresowane za pomocą meshopt)
- Brak prawidłowych obiektów 3D w przesłanym modelu (np. plik zawiera tylko armatury, kamery lub światła)
- Treści, które nie przechodzą przez filtry bezpieczeństwa
Rozwiązanie: Sprawdź pole message, aby uzyskać szczegóły dotyczące tego, co poszło nie tak. Zweryfikuj, czy twoje pliki wejściowe i parametry spełniają wymagania punktu końcowego.
moderation_blocked
Ten błąd występuje, gdy Twój prompt lub obrazy referencyjne są odrzucane przez filtry bezpieczeństwa AI. Filtr ocenia zarówno tekstowy prompt, jak i wszelkie obrazy referencyjne razem.
Rozwiązanie:
- Przekształć swój tekstowy prompt, aby usunąć sugestywne lub wrażliwe opisy.
- Dostosuj obrazy referencyjne, jeśli przedstawiają treści, które mogą uruchomić filtry bezpieczeństwa.
timeout
Ten błąd oznacza, że czas przetwarzania Twojego zadania przekroczył dozwolony limit. Może się to zdarzyć z powodu dużego obciążenia systemu lub zbyt skomplikowanego wejścia do przetworzenia w ramach limitu czasu.
Rozwiązanie:
- Ponów próbę. Timeouty są często przejściowe i ponowienie próby może się powieść.
- Uprość swoje wejście. Jeśli ponowne próby nadal zawodzą, Twoje wejście może być zbyt skomplikowane. Spróbuj zmniejszyć poziom szczegółowości w swoim obrazie lub prompt. Zobacz
image_too_complexw celu uzyskania wskazówek, jakie typy wejść są trudniejsze do przetworzenia.
format_conversion_failed
Ten błąd występuje, gdy wygenerowany model 3D nie mógł zostać przekonwertowany na żądany format wyjściowy. Model został wygenerowany pomyślnie, ale krok konwersji zakończył się niepowodzeniem.
Rozwiązanie:
- Ponów próbę.
- Spróbuj innego formatu wyjściowego. Jeśli konkretny format ciągle zawodzi, przełącz się na inny format, który spełnia Twoje potrzeby.
Najlepsze praktyki
- Zaimplementuj logikę ponawiania. Dla błędów
timeoutiservice_unavailablezaimplementuj logikę ponawiania z wykładniczym opóźnieniem. - Rejestruj identyfikatory zadań. Zawsze rejestruj identyfikator zadania do celów debugowania. Dołącz go, kontaktując się z pomocą techniczną.
- Waliduj dane wejściowe. Upewnij się, że Twoje obrazy wejściowe i modele spełniają wymagania dotyczące formatu przed przesłaniem.