ข้อผิดพลาด
ในคู่มือนี้ เราจะพูดถึงสิ่งที่เกิดขึ้นเมื่อมีบางอย่างผิดพลาดขณะที่คุณ ทำงานกับ Meshy API
ข้อผิดพลาดของคำขอ
ข้อผิดพลาดเหล่านี้จะถูกส่งกลับทันทีเมื่อคำขอ API ของคุณถูกปฏิเสธ ตรวจสอบรหัสสถานะ HTTP และฟิลด์ message เพื่อทำความเข้าใจว่าเกิดอะไรขึ้น
รูปแบบการตอบกลับ
การตอบกลับข้อผิดพลาดประกอบด้วยฟิลด์ message เพียงฟิลด์เดียวที่อธิบายว่าเกิดอะไรขึ้น:
- Name
- message
- Type
- string
- Description
คำอธิบายสั้น ๆ เกี่ยวกับข้อผิดพลาด
รหัสสถานะ
- Name
2xx- Description
รหัสสถานะ 2xx บ่งชี้ว่าการตอบกลับสำเร็จ
- Name
200 - OK- Description
โดยค่าเริ่มต้นหากทุกอย่างทำงานตามที่คาดไว้ จะมีการส่งคืนรหัสสถานะ 200
- Name
202 - Accepted- Description
คำขอของคุณได้รับการยอมรับเพื่อดำเนินการ แต่การประมวลผลยังไม่เสร็จสมบูรณ์ นี่เป็นการตอบกลับแบบไม่ผูกมัดจาก Meshy API ตัวอย่างเช่น คำขอสร้างงานใหม่ จะส่งคืนรหัสสถานะ 202
- Name
4xx- Description
รหัสสถานะ 4xx บ่งชี้ว่าเกิดข้อผิดพลาดฝั่งไคลเอนต์
- Name
400 - Bad Request- Description
คำขอไม่สามารถยอมรับได้ ซึ่งมักเกิดจากการขาดพารามิเตอร์ที่จำเป็น หรือพารามิเตอร์ตัวใดตัวหนึ่ง มีรูปแบบไม่ถูกต้อง
- Name
401 - Unauthorized- Description
ไม่มีการระบุ API คีย์ที่ถูกต้อง หรือ API คีย์ที่ระบุไม่ได้รับอนุญาตให้เข้าถึงเอนด์พอยต์ของ Meshy API
- Name
402 - Payment Required- Description
บัญชีที่เชื่อมโยงกับ API คีย์ที่ระบุมีเงินไม่เพียงพอ
- Name
403 - Forbidden- Description
คุณไม่ได้รับอนุญาตให้ส่งคำขอนี้ ตัวอย่างเช่น คำขอมาจากที่อยู่ที่อยู่นอกรายการ IP ที่อนุญาตของ API คีย์, การตรวจสอบเนื้อหาของแผน Enterprise ได้บล็อกไฟล์ของงานเมื่อคุณอ่านมัน หรือเอนด์พอยต์นี้ไม่พร้อมใช้งานสำหรับแผนของคุณ
- Name
404 - Not Found- Description
ทรัพยากรที่ร้องขอไม่มีอยู่ ตัวอย่างเช่น เมื่อคุณพยายามดึงข้อมูลงานด้วย ID ของมัน แต่ระบุ ID ที่ไม่ถูกต้อง คุณจะได้รับรหัสสถานะ 404
- Name
409 - Conflict- Description
ทรัพยากรมีอยู่จริง แต่สถานะปัจจุบันของมันไม่อนุญาตให้ดำเนินการดังกล่าว ตัวอย่างเช่น การลบงานที่อยู่ในสถานะ
IN_PROGRESSอยู่แล้วจะส่งคืน 409: เวิร์กเกอร์ได้เริ่ม งานที่ไม่สามารถคืนเงินได้ ดังนั้นงานจะถูกปล่อยให้ทำงานต่อไปแทน รอจนกว่าจะถึงสถานะสุดท้าย (SUCCEEDED,FAILEDหรือCANCELED) แล้วลองใหม่อีกครั้ง
- Name
429 - Too Many Requests- Description
มีคำขอจำนวนมากเกินไปถูกส่งมายัง Meshy API อย่างรวดเร็วเกินไป รอตามจำนวนวินาทีที่ระบุในส่วนหัว
Retry-Afterก่อนลองใหม่อีกครั้ง โปรดดูคู่มือ Rate Limits สำหรับรายละเอียด
Example: 400 Bad Request
{
"message": "Invalid model file extension: .3dm"
}
ข้อผิดพลาดของงาน
ข้อผิดพลาดเหล่านี้เกิดขึ้นหลังจากที่งานถูกสร้างและกำลังดำเนินการ ตรวจสอบวัตถุ task_error ในการตอบสนองของงานเพื่อดูรายละเอียดข้อผิดพลาด
วัตถุ task_error ประกอบด้วยฟิลด์ต่อไปนี้:
- Name
- type
- Type
- string
- Description
หมวดหมู่ของข้อผิดพลาด มีอยู่เสมอในงานที่ล้มเหลว ดู ประเภทข้อผิดพลาด ด้านล่าง
- Name
- message
- Type
- string
- Description
คำอธิบายข้อผิดพลาดที่มนุษย์สามารถอ่านได้ มีอยู่เสมอในงานที่ล้มเหลว
- Name
- code
- Type
- string
- ไม่บังคับ
- Description
รหัสข้อผิดพลาดเฉพาะที่ระบุปัญหา มีอยู่เมื่อมีรายละเอียดเพิ่มเติม ดู รหัสข้อผิดพลาด ด้านล่าง
- Name
- doc_url
- Type
- string
- ไม่บังคับ
- Description
ลิงก์ไปยังเอกสารรายละเอียดสำหรับรหัสข้อผิดพลาดนี้ รวมถึงคำแนะนำในการแก้ไข มีอยู่เมื่อ
codeมีอยู่
Error with 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"
}
}
Error without details
{
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"status": "FAILED",
"task_error": {
"type": "server_error",
"message": "An internal error occurred. Please retry."
}
}
ประเภทข้อผิดพลาด
ฟิลด์ type จะบอกหมวดหมู่กว้างๆ ของความล้มเหลว ใช้ข้อมูลนี้เพื่อตัดสินใจเลือกกลยุทธ์การลองใหม่ (retry)
- Name
invalid_input- Description
มีบางอย่างผิดพลาดกับข้อมูลนำเข้าที่คุณให้มา ตรวจสอบฟิลด์
codeและmessageเพื่อดูรายละเอียด แก้ไขปัญหา แล้วลองใหม่อีกครั้ง
- Name
timeout- Description
งานนี้ใช้เวลาเกินขีดจำกัดเวลาที่ฝั่งเซิร์ฟเวอร์กำหนด ไม่ว่าจะเป็นช่วงประมวลผลหรือช่วงรอคิว และล้มเหลว เครดิตของงานนี้จะถูกคืนให้ โดยส่วนใหญ่แล้วปัญหานี้เป็นเพียงชั่วคราว ให้สร้างงานใหม่อีกครั้ง และหากยังคงล้มเหลวอยู่เรื่อยๆ ให้ลองลดความซับซ้อนของข้อมูลนำเข้าของคุณ
- Name
service_unavailable- Description
บริการไม่สามารถใช้งานได้ชั่วคราว รอสักครู่ แล้วสร้างงานใหม่อีกครั้ง
- Name
server_error- Description
เกิดข้อผิดพลาดภายในระหว่างการประมวลผล ให้สร้างงานใหม่อีกครั้ง หากปัญหายังคงเกิดขึ้นต่อเนื่อง โปรดติดต่อฝ่ายสนับสนุนพร้อมแจ้งรหัสงาน (task ID) ของคุณ
รหัสข้อผิดพลาด
เมื่อมีฟิลด์ code ปรากฏขึ้น จะระบุปัญหาที่เฉพาะเจาะจงและสามารถดำเนินการได้ ด้านล่างนี้คือการอ้างอิงทั้งหมดสำหรับแต่ละรหัสข้อผิดพลาด
image_too_complex
ข้อผิดพลาดนี้เกิดขึ้นเมื่อภาพหรือ prompt ที่ป้อนเข้ามาอธิบายวัตถุที่มีความซับซ้อนทางเรขาคณิตมากเกินไปสำหรับโมเดลการสร้าง 3D ที่จะประมวลผลได้
ตัวอย่างทั่วไปได้แก่:
- กองวัตถุขนาดเล็กที่หนาแน่น (เช่น ลังที่เต็มไปด้วยผลไม้, กองหนังสือ)
- ลวดลายที่ซับซ้อนและซ้ำซาก (เช่น โครงสร้างตาข่าย, นั่งร้าน, ตาข่ายลวด)
- โครงสร้างอาคารที่ซับซ้อน (เช่น อาคารหลายชั้นที่มีหน้าต่างและระเบียงมากมาย)
- วัตถุที่แตกต่างกันหลายชิ้นในภาพเดียว แทนที่จะเป็นวัตถุเดียว
ตัวอย่างของข้อมูลที่อาจซับซ้อนเกินไป:




