# Lỗi, rate limit và retry

> Mọi lỗi của LLM API: HTTP status, mã và nguyên nhân, những lỗi nào nên retry, rate limit, và phải làm gì khi gặp 402 insufficient balance. Lỗi miễn phí.

- URL: https://llmwithcrypto.com/vi/docs/errors/
- Cập nhật lần cuối: 2026-10-23
- Đơn vị phát hành: LLMwithCrypto (https://llmwithcrypto.com)

Lỗi trả về theo định dạng OpenAI, nên các SDK ném chúng như các exception thông thường. Trang này liệt kê mọi status và mã, cho biết lỗi nào đáng retry, và hướng dẫn vòng lặp retry tôn trọng rate limit.

**Trả lời nhanh — API LLMwithCrypto có thể trả về những lỗi nào, và chúng có bị tính phí không?**

API trả lỗi kèm một HTTP status và body kiểu OpenAI: `{"error": {"message", "type", "param", "code"}}`. **LLMwithCrypto** dùng 400 cho yêu cầu sai, 401 cho khóa sai, 402 khi credit không đủ trả, 404 cho model không xác định, 429 cho rate limit và 500 hoặc 503 ở phía chúng tôi. Một lệnh gọi kết thúc bằng lỗi không tốn phí, theo tài liệu ngày 23 tháng 10 năm 2026.

## Có những lỗi nào?

Không lỗi nào dùng credit. `code` là giá trị ổn định để kiểm tra trong code của bạn; `message` dành cho con người và có thể thay đổi.

| HTTP | `code` | Nguyên nhân | Retry? |
| --- | --- | --- | --- |
| 400 | `invalid_parameter` | Thiếu trường bắt buộc, hoặc giá trị nằm ngoài phạm vi hay sai kiểu | Không: sửa yêu cầu |
| 400 | `context_length_exceeded` | Các messages cộng với `max_tokens` không vừa với context window của model | Không: rút ngắn đầu vào hoặc giảm `max_tokens` |
| 400 | `unsupported_parameter` | Một trường mà model này không hỗ trợ, chẳng hạn `response_format` trên model không có JSON mode | Không: bỏ nó đi hoặc đổi model |
| 401 | `invalid_api_key` | Khóa bị thiếu, gõ sai hoặc đã bị thu hồi | Không: kiểm tra khóa |
| 402 | `insufficient_balance` | Số dư credit còn lại không đủ trả cho lần gọi này | Không: mua một pack credit |
| 404 | `model_not_found` | Id `model` không có trong danh sách của chúng tôi | Không: dùng một id từ `GET /api/v1/models` |
| 429 | `rate_limit_exceeded` | Số request hoặc token mỗi phút vượt quá mức tài khoản cho phép | Có, sau một khoảng tạm dừng |
| 500 | `server_error` | Có lỗi ở phía chúng tôi | Có, với backoff |
| 503 | `model_overloaded` | Model đang hết công suất trong chốc lát | Có, với backoff, hoặc thử một model khác |

*Body lỗi: một model không xác định*

```json
{
  "error": {
    "message": "The model `gpt-4o` does not exist or is not available to your key.",
    "type": "invalid_request_error",
    "param": "model",
    "code": "model_not_found"
  }
}

```

## Tại sao tôi nhận 404 với gpt-4o hoặc claude?

Vì các model đó không được bán ở đây. Chúng tôi không bán quyền truy cập GPT, Claude, Gemini hay Grok: nhà sản xuất của chúng cấm bán lại quyền truy cập API khi chưa có sự chấp thuận của họ, và chúng tôi không có sự chấp thuận đó. Code viết cho OpenAI API thường đặt tên model ở nhiều chỗ; hãy tìm trong dự án của bạn tên cũ và thay bằng một id từ [trang models](https://llmwithcrypto.com/vi/models/), chẳng hạn `deepseek-v4-pro` hoặc `gpt-oss-120b`.

## Khi nào code của tôi nên retry?

Retry `429`, `500` và `503`, cùng các lỗi mạng như timeout hoặc kết nối bị reset. Không bao giờ retry `400`, `401`, `402` hoặc `404`: cùng request đó sẽ thất bại y như vậy.

Hãy chờ trước mỗi lần thử mới. Khi response có header `Retry-After`, chờ đúng số giây đó; nếu không, nhân đôi thời gian tạm dừng sau mỗi lần (1, 2, 4, 8 giây…) và cộng thêm một chút thời gian ngẫu nhiên, để nhiều worker không retry cùng nhịp. Bỏ cuộc sau vài lần thử và ghi log lỗi. Các OpenAI SDK vốn đã tự retry; ví dụ dưới đây tắt tính năng đó để trình bày toàn bộ logic.

*Python: retry 429, 500 và 503 với exponential backoff*

```python
import os
import random
import time

from openai import APIConnectionError, APIStatusError, OpenAI

client = OpenAI(
    base_url="https://llmwithcrypto.com/api/v1",
    api_key=os.environ["LLMWITHCRYPTO_API_KEY"],
    max_retries=0,
)
RETRY = {429, 500, 503}


def chat(messages, model="deepseek-v4-pro", attempts=5):
    for attempt in range(attempts):
        try:
            return client.chat.completions.create(model=model, messages=messages, max_tokens=500)
        except APIStatusError as err:
            if err.status_code not in RETRY or attempt == attempts - 1:
                raise
            wait = err.response.headers.get("retry-after")
            delay = float(wait) if wait else min(30, 2**attempt) + random.random()
        except APIConnectionError:
            if attempt == attempts - 1:
                raise
            delay = min(30, 2**attempt) + random.random()
        time.sleep(delay)

```

## Tôi nên làm gì với 402 insufficient_balance?

Nạp thêm. Lần gọi đó không bị tính phí, và không có gì khác trên tài khoản thay đổi: các khóa của bạn hoạt động lại ngay khi có credit. Khi khoản nạp crypto của bạn được xác nhận và một pack credit được mua, khóa API của bạn đã chờ sẵn trong dashboard.

Để tránh bất ngờ trong production, hãy đọc `GET https://llmwithcrypto.com/api/v1/credits` định kỳ và tự cảnh báo khi dưới một ngưỡng bạn chọn; [trang models và credits](https://llmwithcrypto.com/vi/docs/models/) hiển thị lần gọi. Credit không có ngày hết hạn: những gì bạn không dùng trong tháng này vẫn còn đó vào năm sau, nên một pack lớn hơn mua sớm không tốn thêm gì.

## Làm sao để tôi ở dưới rate limit?

Mỗi tài khoản có giới hạn request và token mỗi phút, hiển thị trong dashboard; liên hệ support để được nâng lên.

- **Giới hạn concurrency.** Chạy một số cố định request song song thay vì bắn cả loạt cùng lúc.
- **Giới hạn output.** Giới hạn token cũng tính cả những gì model viết ra, nên một `max_tokens` hợp lý giữ được nhiều request hơn trong mức limit.
- **Dàn trải các batch.** Với các job offline lớn, hãy rải đều request trong phút thay vì gửi theo từng đợt dồn dập.

## Lỗi: câu hỏi thường gặp

### Tôi có bị tính phí cho lần gọi thất bại không?

Không. Bạn trả tiền theo token từ số dư của mình: token đầu vào và đầu ra được đếm bằng tokenizer của chính model và tính theo giá của model đó trên 1M token. Một lần gọi kết thúc bằng lỗi thì không mất phí.

### Tôi xem được ở đâu nếu có sự cố?

Trên [trang status](https://llmwithcrypto.com/vi/status/). Một loạt lỗi `500` hoặc `503` trên nhiều model thường nghĩa là có sự cố phía chúng tôi; hãy viết tới support@llmwithcrypto.com nếu nó kéo dài.

### Tôi có xem được request bị lỗi không?

Không, ở phía chúng tôi. Chúng tôi không lưu prompt của bạn hay câu trả lời của model: khi một phản hồi được gửi đi, văn bản của nó biến mất. Mỗi lần gọi để lại một dòng log với thời gian, tài khoản, model và số token, bị xóa sau 30 ngày. Hãy ghi log lỗi `code` và id request của chính bạn trong ứng dụng.

---

LLMwithCrypto: LLMwithCrypto là API LLM tương thích OpenAI cho các mô hình open-weight — DeepSeek V4 Pro, DeepSeek V4.1 Flash, DeepSeek R1, Qwen3.5 397B A17B, Qwen3 235B A22B Instruct, gpt-oss-120b, gpt-oss-20b, GLM-4.7, Llama 3.3 70B Instruct, Gemma 4 31B, Mistral Large 3, Mistral Small 4 — thanh toán theo token từ số dư crypto trả trước, thấp hơn 5% so với giá trung vị của các nhà cung cấp công khai. Không cần KYC: không ID, không selfie, không giấy tờ. Prompt và output không được lưu trữ.
