Error Codes
รหัสข้อผิดพลาดจาก Client API, Seller API และ File delivery — อ่านแล้วรู้ว่าแก้ตรงไหน
ระบบรหัสทำงานยังไง
Client API (/api/1.3/, /api/1.4/) ไม่ส่งข้อความ error ดิบออกไปตรง ๆ — ใช้ veil แปลงเป็นรหัสสั้น ๆ ใน field message ของ JSON response
| รูปแบบ | ตัวอย่าง | ความหมาย |
|---|---|---|
| Static | E01 … E18 | ข้อความมาตรฐานที่ map ไว้ในเซิร์ฟเวอร์ — อ่านตารางด้านล่างได้เลย |
| Dynamic | E1AA3B2 | E + 6 ตัว hex จาก CRC32b ของข้อความจริง — ไม่มีใน static table |
| Empty | E00 | ข้อความ error ว่าง |
| Custom | ข้อความเต็ม | ถ้า dev ตั้ง Custom Messages ใน Panel แล้วข้อความตรงกับที่ตั้ง — ส่งออกแบบไม่ veil |
| Special | invalidver | เวอร์ชัน client ไม่ตรง — response มี download เพิ่ม |
WARN
รหัส dynamic ไม่ได้อยู่ใน static list — ดูตาราง Quick Lookup หรือตรวจ Event Logs ใน Panel (ถ้ามีสิทธิ์)
TIP
ถอดรหัส dynamic:
E + 6 ตัวแรกของ hash('crc32b', message) — เช่น Invalid license key → E48E0A5. อย่าสับสนกับ E05 (Hash mismatch).Quick Lookup — รหัสที่เจอบ่อย
| Code | สาเหตุสั้น ๆ | แก้ |
|---|---|---|
E1A7FF8 | ไฟล์ Authenticated แต่ยังไม่ license/login | File flow · license ก่อน file · หรือเปลี่ยนเป็น Public |
E1AA3B2 | API v1.4 — seq ผิด | ใช้ SDK ล่าสุด · ดู Sequence |
E77AC17 | fileid ผิดหรือไฟล์ถูกลบ | Panel → Files → Copy File ID |
E547D79 | ไม่ส่ง sessionid | เรียก init ก่อน · ส่ง session ทุก request |
EF622D2 | session หมดอายุ | init ใหม่ |
E04 | เปิด hash check แต่ client ไม่ส่ง MD5 | Hash guide |
E05 | MD5 exe ไม่อยู่ใน whitelist | Panel → Access Controls → Add Hash · ดู rh/received_hash |
E48E0A5 | Invalid license key — คีย์ผิด / หมดอายุ / ใช้แล้ว / คนแอป | Panel → Licenses · สร้างคีย์ใหม่ · ไม่ใช่ปัญหา Hash |
E18 | Client ไม่มี wire token | LibreAuth SDK + /api/1.4/ หรือ /api/1.3/ |
File Download — Public vs Authenticated
Endpoint type=file ต้องมี sessionid จาก init เสมอ — ต่างกันที่ไฟล์ Authenticated ต้อง login/license ก่อน
| โหมดไฟล์ (Panel) | Flow (API v1.4) | หมายเหตุ |
|---|---|---|
| Public | init → file |
ไม่ต้อง license · installer/mod loader ใช้แบบนี้ได้ |
| Authenticated | init → license → file |
license ต้อง success: true ก่อน download |
TIP
Response สำเร็จมี
contents (hex) — แปลงเป็น bytes ก่อนเขียนไฟล์ · ดู file endpointStatic Codes — E01 ถึง E18
| Code | สาเหตุ | วิธีแก้ |
|---|---|---|
E00 | ข้อความ error ว่าง | ตรวจ request body / server log |
E01 | ขาดพารามิเตอร์บังคับ เช่น type, ownerid, name | ส่งครบตาม endpoint docs · ใช้ SDK ล่าสุด |
E02 | ownerid ไม่ใช่ 10 ตัวอักษร | คัดลอก Owner ID จาก Panel → App Settings |
E03 | type ไม่รู้จัก | สะกดให้ตรง: init, login, license, file ฯลฯ |
E04 | แอปเปิด Hash Check แต่ client ไม่ส่ง MD5 | ส่ง hash หรือ h ทุก request · Hash troubleshooting |
E05 | MD5 ของ exe ไม่อยู่ใน whitelist | ดู received_hash (rh บน 1.4), whitelist_count (wc) · Panel → Settings → Recent rejected MD5 · Add Hash |
E06 | Anti-Tamper เปิด แต่ไม่ส่ง integrity token | อัปเดต SDK · ส่ง token ตาม Anti-Tamper |
E07 | Anti-Tamper ต้องการ hash คู่กับ token | ส่งทั้ง token และ file hash ใน request เดียวกัน |
E08 | hash ใน token ไม่ตรงกับ hash ที่ส่งมา | ใช้ hash จากไฟล์เดียวกันที่ build จริง |
E09 | Token หมดอายุ / ถูกแก้ / สร้างผิด session | เรียก init ใหม่ · อย่า reuse token ข้าม session |
E10 | IP เปลี่ยนระหว่าง session (VPN, mobile network) | เรียก init จาก network เดิม · ปิด VPN ชั่วคราว |
E11 | ไม่ส่ง nonce หรือ nonce ซ้ำ / ผิดลำดับ | SDK ต้องส่ง nonce ใหม่ทุก request หลัง init |
E12 | ส่ง request ซ้ำภายใน replay window | รอแล้วส่งใหม่ · อย่า retry พร้อม payload เดิมทันที |
E13 | HWID ใน session ไม่ตรงกับที่ bind ไว้ | logout + init ใหม่ · หรือขอ reset HWID จาก provider |
E14 | แอปบังคับ signed response แต่เซิร์ฟเวอร์ยังไม่มี Ed25519 key | ติดต่อ host ให้ตั้งค่า signing key |
E15 | DB down หรือ maintenance | ลองใหม่ · ตรวจสถานะเซิร์ฟเวอร์ |
E16 | แอปถูกปิดใน Panel | เปิดแอปใน Panel → App Settings |
E17 | แอปอยู่ในสถานะ Paused | Panel → Resume app |
E18 | Client ยิง API โดยไม่มี wire token (la_w) | ใช้ LibreAuth SDK บน /api/1.4/ (Enterprise) หรือ /api/1.3/ — legacy loaders ไม่รองรับ |
Dynamic Codes (เช่น E1AA3B2)
ถ้า error ไม่ตรงกับ static table (E01–E18) จะได้รหัส dynamic แบบ E + 6 ตัว hex — รหัสนี้ไม่เปิดเผยข้อความภายในเซิร์ฟเวอร์ ใช้ตารางด้านล่างและ Quick Lookup ด้านบนเพื่อแก้ปัญหา
| อาการ | เมื่อไหร่ | แก้ยังไง |
|---|---|---|
| ไม่พบไฟล์ | type=file แต่ fileid ผิดหรือถูกลบ | ตรวจ File ID ใน Panel · ส่ง fileid ตัวเลขที่ถูก |
| ยังไม่ authenticated | ไฟล์ตั้ง Authenticated แต่ client ยังไม่ login/license | init → license → file · หรือเปลี่ยนไฟล์เป็น Public ใน Panel |
| แหล่งไฟล์ HTTP 403 | URL ต้นทางบล็อก hotlink / ต้อง auth | ใช้ direct link · อัปโหลด hosted file แทน URL ภายนอก |
| แหล่งไฟล์ HTTP 404 | ลิงก์หมดอายุหรือ path ผิด | Panel → Files → Test URL · แก้ URL หรือ re-upload |
| ไฟล์ใหญ่เกิน limit | เกิน File Max MB | Panel → App Settings → เพิ่ม limit หรือลดขนาดไฟล์ |
คีย์ไม่ถูก / หมดอายุ · รหัส E48E0A5 | type=license ได้ข้อความ Invalid license key (veil dynamic) | Panel → Licenses · สร้าง/รีเซ็ตคีย์ · ตรวจว่าคีย์เป็นของแอปนี้ · ถ้า Discord โชว์ Hash ตรง แปลว่า init ผ่านแล้ว — ไม่ใช่ E05 |
| คีย์ถูกใช้แล้ว | one-time key · ข้อความอาจ veil เป็น dynamic อื่น | สร้างคีย์ใหม่ |
| HWID ไม่ตรง | เครื่องไม่ตรงที่ bind | reset HWID หรือใช้เครื่องเดิม |
| session หมดอายุ | TTL หมด | เรียก init ใหม่ |
| ไม่มี session | ไม่ส่ง sessionid | เก็บ session จาก init แล้วส่งทุก call |
| sequence ผิด | API v1.4 — seq ไม่ตรง | ใช้ SDK ล่าสุด · ดู Sequence |
| Captcha ไม่ผ่าน | Captcha เปิดในแอป | ส่ง captcha token ที่ verify แล้ว |
TIP
Dev ที่มี access server log: ค้นหา error ใน Event Logs ของ Panel
File Download Errors
Endpoint type=file อาจได้ dynamic code จากข้อความเหล่านี้:
| ข้อความ | สาเหตุ | แก้ |
|---|---|---|
File not Found | ไม่มี record หรือ fileid ผิด | ใช้ File ID จาก Panel (ปุ่ม Copy ID) |
| ยังไม่ authenticated | ไฟล์ตั้งค่า Authenticated | login/license ก่อน download · หรือเปลี่ยนเป็น Public |
File is disabled | ไฟล์ถูกปิดใน Panel | เปิดไฟล์ / แก้ status |
Invalid file URL | URL ว่างหรือ format ผิด | Panel → Edit file → Test URL |
File URL blocked by security policy | โดเมนอยู่ใน blocklist ของเซิร์ฟเวอร์ | ใช้ hosted upload หรือโดเมนที่อนุญาต |
File download unavailable on server | เซิร์ฟเวอร์ไม่มี curl | ติดตั้ง php-curl บน host |
Hosted file missing on server | ไฟล์อัปโหลดหายจาก storage | Re-upload ใน Panel |
URL looks like a web page, not a direct file download | Content-Type เป็น HTML | ใช้ direct download link ไม่ใช่หน้าเว็บ |
Seller API Errors
INFO
Seller API ส่งข้อความ plain text ใน
message — ไม่ใช้ veil (ไม่มี E01/E1AA3B2)| message | HTTP | แก้ |
|---|---|---|
Missing sellerkey | 200 | ส่ง sellerkey=… ทุก request |
Invalid sellerkey | 200 | สร้าง key ใหม่ใน Panel → Seller API |
IP not whitelisted | 200 | เพิ่ม IP VPS/bot ใน whitelist ของ key |
Permission denied for this API key | 200 | เปิด permission ของ type นั้น (เช่น addkey) |
Unknown seller API type | 200 | สะกด type ให้ตรง · ดู Seller Endpoints |
Seller API requires Pro plan or higher | 200 | อัปเกรดแพ็กเกจ account |
Seller subscription expired | 200 | ต่ออายุ seller sub |
Service unavailable | 200 | DB/connect ล้ม — ติดต่อ host |
Application not found | 200 | ส่ง app หรือ name ถ้ามีหลายแอป |
Invalid expiry | 200 | expiry / expiry_val ต้อง ≥ 1 |
Invalid subscription | 200 | สร้าง subscription tier ใน Panel ก่อน |
| ข้อความจาก Billing (key limit) | 200 | อัปเกรดแพ็กหรือลบคีย์เก่า |
| ข้อความ PHP exception | 500 | ดู message ใน JSON — มักเป็น mask ผิด, DB error |
Discord Bot & License Mask
อาการที่พบบ่อยจากบอท custom (เช่น genkey_new) หรือ Seller API addkey:
| อาการ | สาเหตุ | แก้ |
|---|---|---|
| Panel โชว์ note แทนคีย์ | เวอร์ชัน Panel เก่า | อัปเดต LibreAuth — แสดง key_code แล้ว |
คีย์สั้นแค่ 1d | mask ไม่มี * | ใช้ 1day-****** หรือให้ระบบ auto-expand เฉพาะ 1d/1day |
พิมพ์ Test11 ได้คีย์สุ่มต่อท้าย | logic เก่าเติม * ให้ทุก mask สั้น | อัปเดต server — Test11 = คีย์ตายตัว · อยากสุ่มใช้ Test11-****** |
| HTTP 500 จาก addkey | mask ผิด / DB / permission | ดู Seller API Errors |
INFO
Mask rules + custom bot snippet: Discord Bot → Key Mask
ลิงก์ที่เกี่ยวข้อง
- Troubleshooting — hash, session, HWID
- init endpoint — errors ตอนเริ่ม session
- file endpoint — download flow
- Seller API — automation / bot
- Anti-Tamper — E06–E09, E11–E13