วิธีแก้ไข:
- ใช้วัตถุเดียวต่อภาพ โมเดลทำงานได้ดีที่สุดกับวัตถุที่ชัดเจนเพียงหนึ่งเดียว อย่ารวมวัตถุแยกกันหลายชิ้นในภาพหรือ prompt เดียวกัน
- ทำให้วัตถุของคุณง่ายขึ้น ลดระดับรายละเอียดลง เช่น ใช้แจกันธรรมดาแทนแจกันที่เต็มไปด้วยดอกไม้หลายสิบดอก
- หลีกเลี่ยง prompt ระดับซีน อาคารทั้งหลัง, บล็อกเมือง, ภายในที่เต็มไปด้วยเฟอร์นิเจอร์ หรือภูมิทัศน์มีแนวโน้มที่จะเกินขีดความสามารถของโมเดล มุ่งเน้นที่วัตถุเดียวแทน
- หลีกเลี่ยงโครงสร้างที่ซ้ำซ้อนและหนาแน่น วัตถุเช่น นั่งร้าน, ตาข่ายลวด, ลวดลายตาข่าย หรือกองของชิ้นเล็กๆ หลายชิ้นเป็นตัวกระตุ้นที่พบบ่อย
model_missing_uv
ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณอัปโหลดโมเดลสำหรับการทำเท็กซ์เจอร์โดยตั้งค่า enable_original_uv เป็น true แต่โมเดลนั้นไม่มีพิกัด UV พิกัด UV กำหนดวิธีการที่เท็กซ์เจอร์ 2D จะถูกห่อหุ้มบนพื้นผิว 3D ของโมเดลของคุณ

