La maggior parte dei problemi con qwen3.8-max-free e qwen3.8-flash-free deriva da tre fonti: i limiti del piano gratuito, la capacità della campagna che GMI Cloud ha riservato a monte e la rapidità con cui i token di ragionamento e il contesto degli agenti consumano un pool giornaliero da 1M di token. Alcuni si manifestano come errori. Altri come una risposta dall'aspetto anomalo, oppure con una quota esaurita entro l'ora di pranzo. Insieme a questi restano validi anche gli errori API più comuni: una chiave o un ID modello errato, un contesto troppo lungo, una cronologia di tool-call non valida, la modalità JSON e la moderazione dei contenuti.
Ognuno ha una soluzione, e un'unica impostazione ne copre la maggior parte: il fallback a livello di chiave dagli ID gratuiti a qwen3.8-max e qwen3.8-flash, a pagamento. Configurala una volta e un upstream sovraccarico, una quota esaurita o la fine della campagna, prevista intorno al 13 novembre 2026 (ora del Pacifico), smettono di essere un'interruzione del servizio.
Mappa rapida
| Cosa vedi | Causa probabile | Soluzione |
|---|---|---|
| 429 dopo 10 chiamate in un minuto | Limite gratuito al minuto | Distribuisci le richieste nel tempo, oppure usa il fallback |
| 429 per il resto della giornata | Limite giornaliero di richieste o di token | Attendi il ripristino, oppure usa il fallback |
| "Rate limited by provider" | Capacità della campagna occupata a monte | Attendi e riprova, oppure usa il fallback |
| Una risposta che indica che la prova gratuita è esaurita | 10 chiamate di prova utilizzate, nessuna ricarica | Ricarica almeno $1 |
| La richiesta resta bloccata, poi va in timeout | Ragionamento massimo prima del primo token | Usa lo streaming, aumenta il timeout del client |
| Token giornalieri esauriti dopo poche esecuzioni di agenti | Ragionamento più contesto reinviato | Disattiva il ragionamento, limita il contesto |
| Gli ID gratuiti smettono di funzionare | Campagna terminata o crediti esauriti | Passa agli ID a pagamento |
Errori dal piano gratuito e dalla campagna
429 dovuti ai limiti del piano gratuito
Cosa vedi. Dopo una ricarica di almeno $1, i modelli gratuiti di AIHubMix consentono 10 richieste al minuto, 100 al giorno e 1M di token al giorno, condivisi nell'intero catalogo gratuito. "Oltre un limite, l'API restituisce 429 finché non inizia il minuto o il giorno successivo", secondo la pagina dei modelli gratuiti. Il riferimento dei codici di stato HTTP di AIHubMix riporta per il 429 dovuto alla frequenza delle richieste il messaggio "The xx model Too many requests; please try again later."
Perché. I limiti sono per account, non per modello. Un job batch su un altro modello gratuito consuma lo stesso minuto e la stessa giornata.
Come riprodurlo. Undici richieste rapide di fila raggiungono il limite al minuto. Questo consuma 11 delle tue 100 richieste giornaliere:
for i in $(seq 1 11); do
curl -s -o /dev/null -w "%{http_code}\n" https://aihubmix.com/v1/chat/completions \
-H "Authorization: Bearer $AIHUBMIX_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"qwen3.8-flash-free","messages":[{"role":"user","content":"hi"}],"max_tokens":16}'
done
Se tutte e 11 cadono nello stesso minuto, le prime dieci restituiscono 200 e l'undicesima restituisce 429.
Soluzione. Mantieni i job batch sotto 10 richieste al minuto con un semplice rate limiter. Per il limite giornaliero, attendi il ripristino oppure configura il fallback (vedi sotto), in modo che le richieste in eccesso vadano al modello a pagamento.
"Limite di frequenza raggiunto dal provider: contatta il supporto per richiedere una maggiore concorrenza oppure riprova più tardi."
Cosa vedi. Nel test dello stesso AIHubMix del 16 ottobre, una chiamata a qwen3.8-max-free ha restituito HTTP 429 con questo corpo, mentre la stessa chiave continuava a funzionare su qwen3.8-flash-free:
{"error":{"message":"Model qwen3.8-max-free rate limited by provider – contact support to request higher concurrency or try again later. (tid: …)","type":"service_unavailable","param":"","code":"rate_limit_exceeded"}}
Il riferimento dei codici di stato di AIHubMix riporta lo stesso messaggio con il codice 503, quindi controlla entrambi i codici.
Perché. Gli ID gratuiti girano sulla capacità che GMI Cloud ha riservato alla campagna. Quando in molti usano Max contemporaneamente, quel pool upstream resta saturo per un certo periodo. Non è la tua quota: gli altri modelli gratuiti continuano a funzionare con la stessa chiave.
Soluzione. Riprova con backoff esponenziale (ad esempio dopo 30, 60 e 120 secondi). Per le richieste che non possono aspettare, lascia che il fallback le invii al qwen3.8-max a pagamento. Conserva il tid se contatti il supporto; identifica la richiesta.
Una risposta che dice che la prova gratuita è esaurita
Cosa vedi. Nessun errore. Un nuovo account riceve 10 chiamate di prova in totale, condivise tra tutti i modelli gratuiti. Dopo la decima, l'API continua a rispondere, ma la risposta è un avviso che la prova è esaurita. Un'app che mostra agli utenti l'output del modello mostrerà proprio quell'avviso.
Soluzione. Ricarica almeno $1. Questo passa in modo permanente l'account alle quote giornaliere descritte sopra.
Timeout del client su Max
Cosa vedi. Una richiesta senza streaming a qwen3.8-max-free resta bloccata e poi fallisce con un timeout nel tuo client HTTP, proxy o strumento.
Perché. Max ragiona prima di mostrare il primo token visibile. AIHubMix misura circa 55 secondi di latenza e circa 9 token al secondo sul percorso gratuito, quindi una risposta di 4K token senza streaming impiega circa otto minuti ad arrivare in un unico blocco. Qualsiasi componente lungo il percorso con un timeout più breve si arrende prima. Il fallback non aiuta in questo caso: secondo le regole di fallback di AIHubMix, un timeout del client non lo attiva.
Soluzione. Usa lo streaming della risposta, aumenta il timeout del client (timeout=900 nel client Python di OpenAI copre le risposte lunghe) e usa Flash per tutto ciò che è interattivo.
Errori API comuni
Non tutti gli errori sugli ID gratuiti dipendono dalle quote. Questi si presentano con la stessa frequenza, sia sugli ID gratuiti sia su quelli a pagamento. Secondo il riferimento dei codici di stato, AIHubMix inoltra la maggior parte degli errori 400 dal modello upstream. Gli ID gratuiti girano su GMI Cloud e quelli a pagamento su Alibaba Cloud, quindi il testo esatto di un 400 può variare tra i due percorsi. I messaggi seguenti sono citati dal riferimento di AIHubMix e dal riferimento dei codici di errore di Alibaba Cloud.
| Stato | Errore | Causa più frequente |
|---|---|---|
| 401 | Non autorizzato | Chiave errata o mancante |
| 503 | ID modello errato | Errore di battitura, oppure ID di un'altra piattaforma |
| 403 | Chiave non autorizzata per il modello | Modello non abilitato sulla chiave |
| 400 | Intervallo della lunghezza di input | Contesto oltre il limite |
| 400 | Ruolo "tool" senza "tool_calls" | Cronologia delle tool-call non valida |
| 400 | Errori della modalità JSON | Formulazione del prompt o ragionamento |
| 400 | Contenuto inappropriato | Moderazione dei contenuti |
401: "Non autorizzato: il token di accesso non è valido o è scaduto."
Perché. La chiave è errata, revocata o scaduta. Senza alcun header Authorization, il messaggio è "Unauthorized – no access token supplied; please log in and include a valid token." Le cause più comuni sono una variabile d'ambiente non impostata nella shell che esegue il codice, quindi parte una chiave vuota, oppure una chiave di un'altra piattaforma, come QwenCloud o GMI Cloud, inviata ad AIHubMix.
Soluzione. Controlla la variabile nella stessa shell: echo ${AIHUBMIX_API_KEY:0:3} dovrebbe stampare sk-. Le chiavi di AIHubMix funzionano solo su https://aihubmix.com/v1, e le chiavi di altre piattaforme non funzionano lì.
503: "ID modello non corretto. Richiedi la visualizzazione della pagina del modello oppure non hai il permesso di usare questo modello"
Perché. Gli ID dei modelli devono corrispondere esattamente. Gli ID gratuiti sono qwen3.8-max-free e qwen3.8-flash-free, tutti in minuscolo, con un trattino prima di free. Gli ID copiati da altre piattaforme, come Qwen/Qwen3.8-Max di GMI Cloud, non esistono su AIHubMix. Un copia-incolla può non generare alcun errore: l'ID qwen3.8-max di QwenCloud è un ID valido su AIHubMix, ma corrisponde al modello a pagamento, quindi la richiesta ti addebita dei costi senza avvisarti.
Come riprodurlo.
curl -s https://aihubmix.com/v1/chat/completions \
-H "Authorization: Bearer $AIHUBMIX_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"qwen-3.8-max-free","messages":[{"role":"user","content":"hi"}]}'
Soluzione. Copia l'ID dalla pagina del modello. Poiché questo errore arriva come 503, la logica di retry che tratta ogni 5xx come temporaneo continuerà a riprovare un errore di battitura; considera questo messaggio come permanente.
403: "Vietato: la chiave (ultime 6 cifre della chiave di richiesta) non è autorizzata ad accedere al modello richiesto."
Perché. Le chiavi di AIHubMix possono essere limitate a un elenco di modelli. Una chiave creata per un altro progetto, con un proprio elenco di modelli, non può raggiungere gli ID gratuiti di Qwen3.8 finché non li aggiungi.
Soluzione. Modifica la chiave nella gestione delle chiavi API e aggiungi qwen3.8-max-free e qwen3.8-flash-free. Se configuri il fallback, aggiungi anche i modelli di backup a pagamento: il fallback salta i modelli che non sono nell'elenco della chiave.
400: "L'intervallo della lunghezza dell'input deve essere [1, xxx]"
Perché. Questo è il messaggio di Alibaba per un input che supera il limite di contesto del modello; il numero al posto di xxx è il limite. Le sessioni degli agenti sono la causa più comune, perché la cronologia cresce a ogni turno. Alibaba segnala inoltre che i prompt lunghi con il ragionamento attivo "possono causare il troncamento della risposta o il timeout della richiesta."
Soluzione. Riduci la cronologia, apri una nuova sessione per un nuovo compito oppure attiva la compattazione del tuo strumento. Riduci però con attenzione, altrimenti incontrerai il prossimo errore.
400: i messaggi con ruolo "tool" devono essere una risposta a un messaggio precedente con "tool_calls"
Il riferimento di Alibaba riporta questo messaggio, con il refuso incluso, insieme al suo corrispettivo speculare: "An assistant message with "tool_calls" must be followed by tool messages responding to each "tool_call_id"". Gli utenti di Qwen Code hanno segnalato il primo nella issue #2360.
Perché. La cronologia inviata al modello contiene un risultato di tool la cui tool call è stata eliminata durante la riduzione, oppure una tool call il cui risultato manca. La riduzione manuale della cronologia e la compattazione del contesto sono le cause più frequenti.
Soluzione. Tratta una tool call e i suoi risultati come un'unica unità. Ogni tool_call_id in un messaggio dell'assistente deve avere un messaggio tool corrispondente subito dopo:
messages = [
{"role": "user", "content": "What's the weather in Hangzhou?"},
{"role": "assistant", "content": None, "tool_calls": [{
"id": "call_1", "type": "function",
"function": {"name": "get_weather", "arguments": "{\"city\": \"Hangzhou\"}"},
}]},
{"role": "tool", "tool_call_id": "call_1", "content": "{\"temp_c\": 21}"},
]
# When trimming, drop messages[1] and messages[2] together, never just one of them.
400: modalità JSON
Il riferimento di Alibaba riporta due errori della modalità JSON:
- "'messages' deve contenere la parola 'json' in una qualsiasi forma per usare 'response_format' di tipo 'json_object'."
- "La risposta in modalità Json non è supportata quando enable_thinking è true"
Perché. Il primo è la stessa regola della modalità JSON di OpenAI: il prompt deve menzionare JSON. Il secondo è più importante per Qwen3.8, dove il ragionamento è attivo per impostazione predefinita, quindi una richiesta json_object che funziona con altri modelli può fallire qui. Il riferimento di Alibaba non specifica quali modelli restituiscono il secondo messaggio, quindi verificalo con l'ID che usi.
Soluzione. Menziona JSON nel prompt e disattiva il ragionamento per le chiamate in modalità JSON:
curl -s https://aihubmix.com/v1/chat/completions \
-H "Authorization: Bearer $AIHUBMIX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.8-flash-free",
"messages": [{"role": "user", "content": "Reply in JSON with the city and date: meet in Hangzhou on Nov 3."}],
"response_format": {"type": "json_object"},
"enable_thinking": false
}'
400: "Input data may contain inappropriate content."
Perché. Il codice è data_inspection_failed. Alibaba Cloud controlla input e output dei modelli che ospita, inclusi gli ID a pagamento verso cui il fallback invia le richieste. Le varianti dicono "Output data may contain inappropriate content." oppure "Input or output data may contain inappropriate content." Il testo generato dagli utenti incollato in un prompt, come pagine copiate o ticket di supporto, è la causa più comune.
Soluzione. Individua il passaggio che lo fa scattare dividendo l'input, poi filtralo o riformulalo. Reinviare lo stesso input produce la stessa risposta.
Il guasto silenzioso: un pool di token esaurito
Nessun errore finché il pool da 1M di token non si esaurisce, poi tutto restituisce 429 in una volta sola. Tre fattori lo consumano più in fretta del previsto.
Token di ragionamento
Entrambi i modelli ragionano per impostazione predefinita, e Alibaba fattura il ragionamento come token di output; sul percorso gratuito, questi token contano nel pool giornaliero. Nel test di AIHubMix, una risposta di due frasi da qwen3.8-flash-free ha usato 89 token di output, 36 dei quali per il ragionamento. Max ragiona di più: Artificial Analysis ha misurato un uso di 190M token di output sul suo indice, contro una mediana di 87M.
Per l'estrazione, la formattazione e le ricerche brevi, disattiva il ragionamento. enable_thinking è l'interruttore documentato da Alibaba per Qwen3.8; con l'SDK di OpenAI va inserito in extra_body:
resp = client.chat.completions.create(
model="qwen3.8-flash-free",
messages=[{"role": "user", "content": "Return only the invoice number: INV-2026-0042, due Nov 3"}],
extra_body={"enable_thinking": False},
)
print(resp.choices[0].message.content)
print(resp.usage.completion_tokens_details)
Verifica che reasoning_tokens nel blocco usage scenda a 0. Se non succede, l'interruttore non è arrivato al modello su quel percorso e il ragionamento continua a consumare token.
I cicli degli agenti rinviano il contesto
Gli agenti di programmazione inviano l'intera conversazione, inclusi i contenuti dei file e i risultati degli strumenti, a ogni turno. Una sessione cresciuta fino a 40K token, eseguita per altri 20 turni, invia 800K token di input: gran parte del pool giornaliero prima ancora di qualsiasi output. Limita la finestra di contesto nelle impostazioni del modello del tuo strumento, avvia sessioni nuove per i nuovi task e usa la compattazione, se lo strumento la supporta.
Una richiesta enorme
Max e Flash accettano entrambi 1M di token di contesto, che equivale alla dimensione del pool giornaliero. Una singola richiesta che riempie la finestra esaurisce la giornata.
Quando la campagna termina
La finestra gratuita si chiude intorno al 13 novembre 2026 (ora del Pacifico), o prima se i crediti della campagna di GMI Cloud si esauriscono. Dopo, gli ID con -free non saranno più gratuiti. Il codice che già ricade sugli ID a pagamento continua a funzionare. Il codice che chiama direttamente gli ID gratuiti richiede una sola modifica: rimuovere -free dal nome del modello.
Configura il fallback una volta sola
AIHubMix può cambiare modello a livello di gateway quando il modello principale fallisce, configurato per chiave API, senza modifiche al tuo codice. Model mapping and fallback descrive tutte le regole. Per gli ID gratuiti di Qwen3.8:
- Apri la gestione delle chiavi API nella console di AIHubMix e modifica la chiave usata dalla tua app.
- In "Fallback models on error" aggiungi
qwen3.8-maxcome primo eqwen3.8-flashcome secondo. - Continua a chiamare
qwen3.8-max-freenel tuo codice.
Non inserire gli ID gratuiti nell'elenco di backup. Un modello gratuito può essere solo il modello principale; nell'elenco di backup viene saltato senza avvisi.
| Situazione | Ricade sul backup? |
|---|---|
| Il modello gratuito raggiunge una quota o un limite di frequenza | Sì, su un backup a pagamento |
| Tutti i canali upstream falliscono prima dell'inizio della risposta | Sì |
| Lo stream è già iniziato | No |
| Il client è andato in timeout | No |
| La tua chiave non è valida o il saldo è esaurito | No |
Le richieste di fallback sono fatturate al prezzo del modello a pagamento, quindi mantieni un saldo sull'account. Se le richieste di fallback iniziano a fallire con 403 "Your account balance is insufficient. Please recharge your account to continue using the API.", ricarica: il fallback non aggira il tuo saldo. Quando il saldo scende sotto -$1, anche i modelli gratuiti smettono di funzionare, finché non ricarichi.
Per vedere quale modello ha risposto, leggi le intestazioni della risposta:
curl -s -i https://aihubmix.com/v1/chat/completions \
-H "Authorization: Bearer $AIHUBMIX_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"qwen3.8-max-free","messages":[{"role":"user","content":"hi"}]}' \
| grep -i -E 'x-aihubmix-(model|fallback)'
X-Aihubmix-Fallback: true indica che la richiesta è ricaduta sul backup. X-Aihubmix-Model indica il modello che ha risposto, che è anche quello per cui ti viene addebitato il costo.
Strumenti di programmazione
Qualsiasi strumento che accetta un provider compatibile con OpenAI funziona con gli ID gratuiti, inclusi OpenCode, Cline, Kilo Code, Qwen Code e Hermes Agent. AIHubMix ha una pagina di configurazione per ciascuno; la guida a OpenCode è un buon punto di partenza. I valori sono gli stessi in ogni strumento:
| Impostazione | Valore |
|---|---|
| Tipo di provider | Compatibile con OpenAI |
| Base URL | https://aihubmix.com/v1 |
| Chiave API | La tua chiave AIHubMix |
| ID del modello | qwen3.8-flash-free o qwen3.8-max-free |
| Finestra di contesto | Fino a 1M; impostala più bassa per risparmiare il pool |
| Output massimo | Fino a 131K |
Due problemi noti valgono in ogni strumento. I cicli degli agenti esauriscono il pool di token condiviso, come descritto sopra. E la lunga latenza di Max lo rende lento come modello principale in un agente interattivo. Gli strumenti che permettono di scegliere modelli separati per la pianificazione e la modifica, come le modalità Plan e Act di Cline, possono assegnare Max alla pianificazione e Flash alle modifiche.
Un test di 15 minuti. Punta il tuo strumento su qwen3.8-flash-free e chiedigli di aggiungere un unit test per una piccola funzione in un repository reale, poi esegui il test. Il successo appare così: l'agente legge il file, scrive il test, lo esegue tramite una chiamata a uno strumento, e il registro di utilizzo di AIHubMix mostra le richieste sul modello gratuito a $0. Poi ripeti il passaggio di pianificazione con qwen3.8-max-free e controlla il tempo e i token che ha usato.
Checklist
- Ricarica di almeno $1, così la quota giornaliera sostituisce le 10 chiamate di prova
- ID del modello copiato esattamente dalla pagina del modello, e abilitato sulla chiave
- Job batch dosati a meno di 10 richieste al minuto
- Richieste a Max in streaming, con un timeout del client di 10 minuti o più
- Ragionamento disattivato per le richieste semplici, e reasoning_tokens verificato
- Contesto dell'agente limitato, con sessioni nuove per i nuovi task
- La potatura della cronologia mantiene insieme ogni chiamata allo strumento e i suoi risultati
- Le chiamate in JSON mode menzionano JSON e vengono eseguite con il ragionamento disattivato
- Fallback impostato su qwen3.8-max, poi qwen3.8-flash
- Un saldo residuo per le richieste di fallback
- Un promemoria impostato per il 13 novembre circa, quando si chiude la finestra gratuita
FAQ
Perché ricevo 429 su qwen3.8-max-free anche se l'ho usato pochissimo?
Un altro modello gratuito del tuo account ha esaurito il minuto o il giorno condiviso, oppure la capacità upstream della campagna è occupata. Il messaggio di errore indica quale delle due: "rate limited by provider" significa l'upstream.
Perché la mia richiesta restituisce "Incorrect model ID"?
Il nome del modello non corrisponde esattamente a un ID di AIHubMix. Usa qwen3.8-max-free o qwen3.8-flash-free, tutto in minuscolo; gli ID di GMI Cloud o di altre piattaforme non esistono qui. Viene restituito come 503, quindi assicurati che la logica di retry non continui a ritentarlo.
Il fallback costa denaro?
Solo quando si attiva. Una richiesta che ricade sul backup viene fatturata al prezzo del modello a pagamento che ha risposto.
Posso inserire qwen3.8-flash-free nell'elenco di fallback?
No. I modelli gratuiti possono essere solo il modello principale; AIHubMix li salta nell'elenco di backup.
Come evito che il ragionamento consumi i miei token gratuiti?
Passa enable_thinking impostato su false in extra_body per le richieste che non richiedono ragionamento, e verifica che reasoning_tokens scenda a 0 nel blocco usage.
Perché il mio agente di programmazione consuma il pool giornaliero così in fretta?
Gli agenti rinviano l'intera conversazione a ogni turno. Limita la finestra di contesto, avvia nuove sessioni per i nuovi task e usa Flash come modello principale dell'agente.
Cosa succede agli ID gratuiti dopo il 13 novembre?
Smettono di essere gratuiti, e prima se i crediti della campagna di GMI Cloud si esauriscono. Passa a qwen3.8-max o qwen3.8-flash, oppure affidati al fallback che hai impostato.
Continua a leggere: la serie Qwen3.8 Free
- Per le regole sulle quote, la data di fine e una prima richiesta funzionante: Free Qwen3.8 Max and Flash API on AIHubMix: Limits, End Date, and Your First Call
- Per smettere di incontrare le attese di Max su lavori che Flash può gestire: Qwen3.8 Max Free vs Qwen3.8 Flash Free: Is Flash Enough?
Fonti
- HTTP status codes (documentazione AIHubMix)
- Model mapping and fallback (documentazione AIHubMix)
- Free AI models and quotas (AIHubMix)
- Error codes (Alibaba Cloud Model Studio)
- Use deep thinking models via API (Alibaba Cloud Model Studio)



