As Info, after the update yesterday my LLM started almost every combo with"truncated"
Had to use claude to debug, but yesterday's update was the cause clashing with my custom app lab program
Hi @HKSpowered. I'm sorry to hear about the problem caused by the update.
If you will share more details about your project, the problem, and the solution you found, I'll be happy to investigate.
If I am able to reproduce the fault, then I can submit a formal bug report to the Arduino developers.
@ptillisch
i will attached a copy of my program, with IP's removed and personal details, here is what happened, and how it got working again:
VENTUNO Q: offline LLM chat + vision app, and what broke after the Oct 22 update
THE ATTACHED APP
LLM and Vision (v2.93): an App Lab app for the VENTUNO Q.
- Offline chat on the NPU (Qwen3-4B), with Quick / Balanced / Thorough
effort levels, custom instructions and an "About you" profile
- Live camera object detection on its own port (4912), USB or network
(RTSP) cameras, focus and exposure controls, alerts, snapshots
- Dashboard of other devices on the network, Programs tab, Board Control
Import the zip in App Lab and run it. Chat is on port 7000.
Optional extras are described in README.md inside the zip.
WHAT BROKE AFTER THE UPDATE (Oct 22, 2026, 23:01 board time)
The updater upgraded:
arduino-app-cli 0.13.0 -> 0.14.0
arduino-app-lab 0.10 -> 0.11, arduino-ventunoq 0.3 -> 0.4
assets 0.12.0 -> 0.13.1
python-apps-base 0.12.0 -> 0.13.1, ei-qnn-models-runner 0.12.1 -> 0.13.0
genai-llm-vlm-service 1.3.0 -> 1.5.0
Problem A: chat dies after a few long answers
- Replies become the literal text "[truncated]", or HTTP 500
"Service temporarily unavailable". After that every request fails
(HTTP 400) until the genie container is restarted.
- Reproduces with Arduino's own Edge AI Assistant example prompt (failed on
the 5th question), and even with no conversation memory when going
through the brick. Tiny replies never trigger it.
- Rough threshold: once a request plus its reply passes ~7,000 characters,
the next request fails (an estimate, not an exact number).
- Did not help: DELETE /v1/chat/completions/{id}, fresh connections,
folding history into one message, retrying.
Problem B: system-prompt changes are ignored
- If a new system prompt STARTS the same way as the previous one, the
service keeps using the old one. Settings added at the END of a long
prompt were never picked up: Quick and Thorough gave identical answers
and "Answer only in French" got English.
- Seen with the 1.3.0 service on the 0.13.1 brick. I have not tested 1.5.0
on its own, so I can't say which component causes it.
Smaller things noticed
- "arduino-app-cli app start/stop" rejects the IDs from "app list"
("invalid app path") but accepts the app's folder path.
- After an app folder was renamed, the CLI later started a leftover LLM
container of the old app. It held port 9001 and left the other app's LLM
container with no network.
HOW I PATCHED IT (workaround, not a real fix)
- Pinned the LLM service back to 1.3.0: tools/pin-llm-service.sh rewrites
assets//services/arduino/genie/service_compose.yaml with the
0.12.0 definition, keeps a backup, and restarts the app. No sudo needed.
"--undo" restores Arduino's file.
- Verified on the board: 1.3.0 passed every test that broke 1.5.0,
including 8 long answers in a row through the brick, and 15 of 15 long
answers through the finished app at all three effort levels.
- Put the settings that change (effort, instructions, profile) at the START
of the system prompt. After that Quick gave 23 words, Thorough 299, and
the French instruction worked.
- A later Arduino update that ships new assets will probably undo the pin.
The app shows a warning banner when the LLM service isn't 1.3.0.
USEFUL TO KNOW
- The model's real context window is 4,096 tokens (prompt + history +
reply together).
- Reply length limits are hard stops: the 4B model often writes more than
it's asked to, so set the limit well above what the prompt requests.
- Check which LLM service you're running:
docker ps --format '{{.Names}} {{.Image}}' | grep genie
Tested on a VENTUNO Q with qwen3_4b_instruct_2507 (genie), October 2026.
llm and vision multi program.zip (628.3 KB)