การแก้ไข:
การแก้ไขที่ถูกต้องขึ้นอยู่กับเหตุผลที่คุณตั้งค่า enable_original_uv เป็น true:
- หากคุณต้องการรักษาเลย์เอาต์ UV ดั้งเดิมของโมเดลของคุณ (เช่น การวางตำแหน่งตะเข็บที่กำหนดเองสำหรับการแมปเท็กซ์เจอร์ที่แม่นยำ): โมเดลของคุณต้องมีพิกัด UV ที่ถูกต้อง ตรวจสอบให้แน่ใจว่ามี UV อยู่ในเอดิเตอร์ UV ของซอฟต์แวร์ 3D ของคุณก่อนที่จะอัปโหลด โปรดทราบว่าไฟล์ STL ไม่สามารถเก็บข้อมูล UV ได้ ดังนั้นควรใช้ GLB, FBX หรือ OBJ แทน
- หากคุณไม่ต้องการการควบคุม UV เฉพาะ (หรือคุณไม่แน่ใจ): ละเว้น
enable_original_uvหรือกำหนดค่าเป็นfalseระบบจะสร้างเลย์เอาต์ UV สำหรับโมเดลของคุณโดยอัตโนมัติ UV ที่สร้างขึ้นอัตโนมัติจะถูกปรับให้เหมาะสมสำหรับการครอบคลุม แต่คุณจะไม่สามารถควบคุมตำแหน่งที่วางตะเข็บเท็กซ์เจอร์ได้
model_insufficient_uv
ข้อผิดพลาดนี้เกิดขึ้นเมื่อโมเดลมีพิกัด UV แต่การครอบคลุม UV นั้นเล็กเกินไปสำหรับการทำเท็กซ์เจอร์คุณภาพดี โดยทั่วไปแล้วจะเกิดขึ้นกับโมเดลที่ส่งออกจากเครื่องมือ 3D ที่สร้าง UV ชั่วคราวหรือยุบโดยไม่มีการคลี่ออกอย่างเหมาะสม

