Troubleshooting#
This article covers common issues and how to resolve them. If you encounter a problem not listed here, see Order Accuracy Issues.
Build Fails (network / pip)#
docker compose build --no-cache
Model File Not Found#
# Verify models were correctly set up
ls ../ovms-service/models/
ls models/easyocr/
ls models/yolo11n_int8_openvino_model/
OVMS Not Starting#
# Check logs
docker logs oa_ovms_vlm
# Verify model files exist
ls -la ../ovms-service/models/
Connection Refused to OVMS (port 8001)#
OVMS can take 2–5 minutes to load the model. Wait and check:
docker logs -f oa_ovms_vlm | grep "Serving"
MinIO Bucket Errors#
# Recreate MinIO with fresh volumes
make down
docker volume rm take-away_minio_data
make up
GPU Not Detected#
sudo usermod -aG render $USER
# Log out and log back in, then restart services
make down && make up
GPU Out of Memory#
# Switch to CPU: set both in .env, then re-export model
TARGET_DEVICE=CPU
OPENVINO_DEVICE=CPU
# Then:
cd ../ovms-service && ./setup_models.sh --app take-away
cd ../take-away && make down && make up
OVMS Returns HTTP 404 for Every Request#
OVMS_MODEL_NAME must exactly match the name registered in
ovms-service/models/config.json, which setup_models.sh generates including the
precision suffix (for example openbmb/MiniCPM-V-4_5-int4). Any mismatch makes
every inference request return 404.
# Compare the registered name with the configured one
grep '"name"' ../ovms-service/models/config.json
grep OVMS_MODEL_NAME .env
Items Missing from Detections / High Latency#
MiniCPM-V-4.5 is a hybrid reasoning model. If VLM_ENABLE_THINKING is enabled, the
model emits a <think> reasoning block that consumes the entire
max_completion_tokens budget, so the answer is truncated — orders come back with
items missing and latency is several times higher.
# Confirm thinking is disabled
grep VLM_ENABLE_THINKING .env # expected: false
docker exec oa_service env | grep VLM_ENABLE_THINKING
Set VLM_ENABLE_THINKING=false in .env and restart (make down && make up).
Benchmark Reports Zero Transactions#
An all-zero result (total_transactions: 0, No vlm_metrics_logger files found)
usually means every order failed before inference. The most common cause is an
invalid or edited config/orders.json — a trailing comma or a missing entry makes
the file unparseable, and the service logs Order not found in orders.json.
# Validate the file before benchmarking
python3 -c "import json; print(json.load(open('config/orders.json')).keys())"
docker logs oa_service 2>&1 | grep -i "orders.json"
Order IDs in config/orders.json must also match the order numbers that appear in
the benchmark video, and each order’s expected items must reflect what is actually
visible — otherwise correct detections are still reported as mismatches.