การแก้ไข:
- หากคุณต้องการรักษาเลย์เอาต์ UV ดั้งเดิมของคุณ: คลี่พิกัด UV ของโมเดลใหม่ในซอฟต์แวร์ 3D ของคุณ ตรวจสอบให้แน่ใจว่าเกาะ UV ถูกกระจายอย่างเหมาะสมในพื้นที่ UV แทนที่จะยุบลงในพื้นที่เล็กๆ
- หากคุณไม่ต้องการควบคุม UV โดยเฉพาะ: ละเว้น
enable_original_uvหรือกำหนดค่าให้เป็นfalseระบบจะสร้างเลย์เอาต์ UV ใหม่โดยอัตโนมัติ การแลกเปลี่ยนคือคุณจะสูญเสียการวางตำแหน่งตะเข็บดั้งเดิมของคุณ แต่ UV ที่สร้างขึ้นอัตโนมัติจะมีการครอบคลุมที่เหมาะสมสำหรับการทำเท็กซ์เจอร์
model_missing_texture
ข้อผิดพลาดนี้เกิดขึ้นเมื่อโมเดลอินพุตของงาน Multi-Color Print ไม่มีข้อมูลสีที่ตัวแปลงไฟล์สามารถแยกออกเป็นสีสำหรับพิมพ์ได้ 3MF สำหรับการพิมพ์หลายสีถูกสร้างขึ้นจากสีของโมเดล ดังนั้นเมชสีขาวล้วน — เช่น พรีวิวจาก Text to 3D หรือ Image to 3D ที่ไม่เคยถูกใส่เท็กซ์เจอร์ หรือผลลัพธ์ที่ผ่านการซ่อมแซม / แยกส่วนอัตโนมัติ — จะไม่มีข้อมูลให้นำไปใช้งานได้
สิ่งที่นับว่าเป็นแหล่งที่มาของสีนั้นขึ้นอยู่กับ style ที่คุณร้องขอ:
realisticสุ่มตัวอย่างเท็กซ์เจอร์สีพื้นฐานผ่านพิกัด UV ของโมเดล ดังนั้นจึงต้องมีเท็กซ์เจอร์สีพื้นฐานเดียวพร้อมพิกัด UV บนทุกส่วนของเมชcartoonทำให้สีแบนราบต่อหน้า (face) และยอมรับเท็กซ์เจอร์สีพื้นฐานบนส่วนใดก็ได้ หรือ สีต่อจุดยอด (COLOR_0)
โมเดลที่ไม่มีทั้งเท็กซ์เจอร์สีพื้นฐานและสีจุดยอดจะถูกปฏิเสธสำหรับทั้งสองสไตล์ เพราะถ้าใช้ cartoon มันจะ "สำเร็จ" กลายเป็นงานพิมพ์สีเดียวแทน
คำขอส่วนใหญ่จะถูกปฏิเสธก่อนที่งานจะถูกสร้างขึ้น (400 Bad Request พร้อมคำอธิบายเดียวกัน) ดังนั้นคุณมักจะเห็นรหัสนี้เฉพาะเมื่อไม่สามารถตรวจสอบอินพุตล่วงหน้าได้ — เช่น การอัปโหลดไฟล์ .fbx จะถูกตรวจสอบก็ต่อเมื่องานได้ทำการ normalize ไฟล์นั้นแล้ว
วิธีแก้ไข:
- ใส่เท็กซ์เจอร์ให้โมเดลก่อน รันงาน Retexture กับโมเดลนั้น หรือสร้างโมเดลโดยเปิดใช้งานการใส่เท็กซ์เจอร์ (งาน refine ของ Text to 3D หรืองาน Image to 3D ที่มี
should_texture: true) แล้วส่งงานนั้นเป็นinput_task_id - โมเดลที่มีสีแบบจุดยอด (สแกนจากภาพถ่าย, เมชที่วาดด้วยมือ): ให้ร้องขอ
style: "cartoon"ซึ่งจะอ่านค่าCOLOR_0 - โมเดลที่ใส่เท็กซ์เจอร์เพียงบางส่วนหรือมีหลายเท็กซ์เจอร์ภายใต้
realistic: ทุกส่วนของเมชต้องมีพิกัด UV และเท็กซ์เจอร์สีพื้นฐานเดียวกันเพียงชุดเดียว ให้ใส่เท็กซ์เจอร์ในส่วนที่เหลือหรือรวมเท็กซ์เจอร์เข้าเป็นอัตลาส (atlas) เดียว หรือเปลี่ยนไปใช้style: "cartoon"แทน
invalid_input
นี่คือรหัสข้อผิดพลาดสำรองเมื่อการตรวจสอบความถูกต้องของอินพุตล้มเหลวแต่ไม่มีรหัสที่เฉพาะเจาะจงมากกว่านี้ ฟิลด์ message จะมีเหตุผลเฉพาะสำหรับความล้มเหลวนี้
สาเหตุทั่วไปได้แก่:
- ไฟล์โมเดลที่ว่างเปล่าหรือเสียหาย
- รูปแบบไฟล์ที่ไม่รองรับ (เช่น ไฟล์ ASCII FBX, GLB ที่ถูกบีบอัดด้วย meshopt)
- ไม่พบวัตถุ 3D ที่ถูกต้องในโมเดลที่อัปโหลด (เช่น ไฟล์มีเพียงโครงกระดูก, กล้อง, หรือไฟ)
- เนื้อหาที่ไม่ผ่านการกรองความปลอดภัย
วิธีแก้ไข: ตรวจสอบฟิลด์ message เพื่อดูรายละเอียดเกี่ยวกับสิ่งที่ผิดพลาด ตรวจสอบให้แน่ใจว่าไฟล์อินพุตและพารามิเตอร์ของคุณตรงตามข้อกำหนดของเอนด์พอยต์
moderation_blocked
ข้อผิดพลาดนี้เกิดขึ้นเมื่อ prompt หรือรูปภาพอ้างอิงของคุณถูกปฏิเสธโดยตัวกรองความปลอดภัยของ AI ตัวกรองนี้จะประเมินทั้งข้อความ prompt และรูปภาพอ้างอิงใด ๆ ไปพร้อมกัน
การแก้ไข:
- เรียบเรียง prompt ข้อความของคุณใหม่เพื่อลบคำอธิบายที่สื่อไปในทางลามกหรือละเอียดอ่อนออก
- ปรับรูปภาพอ้างอิงหากมีเนื้อหาที่อาจกระตุ้นตัวกรองความปลอดภัย
moderation_unavailable
ข้อผิดพลาดนี้เกิดขึ้นเมื่อระบบ moderation เนื้อหาไม่สามารถใช้งานได้ชั่วคราว ทำให้งานถูกทำให้ล้มเหลวแทนที่จะรันโดยไม่มีการตรวจสอบ เนื้อหาของคุณไม่มีปัญหาแต่อย่างใด type ของข้อผิดพลาดนี้คือ server_error
การแก้ไข: สร้างงานใหม่อีกครั้ง
timeout
ข้อผิดพลาดนี้หมายความว่างานเกินขีดจำกัดเวลาฝั่งเซิร์ฟเวอร์ ไม่ว่าจะเป็นในการประมวลผลหรือการรอในคิว ทำให้งานล้มเหลวและเครดิตของงานนั้นถูกคืนให้ ซึ่งอาจเกิดขึ้นได้เนื่องจากระบบมีภาระงานสูง หรือเนื่องจากอินพุตซับซ้อนเกินกว่าจะประมวลผลได้ทันภายในขีดจำกัดเวลา
สิ่งนี้แตกต่างจาก timeout ในโค้ดฝั่งของคุณเอง หากไคลเอนต์ของคุณหยุดรอไปแล้ว งานนั้นอาจยังคงทำงานอยู่ ดูเพิ่มเติมที่ Task Lifecycle
วิธีแก้ไข:
- สร้างงานใหม่อีกครั้ง timeout มักเกิดขึ้นชั่วคราว และงานใหม่อาจสำเร็จได้
- ลดความซับซ้อนของอินพุตของคุณ หากลองใหม่ซ้ำแล้วยังคงล้มเหลว อินพุตของคุณอาจซับซ้อนเกินไป ลองลดระดับรายละเอียดในภาพหรือ prompt ของคุณ ดู
image_too_complexสำหรับคำแนะนำเกี่ยวกับประเภทของอินพุตที่ประมวลผลได้ยากกว่า
queue_timeout
ข้อผิดพลาดนี้หมายความว่างานรอในคิวนานเกินไปโดยไม่ได้เริ่มทำงาน จึงล้มเหลว และเครดิตใดๆ ที่ถูกเรียกเก็บสำหรับงานนี้จะถูกคืนกลับ ไม่ได้เกิดจากข้อมูลที่คุณป้อน ประเภท (type) ของมันคือ timeout
วิธีแก้ไข: สร้างงานใหม่อีกครั้ง
format_conversion_failed
ข้อผิดพลาดนี้เกิดขึ้นเมื่อโมเดล 3D ที่สร้างขึ้นไม่สามารถแปลงเป็นรูปแบบผลลัพธ์ที่คุณร้องขอได้ โมเดลถูกสร้างขึ้นสำเร็จแล้ว แต่ขั้นตอนการแปลงล้มเหลว
วิธีแก้ไข:
- ลองส่งคำขอใหม่อีกครั้ง
- ลองใช้รูปแบบผลลัพธ์อื่น หากรูปแบบใดรูปแบบหนึ่งล้มเหลวอยู่เรื่อยๆ ให้เปลี่ยนไปใช้รูปแบบอื่นที่เหมาะกับความต้องการของคุณ
แนวทางปฏิบัติที่ดีที่สุด
- ใช้ตรรกะการลองใหม่ (retry logic). เมื่อ task ล้มเหลวด้วยข้อผิดพลาด
timeout,service_unavailableหรือserver_errorให้สร้างใหม่อีกครั้งโดยใช้ exponential backoff หากคำขอของคุณเองเกิด timeout แทน อย่าสร้าง task ใหม่ ให้ตรวจสอบ task ที่มีอยู่ก่อน (ดู Task Lifecycle) - บันทึก task ID. บันทึก task ID ไว้เสมอเพื่อวัตถุประสงค์ในการดีบัก และระบุไว้เมื่อติดต่อฝ่ายสนับสนุน
- ตรวจสอบความถูกต้องของอินพุต. ตรวจสอบให้แน่ใจว่ารูปภาพและโมเดลอินพุตของคุณตรงตามข้อกำหนดด้านรูปแบบก่อนส่ง
- เรียกใช้ API จากเซิร์ฟเวอร์ของคุณ. โค้ดที่ทำงานในเบราว์เซอร์จะเปิดเผย API คีย์ของคุณให้ผู้ที่เปิดหน้านั้นเห็นได้