$ python utils/recipe_maintenance.py
Working directory: /app
------------------------------------------------------------
🛠️ Starting recipe maintenance...
==================================================
🔧 Full maintenance mode
📋 Step 1: Processing unparsed recipes...
🔍 Scanning recipes for parsing status...
2026-06-14 15:14:26,649 - mealie_client - INFO - MealieClient initialized in API mode
🔍 Scanning for unparsed recipes...
🔧 Initializing USearch ANN index with dimension 4096
✅ USearch index initialized for cosine similarity search
2026-06-14 15:14:26,670 - recipe_rag - WARNING - ⚠️ No ANN index found. Run migration to build index.
✅ All recipes have known parsing status
✅ Found 0 recipes needing parsing
✅ No unparsed recipes found
🔄 Step 2: Syncing local database with Mealie...
🔍 Checking RecipeRAG index completeness...
2026-06-14 15:14:26,671 - mealie_client - INFO - MealieClient initialized in API mode
🔧 Initializing USearch ANN index with dimension 4096
✅ USearch index initialized for cosine similarity search
2026-06-14 15:14:26,832 - recipe_rag - WARNING - ⚠️ No ANN index found. Run migration to build index.
✅ Mealie: 118 recipes, RecipeRAG: 0 indexed
Mealie has 118, local has 0
🔄 Syncing local database with Mealie...
📡 Fetching recipe summaries from Mealie...
2026-06-14 15:14:26,832 - mealie_client - INFO - MealieClient initialized in API mode
Found 118 recipes in Mealie
🔧 Initializing USearch ANN index with dimension 4096
✅ USearch index initialized for cosine similarity search
2026-06-14 15:14:26,952 - recipe_rag - WARNING - ⚠️ No ANN index found. Run migration to build index.
Found 0 recipes in local DB
📊 To process: 118 new, 0 modified, 0 unchanged
📥 Fetching 118 recipe details...
2026-06-14 15:14:30,770 - __main__ - WARNING - ⚠️ Could not fetch recipe spaghetti-met-chili-broccoli-walnotenpesto: [GET] Network error: HTTPSConnectionPool(host='mealie.geevers.net', port=443): Max retries exceeded with url: /api/recipes/spaghetti-met-chili-broccoli-walnotenpesto (Caused by ResponseError('too many 500 error responses')) (endpoint=/recipes/spaghetti-met-chili-broccoli-walnotenpesto)
Fetching: 100/118
📊 Batch indexing 117 recipes...
2026-06-14 15:14:35,661 - recipe_rag - INFO - 📚 Batch indexing 117 recipes...
2026-06-14 15:14:35,662 - recipe_rag - INFO - Generating 117 embeddings via OpenRouter API...
2026-06-14 15:14:35,662 - batch_llm_processor - INFO - 🔄 Using OpenRouter API for chat completions
2026-06-14 15:14:35,662 - batch_llm_processor - INFO - 💡 Enhanced caching provides >90% hit rates for repeated analyses
2026-06-14 15:14:35,662 - batch_llm_processor - INFO - ✅ aiohttp available - concurrent processing enabled
2026-06-14 15:14:35,662 - batch_llm_processor - INFO - 🔄 Preloading cache with 1 common queries...
2026-06-14 15:14:35,662 - batch_llm_processor - INFO - ✅ Cache preloading complete
2026-06-14 15:14:35,662 - batch_llm_processor - INFO - 🍱 Preloaded cache with common shopping refinement patterns
2026-06-14 15:14:36,045 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,045 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,045 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,045 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,046 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,116 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,118 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,120 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,136 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,149 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,189 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,209 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,227 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,231 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,231 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,267 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,311 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,316 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,317 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,325 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,347 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,388 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,393 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,410 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,411 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,428 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,468 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,474 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,487 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,516 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,517 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,525 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,539 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,581 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,586 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,589 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,609 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,619 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,657 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,671 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,686 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,710 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,711 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,711 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,762 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,767 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,772 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,809 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,809 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,824 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,836 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,836 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,909 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,916 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,944 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,944 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:36,944 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,033 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,037 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,050 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,072 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,081 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,111 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,118 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,133 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,150 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,154 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,181 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,187 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,193 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,212 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,238 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,275 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,275 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,275 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,292 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,341 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,347 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,377 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,378 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,412 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,437 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,443 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,481 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,481 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,511 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,512 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,540 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,549 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,564 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,587 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,613 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,613 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,617 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,642 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,683 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,689 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,692 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,710 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,767 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,790 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,810 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,810 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,818 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,852 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,853 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,869 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,880 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,914 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,915 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,974 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,991 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:37,992 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:38,032 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:38,040 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:38,052 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:38,061 - batch_llm_processor - ERROR - ❌ Embedding API error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits
2026-06-14 15:14:38,062 - recipe_rag - WARNING - ⚠️ Failed to embed text 0, using zero vector
2026-06-14 15:14:38,062 - recipe_rag - WARNING - ⚠️ Failed to embed text 1, using zero vector
2026-06-14 15:14:38,062 - recipe_rag - WARNING - ⚠️ Failed to embed text 2, using zero vector
2026-06-14 15:14:38,062 - recipe_rag - WARNING - ⚠️ Failed to embed text 3, using zero vector
2026-06-14 15:14:38,062 - recipe_rag - WARNING - ⚠️ Failed to embed text 4, using zero vector
2026-06-14 15:14:38,062 - recipe_rag - WARNING - ⚠️ Failed to embed text 5, using zero vector
2026-06-14 15:14:38,062 - recipe_rag - WARNING - ⚠️ Failed to embed text 6, using zero vector
2026-06-14 15:14:38,062 - recipe_rag - WARNING - ⚠️ Failed to embed text 7, using zero vector
2026-06-14 15:14:38,062 - recipe_rag - WARNING - ⚠️ Failed to embed text 8, using zero vector
2026-06-14 15:14:38,062 - recipe_rag - WARNING - ⚠️ Failed to embed text 9, using zero vector
2026-06-14 15:14:38,062 - recipe_rag - WARNING - ⚠️ Failed to embed text 10, using zero vector
2026-06-14 15:14:38,062 - recipe_rag - WARNING - ⚠️ Failed to embed text 11, using zero vector
2026-06-14 15:14:38,062 - recipe_rag - WARNING - ⚠️ Failed to embed text 12, using zero vector
2026-06-14 15:14:38,062 - recipe_rag - WARNING - ⚠️ Failed to embed text 13, using zero vector
2026-06-14 15:14:38,062 - recipe_rag - WARNING - ⚠️ Failed to embed text 14, using zero vector
2026-06-14 15:14:38,062 - recipe_rag - WARNING - ⚠️ Failed to embed text 15, using zero vector
2026-06-14 15:14:38,062 - recipe_rag - WARNING - ⚠️ Failed to embed text 16, using zero vector
2026-06-14 15:14:38,063 - recipe_rag - WARNING - ⚠️ Failed to embed text 17, using zero vector
2026-06-14 15:14:38,063 - recipe_rag - WARNING - ⚠️ Failed to embed text 18, using zero vector
2026-06-14 15:14:38,063 - recipe_rag - WARNING - ⚠️ Failed to embed text 19, using zero vector
2026-06-14 15:14:38,063 - recipe_rag - WARNING - ⚠️ Failed to embed text 20, using zero vector
2026-06-14 15:14:38,063 - recipe_rag - WARNING - ⚠️ Failed to embed text 21, using zero vector
2026-06-14 15:14:38,063 - recipe_rag - WARNING - ⚠️ Failed to embed text 22, using zero vector
2026-06-14 15:14:38,063 - recipe_rag - WARNING - ⚠️ Failed to embed text 23, using zero vector
2026-06-14 15:14:38,063 - recipe_rag - WARNING - ⚠️ Failed to embed text 24, using zero vector
2026-06-14 15:14:38,063 - recipe_rag - WARNING - ⚠️ Failed to embed text 25, using zero vector
2026-06-14 15:14:38,063 - recipe_rag - WARNING - ⚠️ Failed to embed text 26, using zero vector
2026-06-14 15:14:38,063 - recipe_rag - WARNING - ⚠️ Failed to embed text 27, using zero vector
2026-06-14 15:14:38,063 - recipe_rag - WARNING - ⚠️ Failed to embed text 28, using zero vector
2026-06-14 15:14:38,063 - recipe_rag - WARNING - ⚠️ Failed to embed text 29, using zero vector
2026-06-14 15:14:38,063 - recipe_rag - WARNING - ⚠️ Failed to embed text 30, using zero vector
2026-06-14 15:14:38,063 - recipe_rag - WARNING - ⚠️ Failed to embed text 31, using zero vector
2026-06-14 15:14:38,063 - recipe_rag - WARNING - ⚠️ Failed to embed text 32, using zero vector
2026-06-14 15:14:38,063 - recipe_rag - WARNING - ⚠️ Failed to embed text 33, using zero vector
2026-06-14 15:14:38,063 - recipe_rag - WARNING - ⚠️ Failed to embed text 34, using zero vector
2026-06-14 15:14:38,063 - recipe_rag - WARNING - ⚠️ Failed to embed text 35, using zero vector
2026-06-14 15:14:38,063 - recipe_rag - WARNING - ⚠️ Failed to embed text 36, using zero vector
2026-06-14 15:14:38,064 - recipe_rag - WARNING - ⚠️ Failed to embed text 37, using zero vector
2026-06-14 15:14:38,064 - recipe_rag - WARNING - ⚠️ Failed to embed text 38, using zero vector
2026-06-14 15:14:38,064 - recipe_rag - WARNING - ⚠️ Failed to embed text 39, using zero vector
2026-06-14 15:14:38,064 - recipe_rag - WARNING - ⚠️ Failed to embed text 40, using zero vector
2026-06-14 15:14:38,064 - recipe_rag - WARNING - ⚠️ Failed to embed text 41, using zero vector
2026-06-14 15:14:38,064 - recipe_rag - WARNING - ⚠️ Failed to embed text 42, using zero vector
2026-06-14 15:14:38,064 - recipe_rag - WARNING - ⚠️ Failed to embed text 43, using zero vector
2026-06-14 15:14:38,064 - recipe_rag - WARNING - ⚠️ Failed to embed text 44, using zero vector
2026-06-14 15:14:38,064 - recipe_rag - WARNING - ⚠️ Failed to embed text 45, using zero vector
2026-06-14 15:14:38,064 - recipe_rag - WARNING - ⚠️ Failed to embed text 46, using zero vector
2026-06-14 15:14:38,064 - recipe_rag - WARNING - ⚠️ Failed to embed text 47, using zero vector
2026-06-14 15:14:38,064 - recipe_rag - WARNING - ⚠️ Failed to embed text 48, using zero vector
2026-06-14 15:14:38,064 - recipe_rag - WARNING - ⚠️ Failed to embed text 49, using zero vector
2026-06-14 15:14:38,064 - recipe_rag - WARNING - ⚠️ Failed to embed text 50, using zero vector
2026-06-14 15:14:38,064 - recipe_rag - WARNING - ⚠️ Failed to embed text 51, using zero vector
2026-06-14 15:14:38,064 - recipe_rag - WARNING - ⚠️ Failed to embed text 52, using zero vector
2026-06-14 15:14:38,064 - recipe_rag - WARNING - ⚠️ Failed to embed text 53, using zero vector
2026-06-14 15:14:38,064 - recipe_rag - WARNING - ⚠️ Failed to embed text 54, using zero vector
2026-06-14 15:14:38,064 - recipe_rag - WARNING - ⚠️ Failed to embed text 55, using zero vector
2026-06-14 15:14:38,064 - recipe_rag - WARNING - ⚠️ Failed to embed text 56, using zero vector
2026-06-14 15:14:38,065 - recipe_rag - WARNING - ⚠️ Failed to embed text 57, using zero vector
2026-06-14 15:14:38,065 - recipe_rag - WARNING - ⚠️ Failed to embed text 58, using zero vector
2026-06-14 15:14:38,065 - recipe_rag - WARNING - ⚠️ Failed to embed text 59, using zero vector
2026-06-14 15:14:38,065 - recipe_rag - WARNING - ⚠️ Failed to embed text 60, using zero vector
2026-06-14 15:14:38,065 - recipe_rag - WARNING - ⚠️ Failed to embed text 61, using zero vector
2026-06-14 15:14:38,065 - recipe_rag - WARNING - ⚠️ Failed to embed text 62, using zero vector
2026-06-14 15:14:38,065 - recipe_rag - WARNING - ⚠️ Failed to embed text 63, using zero vector
2026-06-14 15:14:38,065 - recipe_rag - WARNING - ⚠️ Failed to embed text 64, using zero vector
2026-06-14 15:14:38,065 - recipe_rag - WARNING - ⚠️ Failed to embed text 65, using zero vector
2026-06-14 15:14:38,065 - recipe_rag - WARNING - ⚠️ Failed to embed text 66, using zero vector
2026-06-14 15:14:38,065 - recipe_rag - WARNING - ⚠️ Failed to embed text 67, using zero vector
2026-06-14 15:14:38,065 - recipe_rag - WARNING - ⚠️ Failed to embed text 68, using zero vector
2026-06-14 15:14:38,065 - recipe_rag - WARNING - ⚠️ Failed to embed text 69, using zero vector
2026-06-14 15:14:38,065 - recipe_rag - WARNING - ⚠️ Failed to embed text 70, using zero vector
2026-06-14 15:14:38,065 - recipe_rag - WARNING - ⚠️ Failed to embed text 71, using zero vector
2026-06-14 15:14:38,065 - recipe_rag - WARNING - ⚠️ Failed to embed text 72, using zero vector
2026-06-14 15:14:38,065 - recipe_rag - WARNING - ⚠️ Failed to embed text 73, using zero vector
2026-06-14 15:14:38,065 - recipe_rag - WARNING - ⚠️ Failed to embed text 74, using zero vector
2026-06-14 15:14:38,065 - recipe_rag - WARNING - ⚠️ Failed to embed text 75, using zero vector
2026-06-14 15:14:38,065 - recipe_rag - WARNING - ⚠️ Failed to embed text 76, using zero vector
2026-06-14 15:14:38,066 - recipe_rag - WARNING - ⚠️ Failed to embed text 77, using zero vector
2026-06-14 15:14:38,066 - recipe_rag - WARNING - ⚠️ Failed to embed text 78, using zero vector
2026-06-14 15:14:38,066 - recipe_rag - WARNING - ⚠️ Failed to embed text 79, using zero vector
2026-06-14 15:14:38,066 - recipe_rag - WARNING - ⚠️ Failed to embed text 80, using zero vector
2026-06-14 15:14:38,066 - recipe_rag - WARNING - ⚠️ Failed to embed text 81, using zero vector
2026-06-14 15:14:38,066 - recipe_rag - WARNING - ⚠️ Failed to embed text 82, using zero vector
2026-06-14 15:14:38,066 - recipe_rag - WARNING - ⚠️ Failed to embed text 83, using zero vector
2026-06-14 15:14:38,066 - recipe_rag - WARNING - ⚠️ Failed to embed text 84, using zero vector
2026-06-14 15:14:38,066 - recipe_rag - WARNING - ⚠️ Failed to embed text 85, using zero vector
2026-06-14 15:14:38,066 - recipe_rag - WARNING - ⚠️ Failed to embed text 86, using zero vector
2026-06-14 15:14:38,066 - recipe_rag - WARNING - ⚠️ Failed to embed text 87, using zero vector
2026-06-14 15:14:38,066 - recipe_rag - WARNING - ⚠️ Failed to embed text 88, using zero vector
2026-06-14 15:14:38,066 - recipe_rag - WARNING - ⚠️ Failed to embed text 89, using zero vector
2026-06-14 15:14:38,066 - recipe_rag - WARNING - ⚠️ Failed to embed text 90, using zero vector
2026-06-14 15:14:38,066 - recipe_rag - WARNING - ⚠️ Failed to embed text 91, using zero vector
2026-06-14 15:14:38,066 - recipe_rag - WARNING - ⚠️ Failed to embed text 92, using zero vector
2026-06-14 15:14:38,066 - recipe_rag - WARNING - ⚠️ Failed to embed text 93, using zero vector
2026-06-14 15:14:38,066 - recipe_rag - WARNING - ⚠️ Failed to embed text 94, using zero vector
2026-06-14 15:14:38,066 - recipe_rag - WARNING - ⚠️ Failed to embed text 95, using zero vector
2026-06-14 15:14:38,067 - recipe_rag - WARNING - ⚠️ Failed to embed text 96, using zero vector
2026-06-14 15:14:38,067 - recipe_rag - WARNING - ⚠️ Failed to embed text 97, using zero vector
2026-06-14 15:14:38,067 - recipe_rag - WARNING - ⚠️ Failed to embed text 98, using zero vector
2026-06-14 15:14:38,067 - recipe_rag - WARNING - ⚠️ Failed to embed text 99, using zero vector
2026-06-14 15:14:38,067 - recipe_rag - WARNING - ⚠️ Failed to embed text 100, using zero vector
2026-06-14 15:14:38,067 - recipe_rag - WARNING - ⚠️ Failed to embed text 101, using zero vector
2026-06-14 15:14:38,067 - recipe_rag - WARNING - ⚠️ Failed to embed text 102, using zero vector
2026-06-14 15:14:38,067 - recipe_rag - WARNING - ⚠️ Failed to embed text 103, using zero vector
2026-06-14 15:14:38,067 - recipe_rag - WARNING - ⚠️ Failed to embed text 104, using zero vector
2026-06-14 15:14:38,067 - recipe_rag - WARNING - ⚠️ Failed to embed text 105, using zero vector
2026-06-14 15:14:38,067 - recipe_rag - WARNING - ⚠️ Failed to embed text 106, using zero vector
2026-06-14 15:14:38,067 - recipe_rag - WARNING - ⚠️ Failed to embed text 107, using zero vector
2026-06-14 15:14:38,067 - recipe_rag - WARNING - ⚠️ Failed to embed text 108, using zero vector
2026-06-14 15:14:38,067 - recipe_rag - WARNING - ⚠️ Failed to embed text 109, using zero vector
2026-06-14 15:14:38,067 - recipe_rag - WARNING - ⚠️ Failed to embed text 110, using zero vector
2026-06-14 15:14:38,067 - recipe_rag - WARNING - ⚠️ Failed to embed text 111, using zero vector
2026-06-14 15:14:38,067 - recipe_rag - WARNING - ⚠️ Failed to embed text 112, using zero vector
2026-06-14 15:14:38,067 - recipe_rag - WARNING - ⚠️ Failed to embed text 113, using zero vector
2026-06-14 15:14:38,067 - recipe_rag - WARNING - ⚠️ Failed to embed text 114, using zero vector
2026-06-14 15:14:38,068 - recipe_rag - WARNING - ⚠️ Failed to embed text 115, using zero vector
2026-06-14 15:14:38,068 - recipe_rag - WARNING - ⚠️ Failed to embed text 116, using zero vector
2026-06-14 15:14:38,072 - recipe_rag - INFO - ✅ Embeddings generated
✅ USearch index saved to /app/data/recipe_usearch.index
2026-06-14 15:14:38,622 - recipe_rag - INFO - 💾 Saved ANN index with 117 new recipes
2026-06-14 15:14:38,626 - recipe_rag - INFO - ✅ Batch indexed 117/117 recipes
✅ Batch indexed 117 recipes
✅ Sync complete: +117 added, -0 removed, ~0 modified, =0 unchanged
🔧 Repairing 117 recipes with missing cuisine...
2026-06-14 15:14:38,627 - __main__ - WARNING - Error in cuisine repair pass: name 'MealieClient' is not defined
✅ Sync completed: +117 added, -0 removed, ~0 modified
🏷️ Step 3: Tagging untagged recipes...
🏷️ Found 117 untagged recipes, running bulk tagger...
🔍 Validating system for bulk tagging...
2026-06-14 15:14:38,781 - __main__ - INFO - Validating system for bulk tagging
2026-06-14 15:14:38,781 - config - INFO - ============================================================
2026-06-14 15:14:38,781 - config - INFO - 🔍 VALIDATING SYSTEM DEPENDENCIES (WITH HTTP FALLBACKS)...
2026-06-14 15:14:38,781 - config - INFO - ============================================================
2026-06-14 15:14:38,871 - config - INFO - ✅ Mealie connection successful: https://mealie.geevers.net
2026-06-14 15:14:39,042 - config - INFO - ✅ OpenRouter connection successful
2026-06-14 15:14:39,042 - config - INFO - ✅ Using model: openai/gpt-4o-mini
2026-06-14 15:14:39,042 - config - INFO - ============================================================
2026-06-14 15:14:39,043 - config - INFO - ✅ ALL DEPENDENCIES VALIDATED - SYSTEM READY!
2026-06-14 15:14:39,043 - config - INFO - ✅ Mealie: Connected and authenticated
2026-06-14 15:14:39,043 - config - INFO - ✅ OpenRouter: Connected with required model
2026-06-14 15:14:39,043 - config - INFO - ✅ Embeddings: Qwen3-Embedding-8B (OpenRouter API)
2026-06-14 15:14:39,043 - config - INFO - ✅ SYSTEM READY FOR PRODUCTION
2026-06-14 15:14:39,043 - config - INFO - ============================================================
2026-06-14 15:14:39,043 - __main__ - INFO - Found 117 recipes needing cuisine classification
📝 Found 117 recipes needing cuisine classification
2026-06-14 15:14:39,044 - __main__ - INFO - Using configuration: batch_size=13, max_concurrent=10, environment=development
⚙️ Using configuration: batch_size=13, max_concurrent=10
Environment: development
🚀 Auto-confirming bulk tagging of 117 recipes
╭───────────────────────────── Operation Started ──────────────────────────────╮
│ 🚀 Bulk Tagging Recipes - Processing in batches of 13 │
│ 📊 Processing 117 items │
╰──────────────────────────────────────────────────────────────────────────────╯
🔄 Processing batch 1/9 (13 recipes)
2026-06-14 15:14:39,284 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:39,285 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:39,414 - automatic_tagger - INFO - 🔍 Analyzing recipe: AARDAPPEL, ARTISJOK & SPLIJTKOOL MET GEBAKKEN EIEREN
2026-06-14 15:14:39,415 - batch_llm_processor - INFO - 🔄 Using OpenRouter API for chat completions
2026-06-14 15:14:39,415 - batch_llm_processor - INFO - 💡 Enhanced caching provides >90% hit rates for repeated analyses
2026-06-14 15:14:39,415 - batch_llm_processor - INFO - ✅ aiohttp available - concurrent processing enabled
2026-06-14 15:14:39,415 - batch_llm_processor - INFO - 🔄 Preloading cache with 1 common queries...
2026-06-14 15:14:39,415 - batch_llm_processor - INFO - ✅ Cache preloading complete
2026-06-14 15:14:39,415 - batch_llm_processor - INFO - 🍱 Preloaded cache with common shopping refinement patterns
2026-06-14 15:14:39,415 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:39,556 - automatic_tagger - INFO - 🔍 Analyzing recipe: AH Portugese kip piri piri verspakket
2026-06-14 15:14:39,557 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:39,663 - automatic_tagger - INFO - 🔍 Analyzing recipe: AUBERGINE MET TOMATEN, HARISSA & AMANDELEN
2026-06-14 15:14:39,664 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:39,760 - automatic_tagger - INFO - 🔍 Analyzing recipe: AVOCADO'S & ASPERGES MET SINAASAPPEL
2026-06-14 15:14:39,761 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:39,845 - automatic_tagger - INFO - 🔍 Analyzing recipe: BIETJESCURRY MET KIKKERERWTEN & KOKOS
2026-06-14 15:14:39,845 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:39,949 - automatic_tagger - INFO - 🔍 Analyzing recipe: BLOEMKOOL MET KIKKERERWTEN & SPLIJTKOOL
2026-06-14 15:14:39,949 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:40,060 - automatic_tagger - INFO - 🔍 Analyzing recipe: BOERENKOOL-BORLOTTI-MINESTRONE MET DITALINI
2026-06-14 15:14:40,061 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:40,169 - automatic_tagger - INFO - 🔍 Analyzing recipe: BONENCHILI MET AVOCADOSALSA
2026-06-14 15:14:40,169 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:40,319 - automatic_tagger - INFO - 🔍 Analyzing recipe: Baked 'feta' pasta met burrata
2026-06-14 15:14:40,319 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:40,423 - automatic_tagger - INFO - 🔍 Analyzing recipe: Burrata salade met tomaat – in 10 min. klaar
2026-06-14 15:14:40,477 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:40,477 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:40,478 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:40,478 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:40,478 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:40,614 - automatic_tagger - INFO - 🔍 Analyzing recipe: CANNELLINIBONENFALAFEL MET AARDAPPELPARTJES
2026-06-14 15:14:40,616 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:40,616 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:40,617 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:40,617 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:40,617 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:40,617 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:40,617 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:40,617 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:40,617 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:40,618 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:40,618 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:40,618 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:40,618 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:40,619 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:40,619 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:40,619 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:40,619 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:40,619 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:40,619 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:40,619 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:40,619 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:40,619 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:40,619 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:40,619 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:40,619 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:40,619 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:40,619 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:40,619 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:40,619 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:40,619 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:40,619 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:40,619 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:40,619 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:40,619 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:40,619 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:40,619 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:40,619 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:40,764 - automatic_tagger - INFO - 🔍 Analyzing recipe: CAPONATA: AUBERGINES MET OLIJVEN, KAPPERTJES & TOMATEN
2026-06-14 15:14:40,765 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:40,885 - automatic_tagger - INFO - 🔍 Analyzing recipe: CHIPOTLE-MAIS MET POMPOEN, ZWARTE BONEN & FETA
2026-06-14 15:14:40,962 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:40,962 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:40,962 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:40,962 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:40,966 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:40,966 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:40,966 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:40,966 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:42,398 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:42,399 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:42,399 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:42,399 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
Error: ❌ AARDAPPEL, ARTISJOK & SPLIJTKOOL MET GEBAKKEN EIEREN: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ AH Portugese kip piri piri verspakket: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ AUBERGINE MET TOMATEN, HARISSA & AMANDELEN: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ AVOCADO'S & ASPERGES MET SINAASAPPEL: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ BIETJESCURRY MET KIKKERERWTEN & KOKOS: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ BLOEMKOOL MET KIKKERERWTEN & SPLIJTKOOL: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ BOERENKOOL-BORLOTTI-MINESTRONE MET DITALINI: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ BONENCHILI MET AVOCADOSALSA: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Baked 'feta' pasta met burrata: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Burrata salade met tomaat – in 10 min. klaar: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ CANNELLINIBONENFALAFEL MET AARDAPPELPARTJES: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ CAPONATA: AUBERGINES MET OLIJVEN, KAPPERTJES & TOMATEN: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ CHIPOTLE-MAIS MET POMPOEN, ZWARTE BONEN & FETA: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
🔄 Processing batch 2/9 (13 recipes)
2026-06-14 15:14:42,399 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:42,399 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:42,521 - automatic_tagger - INFO - 🔍 Analyzing recipe: CREOOLSE CHAMPIGNON-PREITAART
2026-06-14 15:14:42,521 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:42,623 - automatic_tagger - INFO - 🔍 Analyzing recipe: DE MEEST LUXE SNELLE QUICHE: BROCCOLI, BLAUWE KAAS & WALNOOT
2026-06-14 15:14:42,623 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:42,716 - automatic_tagger - INFO - 🔍 Analyzing recipe: EENVOUDIGE DAL MET SJALOTJES & CASHEWNOTEN
2026-06-14 15:14:42,717 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:42,816 - automatic_tagger - INFO - 🔍 Analyzing recipe: ESCALIVADA: PAPRIKA'S, AUBERGINES & TOMATEN
2026-06-14 15:14:42,817 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:42,916 - automatic_tagger - INFO - 🔍 Analyzing recipe: Eenvoudige maaltijdsalade met tonijn
2026-06-14 15:14:42,917 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:42,987 - automatic_tagger - INFO - 🔍 Analyzing recipe: FAJITA-PADDENSTOELEN & PAPRIKA MET STILTON
2026-06-14 15:14:42,987 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:43,093 - automatic_tagger - INFO - 🔍 Analyzing recipe: FETA PSITI Gebakken feta uit de oven
2026-06-14 15:14:43,094 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:43,198 - automatic_tagger - INFO - 🔍 Analyzing recipe: Frittata with Tomato & Spring Vegetables: Peas, Asparagus, Ricotta & Fresh Mint
2026-06-14 15:14:43,199 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:43,296 - automatic_tagger - INFO - 🔍 Analyzing recipe: GADOGADO: INDONESISCHE SALADE MET AARDAPPELS, SPERZIEBONEN & PINDADRESSING
2026-06-14 15:14:43,297 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:43,392 - automatic_tagger - INFO - 🔍 Analyzing recipe: GEBAKKEN EIEREN MET BIETJES, KNOLSELDERIJ & FETA
2026-06-14 15:14:43,467 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:43,467 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:43,468 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:43,468 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:43,468 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:43,574 - automatic_tagger - INFO - 🔍 Analyzing recipe: GEBAKKEN SPITSKOOL MET SZECHUAN, SESAM & SHIITAKE
2026-06-14 15:14:43,576 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:43,576 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:43,576 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:43,576 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:43,577 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:43,577 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:43,577 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:43,577 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:43,578 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:43,579 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:43,579 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:43,579 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:43,579 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:43,579 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:43,579 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:43,579 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:43,579 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:43,579 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:43,579 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:43,579 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:43,579 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:43,579 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:43,580 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:43,580 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:43,580 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:43,580 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:43,580 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:43,580 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:43,580 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:43,580 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:43,580 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:43,580 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:43,580 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:43,659 - automatic_tagger - INFO - 🔍 Analyzing recipe: GEBAKKEN UIEN MET KERSTOMATEN & CANNELLINIBONEN
2026-06-14 15:14:43,659 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:43,757 - automatic_tagger - INFO - 🔍 Analyzing recipe: GEGRATINEERDE AARDAPPELS & PADDENSTOELEN
2026-06-14 15:14:43,816 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:43,816 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:43,816 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:43,816 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:43,825 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:43,825 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:43,825 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:43,825 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:43,867 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:43,868 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:43,868 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:43,868 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:44,237 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:44,237 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:44,237 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:44,237 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
Error: ❌ CREOOLSE CHAMPIGNON-PREITAART: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ DE MEEST LUXE SNELLE QUICHE: BROCCOLI, BLAUWE KAAS & WALNOOT: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ EENVOUDIGE DAL MET SJALOTJES & CASHEWNOTEN: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ ESCALIVADA: PAPRIKA'S, AUBERGINES & TOMATEN: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Eenvoudige maaltijdsalade met tonijn: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ FAJITA-PADDENSTOELEN & PAPRIKA MET STILTON: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ FETA PSITI Gebakken feta uit de oven: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Frittata with Tomato & Spring Vegetables: Peas, Asparagus, Ricotta & Fresh Mint: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ GADOGADO: INDONESISCHE SALADE MET AARDAPPELS, SPERZIEBONEN & PINDADRESSING: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ GEBAKKEN EIEREN MET BIETJES, KNOLSELDERIJ & FETA: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ GEBAKKEN SPITSKOOL MET SZECHUAN, SESAM & SHIITAKE: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ GEBAKKEN UIEN MET KERSTOMATEN & CANNELLINIBONEN: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ GEGRATINEERDE AARDAPPELS & PADDENSTOELEN: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
🔄 Processing batch 3/9 (13 recipes)
2026-06-14 15:14:44,238 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:44,238 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:44,340 - automatic_tagger - INFO - 🔍 Analyzing recipe: GEGRATINEERDE AUBERGINE & VENKEL MET GEITENKAAS
2026-06-14 15:14:44,341 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:44,425 - automatic_tagger - INFO - 🔍 Analyzing recipe: GEGRATINEERDE SPRUITJES & ARTISJOK MET BLAUWE KAAS
2026-06-14 15:14:44,426 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:44,572 - automatic_tagger - INFO - 🔍 Analyzing recipe: GEMARINEERDE LIMABONEN & TOMATEN MET PISTACHE-LENTE-UIPESTO
2026-06-14 15:14:44,573 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:44,648 - automatic_tagger - INFO - 🔍 Analyzing recipe: GEROOKTE TOFU
MET VENKEL, PAKSOI
& SATÉDRESSING
2026-06-14 15:14:44,649 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:44,732 - automatic_tagger - INFO - 🔍 Analyzing recipe: GEVULDE MINIPOMPOENTJES MET SALIE & GEITENKAAS
2026-06-14 15:14:44,733 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:44,821 - automatic_tagger - INFO - 🔍 Analyzing recipe: GEVULDE VENKEL MET CHAMPIGNONS
2026-06-14 15:14:44,821 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:44,925 - automatic_tagger - INFO - 🔍 Analyzing recipe: GNOCCHI MET
PADDENSTOELEN
& POMPOEN
2026-06-14 15:14:44,925 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:45,025 - automatic_tagger - INFO - 🔍 Analyzing recipe: GROENE GROENTEN MET BULGUR & RICOTTA
2026-06-14 15:14:45,025 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:45,133 - automatic_tagger - INFO - 🔍 Analyzing recipe: Gadogado van courgettespaghetti, krokante tempeh & een eitje
2026-06-14 15:14:45,134 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:45,235 - automatic_tagger - INFO - 🔍 Analyzing recipe: Gebakken Aardappelsalade met Pickles
2026-06-14 15:14:45,300 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:45,301 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:45,301 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:45,301 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:45,301 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:45,437 - automatic_tagger - INFO - 🔍 Analyzing recipe: Geroosterde aubergine met ansjovis en oregano
2026-06-14 15:14:45,439 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:45,440 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:45,440 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:45,440 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:45,440 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:45,441 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:45,441 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:45,441 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:45,443 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:45,443 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:45,443 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:45,443 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:45,443 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:45,443 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:45,443 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:45,443 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:45,443 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:45,443 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:45,444 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:45,444 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:45,444 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:45,444 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:45,444 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:45,444 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:45,444 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:45,444 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:45,444 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:45,444 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:45,444 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:45,444 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:45,444 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:45,444 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:45,445 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:45,567 - automatic_tagger - INFO - 🔍 Analyzing recipe: Glutenvrije gevulde courgette met pizzatopping
2026-06-14 15:14:45,568 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:45,677 - automatic_tagger - INFO - 🔍 Analyzing recipe: Gnocchi pompoen
2026-06-14 15:14:45,720 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:45,720 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:45,720 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:45,720 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:45,745 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:45,745 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:45,746 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:45,746 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:45,748 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:45,748 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:45,748 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:45,748 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:46,184 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:46,185 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:46,185 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:46,185 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
Error: ❌ GEGRATINEERDE AUBERGINE & VENKEL MET GEITENKAAS: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ GEGRATINEERDE SPRUITJES & ARTISJOK MET BLAUWE KAAS: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ GEMARINEERDE LIMABONEN & TOMATEN MET PISTACHE-LENTE-UIPESTO: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ GEROOKTE TOFU
MET VENKEL, PAKSOI
& SATÉDRESSING: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ GEVULDE MINIPOMPOENTJES MET SALIE & GEITENKAAS: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ GEVULDE VENKEL MET CHAMPIGNONS: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ GNOCCHI MET
PADDENSTOELEN
& POMPOEN: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ GROENE GROENTEN MET BULGUR & RICOTTA: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Gadogado van courgettespaghetti, krokante tempeh & een eitje: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Gebakken Aardappelsalade met Pickles: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Geroosterde aubergine met ansjovis en oregano: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Glutenvrije gevulde courgette met pizzatopping: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Gnocchi pompoen: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
🔄 Processing batch 4/9 (13 recipes)
2026-06-14 15:14:46,186 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:46,186 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:46,289 - automatic_tagger - INFO - 🔍 Analyzing recipe: Groentestoof met parelcouscous
2026-06-14 15:14:46,290 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:46,408 - automatic_tagger - INFO - 🔍 Analyzing recipe: HARISSA-PREI MET
BIETJES & FETA
2026-06-14 15:14:46,408 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:46,501 - automatic_tagger - INFO - 🔍 Analyzing recipe: HARTIGE TAART VAN COURGETTES, ASPERGES & GEITENKAAS
2026-06-14 15:14:46,502 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:46,599 - automatic_tagger - INFO - 🔍 Analyzing recipe: HELE BLOEMKOOL MET PARELGORT & GRANAATAPPEL
2026-06-14 15:14:46,599 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:46,699 - automatic_tagger - INFO - 🔍 Analyzing recipe: Halloumi Mediterranean Traybake: A Delicious & Easy Recipe
2026-06-14 15:14:46,700 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:46,820 - automatic_tagger - INFO - 🔍 Analyzing recipe: High-Protein Tomato & Basil Salad
2026-06-14 15:14:46,820 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:46,892 - automatic_tagger - INFO - 🔍 Analyzing recipe: KABELJAUW MET BENGAALSE MOSTERD, BLOEMKOOL & DOPERWTEN
2026-06-14 15:14:46,892 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:46,986 - automatic_tagger - INFO - 🔍 Analyzing recipe: KAYANAS - GRIEKSE 'OMELET' MET TOMAAT
2026-06-14 15:14:46,987 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:47,089 - automatic_tagger - INFO - 🔍 Analyzing recipe: KLEEFRIJST MET BROCCOLI & POMPOEN
2026-06-14 15:14:47,090 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:47,206 - automatic_tagger - INFO - 🔍 Analyzing recipe: KNAPPERIGE BLOEMKOOLSCHIJVEN MET HARISSA & GEITENKAAS
2026-06-14 15:14:47,279 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:47,279 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:47,279 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:47,279 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:47,280 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:47,385 - automatic_tagger - INFO - 🔍 Analyzing recipe: KROKANTE GNOCCHI MET PAPRIKA & ROZEMARIJN
2026-06-14 15:14:47,387 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:47,387 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:47,387 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:47,388 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:47,388 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:47,388 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:47,388 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:47,388 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:47,388 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:47,390 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:47,390 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:47,390 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:47,390 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:47,391 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:47,391 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:47,391 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:47,391 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:47,391 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:47,391 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:47,391 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:47,391 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:47,391 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:47,391 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:47,391 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:47,391 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:47,391 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:47,391 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:47,391 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:47,391 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:47,391 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:47,392 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:47,392 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:47,392 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:47,392 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:47,392 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:47,392 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:47,392 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:47,494 - automatic_tagger - INFO - 🔍 Analyzing recipe: Kikkererwtenbowl met zoete aardappel, quinoa en spinazie
2026-06-14 15:14:47,495 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:47,584 - automatic_tagger - INFO - 🔍 Analyzing recipe: Kikkerwt-Bloemkool-Kokoscurry
2026-06-14 15:14:47,635 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:47,635 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:47,635 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:47,635 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:47,678 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:47,678 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:47,678 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:47,678 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:47,682 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:47,683 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:47,683 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:47,683 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
Error: ❌ Groentestoof met parelcouscous: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ HARISSA-PREI MET
BIETJES & FETA: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ HARTIGE TAART VAN COURGETTES, ASPERGES & GEITENKAAS: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ HELE BLOEMKOOL MET PARELGORT & GRANAATAPPEL: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Halloumi Mediterranean Traybake: A Delicious & Easy Recipe: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ High-Protein Tomato & Basil Salad: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ KABELJAUW MET BENGAALSE MOSTERD, BLOEMKOOL & DOPERWTEN: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ KAYANAS - GRIEKSE 'OMELET' MET TOMAAT: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ KLEEFRIJST MET BROCCOLI & POMPOEN: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ KNAPPERIGE BLOEMKOOLSCHIJVEN MET HARISSA & GEITENKAAS: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ KROKANTE GNOCCHI MET PAPRIKA & ROZEMARIJN: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Kikkererwtenbowl met zoete aardappel, quinoa en spinazie: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Kikkerwt-Bloemkool-Kokoscurry: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
🔄 Processing batch 5/9 (13 recipes)
2026-06-14 15:14:47,683 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:47,683 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:47,821 - automatic_tagger - INFO - 🔍 Analyzing recipe: Knapperige halloumi met babywortels, cannellinibonen & walnoten
2026-06-14 15:14:47,821 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:47,942 - automatic_tagger - INFO - 🔍 Analyzing recipe: LUNCHTROMMELSALADE: BROCCOLI MET OLIJVEN, TOMATEN & PIJNBOOMPITTEN
2026-06-14 15:14:47,942 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:48,094 - automatic_tagger - INFO - 🔍 Analyzing recipe: Libanese wraps met falafel, witte kaas en gegrilde groenten
2026-06-14 15:14:48,095 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:48,197 - automatic_tagger - INFO - 🔍 Analyzing recipe: MAKKELIJKE PANEERCURRY MET SPINAZIE, ROOM & CITROEN
2026-06-14 15:14:48,199 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:48,326 - automatic_tagger - INFO - 🔍 Analyzing recipe: MEDITERRANE COURGETTES MET OLIJVEN & FETA
2026-06-14 15:14:48,327 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:48,445 - automatic_tagger - INFO - 🔍 Analyzing recipe: MILD GEKRUIDE PARELGORT MET TOMAAT, PREI & PIJNBOOMPITTEN
2026-06-14 15:14:48,446 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:48,540 - automatic_tagger - INFO - 🔍 Analyzing recipe: Mapo Tofu met Champignons, Chili & Lente-ui
2026-06-14 15:14:48,540 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:48,683 - automatic_tagger - INFO - 🔍 Analyzing recipe: Miso-aubergines met tofu
2026-06-14 15:14:48,684 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:48,780 - automatic_tagger - INFO - 🔍 Analyzing recipe: Noedelsoep met shiitake en paksoi
2026-06-14 15:14:48,781 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:49,071 - automatic_tagger - INFO - 🔍 Analyzing recipe: OKRA-CURRY MET KIKKERERWTEN & AMANDELEN
2026-06-14 15:14:49,140 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:49,141 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:49,141 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:49,141 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:49,141 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:49,234 - automatic_tagger - INFO - 🔍 Analyzing recipe: ORZO MET TOMAAT-LAURIERSAUS
2026-06-14 15:14:49,236 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:49,236 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:49,236 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:49,236 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:49,236 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:49,237 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:49,237 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:49,238 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:49,239 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:49,239 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:49,239 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:49,239 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:49,239 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:49,239 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:49,239 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:49,239 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:49,239 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:49,239 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:49,239 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:49,240 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:49,240 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:49,240 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:49,240 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:49,240 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:49,240 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:49,240 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:49,240 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:49,240 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:49,240 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:49,365 - automatic_tagger - INFO - 🔍 Analyzing recipe: One-Pan Pasta Sauce with Aubergines, Tomatoes, Capers & Pine Nuts
2026-06-14 15:14:49,365 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:49,468 - automatic_tagger - INFO - 🔍 Analyzing recipe: Orzo met edamame en geroosterde aubergine
2026-06-14 15:14:49,470 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:49,474 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:49,474 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:49,474 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:49,522 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:49,523 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:49,523 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:49,523 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:49,526 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:49,527 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:49,527 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:49,527 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:49,559 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:49,559 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:49,560 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:49,560 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:50,998 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:50,999 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:50,999 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:50,999 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
Error: ❌ Knapperige halloumi met babywortels, cannellinibonen & walnoten: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ LUNCHTROMMELSALADE: BROCCOLI MET OLIJVEN, TOMATEN & PIJNBOOMPITTEN: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Libanese wraps met falafel, witte kaas en gegrilde groenten: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ MAKKELIJKE PANEERCURRY MET SPINAZIE, ROOM & CITROEN: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ MEDITERRANE COURGETTES MET OLIJVEN & FETA: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ MILD GEKRUIDE PARELGORT MET TOMAAT, PREI & PIJNBOOMPITTEN: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Mapo Tofu met Champignons, Chili & Lente-ui: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Miso-aubergines met tofu: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Noedelsoep met shiitake en paksoi: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ OKRA-CURRY MET KIKKERERWTEN & AMANDELEN: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ ORZO MET TOMAAT-LAURIERSAUS: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ One-Pan Pasta Sauce with Aubergines, Tomatoes, Capers & Pine Nuts: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Orzo met edamame en geroosterde aubergine: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
🔄 Processing batch 6/9 (13 recipes)
2026-06-14 15:14:50,999 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:51,000 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:51,125 - automatic_tagger - INFO - 🔍 Analyzing recipe: PADDENSTOELEN IN RODE WIJN MET KAASSCONES
2026-06-14 15:14:51,126 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:51,225 - automatic_tagger - INFO - 🔍 Analyzing recipe: PADDENSTOELEN MET PAKSOI & ASPERGES
2026-06-14 15:14:51,226 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:51,329 - automatic_tagger - INFO - 🔍 Analyzing recipe: PANZANELLA VAN
WATERKERS & PASTINAAK
2026-06-14 15:14:51,329 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:51,425 - automatic_tagger - INFO - 🔍 Analyzing recipe: PANZANELLA VAN TOMAAT, PAPRIKA & ARTISJOK
2026-06-14 15:14:51,426 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:51,552 - automatic_tagger - INFO - 🔍 Analyzing recipe: PARELGORT MET POMPOEN & GRANAATAPPEL
2026-06-14 15:14:51,552 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:51,649 - automatic_tagger - INFO - 🔍 Analyzing recipe: PASTA MET PADDENSTOELEN EN KNOFLOOK
2026-06-14 15:14:51,649 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:51,754 - automatic_tagger - INFO - 🔍 Analyzing recipe: PERZISCHE PADDENSTOELEN MET GRANAATAPPEL & WALNOTEN
2026-06-14 15:14:51,754 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:51,863 - automatic_tagger - INFO - 🔍 Analyzing recipe: PITTIGE HARISSA-SPRUITJES & BROCCOLI MET HALLOUMI & SPINAZIE
2026-06-14 15:14:51,864 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:51,963 - automatic_tagger - INFO - 🔍 Analyzing recipe: PITTIGE WORTEL-BONENCURRY
2026-06-14 15:14:51,963 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:52,083 - automatic_tagger - INFO - 🔍 Analyzing recipe: POLENTA MET ZOETE AARDAPPEL & PADDENSTOELEN
2026-06-14 15:14:52,145 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:52,145 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:52,146 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:52,146 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:52,146 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:52,241 - automatic_tagger - INFO - 🔍 Analyzing recipe: POMPOEN MET UIEN, PREI & FETA
2026-06-14 15:14:52,243 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:52,244 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:52,244 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:52,244 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:52,244 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:52,244 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:52,244 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:52,245 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:52,245 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:52,247 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:52,247 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:52,247 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:52,247 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:52,247 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:52,247 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:52,247 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:52,247 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:52,248 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:52,248 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:52,248 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:52,248 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:52,248 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:52,248 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:52,248 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:52,248 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:52,248 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:52,248 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:52,248 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:52,248 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:52,248 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:52,248 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:52,248 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:52,249 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:52,249 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:52,249 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:52,249 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:52,249 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:52,345 - automatic_tagger - INFO - 🔍 Analyzing recipe: POMPOEN-BLAUWEKAASTAARTJES MET VIJGEN & PECANNOTEN
2026-06-14 15:14:52,347 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:52,449 - automatic_tagger - INFO - 🔍 Analyzing recipe: POMPOENCURRY MET SPINAZIE
2026-06-14 15:14:52,499 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:52,500 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:52,500 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:52,500 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:52,528 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:52,529 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:52,529 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:52,529 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:52,554 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:52,555 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:52,555 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:52,555 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
Error: ❌ PADDENSTOELEN IN RODE WIJN MET KAASSCONES: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ PADDENSTOELEN MET PAKSOI & ASPERGES: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ PANZANELLA VAN
WATERKERS & PASTINAAK: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ PANZANELLA VAN TOMAAT, PAPRIKA & ARTISJOK: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ PARELGORT MET POMPOEN & GRANAATAPPEL: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ PASTA MET PADDENSTOELEN EN KNOFLOOK: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ PERZISCHE PADDENSTOELEN MET GRANAATAPPEL & WALNOTEN: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ PITTIGE HARISSA-SPRUITJES & BROCCOLI MET HALLOUMI & SPINAZIE: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ PITTIGE WORTEL-BONENCURRY: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ POLENTA MET ZOETE AARDAPPEL & PADDENSTOELEN: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ POMPOEN MET UIEN, PREI & FETA: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ POMPOEN-BLAUWEKAASTAARTJES MET VIJGEN & PECANNOTEN: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ POMPOENCURRY MET SPINAZIE: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
🔄 Processing batch 7/9 (13 recipes)
2026-06-14 15:14:52,555 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:52,556 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:52,687 - automatic_tagger - INFO - 🔍 Analyzing recipe: PORTOBELLOSTEAKS MET PUREE VAN LIMABONEN
2026-06-14 15:14:52,688 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:52,787 - automatic_tagger - INFO - 🔍 Analyzing recipe: PREI-LINZENGRATIN MET EEN KNAPPERIG FETALAAGJE
2026-06-14 15:14:52,788 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:52,879 - automatic_tagger - INFO - 🔍 Analyzing recipe: PREI-ORZOTTO MET ASPERGES, HAZELNOTEN & RUCOLA
2026-06-14 15:14:52,879 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:52,975 - automatic_tagger - INFO - 🔍 Analyzing recipe: PUNTPAPRIKA'S MET
ARTISJOK, OLIJVEN & FETA
2026-06-14 15:14:52,976 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:53,087 - automatic_tagger - INFO - 🔍 Analyzing recipe: Pappardelle with Rose Harissa, Black Olives, and Capers
2026-06-14 15:14:53,089 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:53,196 - automatic_tagger - INFO - 🔍 Analyzing recipe: Pasta met burrata, tomaat en paprika
2026-06-14 15:14:53,197 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:53,368 - automatic_tagger - INFO - 🔍 Analyzing recipe: Pita vegan shoarma met srirachamayo
2026-06-14 15:14:53,369 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:53,505 - automatic_tagger - INFO - 🔍 Analyzing recipe: Pokébowl met meloen, mango en avocado
2026-06-14 15:14:53,506 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:53,588 - automatic_tagger - INFO - 🔍 Analyzing recipe: RATATOUILLE UIT DE OVEN
2026-06-14 15:14:53,588 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:53,700 - automatic_tagger - INFO - 🔍 Analyzing recipe: REGENBOOGTABOULEH MET AVOCADO, RADIJS & GRANAATAPPEL
2026-06-14 15:14:53,768 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:53,768 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:53,768 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:53,768 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:53,769 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:53,854 - automatic_tagger - INFO - 🔍 Analyzing recipe: ROOSJESTAART MET PASTINAAK & WORTEL
2026-06-14 15:14:53,855 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:53,856 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:53,856 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:53,856 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:53,856 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:53,856 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:53,856 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:53,857 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:53,858 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:53,858 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:53,858 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:53,858 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:53,858 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:53,858 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:53,858 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:53,858 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:53,858 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:53,858 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:53,858 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:53,858 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:53,858 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:53,858 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:53,858 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:53,858 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:53,858 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:53,858 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:53,858 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:53,858 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:53,858 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:53,859 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:53,859 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:53,859 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:53,859 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:53,958 - automatic_tagger - INFO - 🔍 Analyzing recipe: Rijkgevulde vegan pastasalade
2026-06-14 15:14:53,958 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:54,050 - automatic_tagger - INFO - 🔍 Analyzing recipe: Romige gevulde pompoen met geitenkaas en walnoten
2026-06-14 15:14:54,055 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:54,056 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:54,056 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:54,056 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:54,108 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:54,109 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:54,110 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:54,110 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:54,135 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:54,135 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:54,135 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:54,135 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:54,142 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:54,143 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:54,143 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:54,143 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
Error: ❌ PORTOBELLOSTEAKS MET PUREE VAN LIMABONEN: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ PREI-LINZENGRATIN MET EEN KNAPPERIG FETALAAGJE: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ PREI-ORZOTTO MET ASPERGES, HAZELNOTEN & RUCOLA: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ PUNTPAPRIKA'S MET
ARTISJOK, OLIJVEN & FETA: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Pappardelle with Rose Harissa, Black Olives, and Capers: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Pasta met burrata, tomaat en paprika: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Pita vegan shoarma met srirachamayo: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Pokébowl met meloen, mango en avocado: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ RATATOUILLE UIT DE OVEN: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ REGENBOOGTABOULEH MET AVOCADO, RADIJS & GRANAATAPPEL: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ ROOSJESTAART MET PASTINAAK & WORTEL: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Rijkgevulde vegan pastasalade: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Romige gevulde pompoen met geitenkaas en walnoten: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
🔄 Processing batch 8/9 (13 recipes)
2026-06-14 15:14:54,144 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:54,144 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:54,230 - automatic_tagger - INFO - 🔍 Analyzing recipe: Roze aardappelsalade met rodekool & granaatappel
2026-06-14 15:14:54,231 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:54,330 - automatic_tagger - INFO - 🔍 Analyzing recipe: SALADE VAN RODEKOOL MET APPEL, ROZIJNEN &
KNOFLOOKCROUTONS
2026-06-14 15:14:54,330 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:54,429 - automatic_tagger - INFO - 🔍 Analyzing recipe: SALADE VAN WITLOF, RADIJS, ASPERGES & SINAASAPPEL
2026-06-14 15:14:54,429 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:54,529 - automatic_tagger - INFO - 🔍 Analyzing recipe: SNELLE KAAS-SJALOTTENTAART
2026-06-14 15:14:54,529 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:54,629 - automatic_tagger - INFO - 🔍 Analyzing recipe: SNELLE THAISE OKRA MET SHIITAKE & KOKOSMELK
2026-06-14 15:14:54,629 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:54,750 - automatic_tagger - INFO - 🔍 Analyzing recipe: Salade van knapperige boerenkool, bulgur & granaatappel
2026-06-14 15:14:54,750 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:54,828 - automatic_tagger - INFO - 🔍 Analyzing recipe: Shakshuka uit de oven: Paprika, tomaten & eieren
2026-06-14 15:14:54,828 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:54,928 - automatic_tagger - INFO - 🔍 Analyzing recipe: Sinaasappel-limaboon-artisjok-olijfsalade met een retro tintje
2026-06-14 15:14:54,929 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:55,071 - automatic_tagger - INFO - 🔍 Analyzing recipe: TAMARINDE-SPRUITJES MET PINDA'S & SJALOTJES
2026-06-14 15:14:55,071 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:55,177 - automatic_tagger - INFO - 🔍 Analyzing recipe: TARTE TATIN
MET WORTEL
2026-06-14 15:14:55,242 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:55,244 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:55,244 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:55,244 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:55,244 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:55,340 - automatic_tagger - INFO - 🔍 Analyzing recipe: THAISE CURRY
MET ZOETE AARDAPPEL
2026-06-14 15:14:55,342 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:55,342 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:55,342 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:55,342 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:55,343 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:55,343 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:55,343 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:55,343 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:55,343 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:55,346 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:55,346 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:55,346 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:55,346 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:55,346 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:55,346 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:55,347 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:55,347 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:55,347 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:55,347 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:55,347 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:55,347 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:55,347 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:55,347 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:55,347 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:55,347 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:55,348 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:55,348 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:55,348 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:55,348 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:55,348 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:55,348 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:55,348 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:55,348 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:55,348 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:55,348 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:55,348 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:55,348 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:55,438 - automatic_tagger - INFO - 🔍 Analyzing recipe: Tikka masala met aubergine en kikkererwten
2026-06-14 15:14:55,438 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:55,533 - automatic_tagger - INFO - 🔍 Analyzing recipe: Tikka masala met vegetarische kipstukjes en bloemkoolrijst
2026-06-14 15:14:55,584 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:55,585 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:55,585 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:55,585 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:55,587 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:55,587 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:55,587 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:55,587 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:55,628 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:55,628 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:55,628 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:55,629 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
Error: ❌ Roze aardappelsalade met rodekool & granaatappel: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ SALADE VAN RODEKOOL MET APPEL, ROZIJNEN &
KNOFLOOKCROUTONS: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ SALADE VAN WITLOF, RADIJS, ASPERGES & SINAASAPPEL: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ SNELLE KAAS-SJALOTTENTAART: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ SNELLE THAISE OKRA MET SHIITAKE & KOKOSMELK: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Salade van knapperige boerenkool, bulgur & granaatappel: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Shakshuka uit de oven: Paprika, tomaten & eieren: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Sinaasappel-limaboon-artisjok-olijfsalade met een retro tintje: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ TAMARINDE-SPRUITJES MET PINDA'S & SJALOTJES: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ TARTE TATIN
MET WORTEL: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ THAISE CURRY
MET ZOETE AARDAPPEL: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Tikka masala met aubergine en kikkererwten: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Tikka masala met vegetarische kipstukjes en bloemkoolrijst: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
🔄 Processing batch 9/9 (13 recipes)
2026-06-14 15:14:55,629 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:55,629 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:55,731 - automatic_tagger - INFO - 🔍 Analyzing recipe: Tortilla's met zoete aardappel, avocado & pulled vega stukjes
2026-06-14 15:14:55,732 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:55,814 - automatic_tagger - INFO - 🔍 Analyzing recipe: Traybake met knolselderij, winterpeen, pesto en witte kaas
2026-06-14 15:14:55,815 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:55,895 - automatic_tagger - INFO - 🔍 Analyzing recipe: Tuna-meltwraps met spitskool en appel
2026-06-14 15:14:55,896 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:56,004 - automatic_tagger - INFO - 🔍 Analyzing recipe: UIEN MET POMPOEN, GEITENKAAS & WALNOOT
2026-06-14 15:14:56,005 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:56,133 - automatic_tagger - INFO - 🔍 Analyzing recipe: VENKEL & BULGUR MET MOZZARELLA & VIJGEN
2026-06-14 15:14:56,133 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:56,263 - automatic_tagger - INFO - 🔍 Analyzing recipe: VOORRAADKASTGERECHT: PASTA MET PAPRIKA, CANNELLINIBONEN & BLAUWE KAAS
2026-06-14 15:14:56,264 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:56,371 - automatic_tagger - INFO - 🔍 Analyzing recipe: WARME WINTERSALADE MET AARDAPPEL, KNOLSELDERIJ & TRUFFEL
2026-06-14 15:14:56,372 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:56,474 - automatic_tagger - INFO - 🔍 Analyzing recipe: WORTEL-BOERENKOOLFATTOUSH: PITABROOD MET WORTEL, BOERENKOOL & DADELS
2026-06-14 15:14:56,475 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:56,564 - automatic_tagger - INFO - 🔍 Analyzing recipe: WORTELGROENTESALADE MET HONING & BLAUWE KAAS
2026-06-14 15:14:56,565 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:56,677 - automatic_tagger - INFO - 🔍 Analyzing recipe: ZOETE AARDAPPEL IN EEN PINDA-TOMATENSAUS
2026-06-14 15:14:56,735 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:56,736 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:56,736 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:56,736 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:56,736 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:56,802 - automatic_tagger - INFO - 🔍 Analyzing recipe: ZOETE AARDAPPEL MET MOZZARELLA & UIEN
2026-06-14 15:14:56,804 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:56,804 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:56,804 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:56,804 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:56,804 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:56,804 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:56,805 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:56,805 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:56,806 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:56,806 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:56,806 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:56,806 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:56,806 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:56,807 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:56,807 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:56,807 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:56,807 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:56,807 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:56,807 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:56,807 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:56,807 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:56,807 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:56,807 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:56,807 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:56,807 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:56,807 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:56,807 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:56,807 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:56,807 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:56,807 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:56,808 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:56,808 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:56,808 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:56,990 - automatic_tagger - INFO - 🔍 Analyzing recipe: ZOETE-AARDAPPELTAJINE MET PASTINAAK & DADELS
2026-06-14 15:14:56,990 - mealie_client - INFO - MealieClient initialized in API mode
2026-06-14 15:14:57,132 - automatic_tagger - INFO - 🔍 Analyzing recipe: ZWARTEBONEN-AVOCADO-PINDABOWLS MET EEN VLEUGJE LIMOEN
2026-06-14 15:14:57,134 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:57,135 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:57,135 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:57,135 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:57,190 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:57,190 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:57,190 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:57,190 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:57,198 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:57,199 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:57,199 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:57,199 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
2026-06-14 15:14:57,231 - batch_llm_processor - ERROR - ❌ OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:57,231 - automatic_tagger - CRITICAL - ❌ CRITICAL: Structured prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}
2026-06-14 15:14:57,231 - automatic_tagger - CRITICAL - ❌ Response preview: 'No response...'
2026-06-14 15:14:57,232 - automatic_tagger - CRITICAL - ❌ Structured outputs should prevent JSON parsing errors - check LM Studio configuration
Error: ❌ Tortilla's met zoete aardappel, avocado & pulled vega stukjes: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Traybake met knolselderij, winterpeen, pesto en witte kaas: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ Tuna-meltwraps met spitskool en appel: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ UIEN MET POMPOEN, GEITENKAAS & WALNOOT: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ VENKEL & BULGUR MET MOZZARELLA & VIJGEN: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ VOORRAADKASTGERECHT: PASTA MET PAPRIKA, CANNELLINIBONEN & BLAUWE KAAS: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ WARME WINTERSALADE MET AARDAPPEL, KNOLSELDERIJ & TRUFFEL: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ WORTEL-BOERENKOOLFATTOUSH: PITABROOD MET WORTEL, BOERENKOOL & DADELS: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ WORTELGROENTESALADE MET HONING & BLAUWE KAAS: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ ZOETE AARDAPPEL IN EEN PINDA-TOMATENSAUS: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ ZOETE AARDAPPEL MET MOZZARELLA & UIEN: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ ZOETE-AARDAPPELTAJINE MET PASTINAAK & DADELS: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Error: ❌ ZWARTEBONEN-AVOCADO-PINDABOWLS MET EEN VLEUGJE LIMOEN: Prep analysis failed: OpenRouter error 402: {"error":{"message":"Insufficient credits. This account never purchased credits. Make sure your key is on the correct account or org, and if so, purchase more at https://openrouter.ai/settings/credits","code":402}}. Structured outputs should prevent this error.
Progress: 117/117 complete
Completed: 117/117 items in 18.2s
2026-06-14 15:14:57,232 - __main__ - INFO - Bulk tagging complete: 0 successful, 117 failed, 117 total
🏷️ BULK TAGGING COMPLETE
Successfully tagged: 0 recipes
Failed to tag: 117 recipes
Total processed: 117 recipes
2026-06-14 15:14:57,330 - __main__ - WARNING - ⚠️ Tagging had issues
⚠️ Tagging had issues
🗃️ Step 4: Database optimization...
🔧 Initializing USearch ANN index with dimension 4096
✅ USearch index initialized for cosine similarity search
✅ USearch index loaded with 117 vectors
2026-06-14 15:14:57,332 - recipe_rag - INFO - ✅ ANN index loaded with 117 recipes
✅ Full-text search index rebuilt
🏥 Step 5: Final health check...
2026-06-14 15:14:57,351 - config - INFO - ============================================================
2026-06-14 15:14:57,352 - config - INFO - 🔍 VALIDATING SYSTEM DEPENDENCIES (WITH HTTP FALLBACKS)...
2026-06-14 15:14:57,352 - config - INFO - ============================================================
2026-06-14 15:14:57,409 - config - INFO - ✅ Mealie connection successful: https://mealie.geevers.net
2026-06-14 15:14:57,560 - config - INFO - ✅ OpenRouter connection successful
2026-06-14 15:14:57,561 - config - INFO - ✅ Using model: openai/gpt-4o-mini
2026-06-14 15:14:57,562 - config - INFO - ============================================================
2026-06-14 15:14:57,562 - config - INFO - ✅ ALL DEPENDENCIES VALIDATED - SYSTEM READY!
2026-06-14 15:14:57,562 - config - INFO - ✅ Mealie: Connected and authenticated
2026-06-14 15:14:57,562 - config - INFO - ✅ OpenRouter: Connected with required model
2026-06-14 15:14:57,562 - config - INFO - ✅ Embeddings: Qwen3-Embedding-8B (OpenRouter API)
2026-06-14 15:14:57,562 - config - INFO - ✅ SYSTEM READY FOR PRODUCTION
2026-06-14 15:14:57,562 - config - INFO - ============================================================
✅ System health check passed
==================================================
⚠️ Maintenance completed with some issues
------------------------------------------------------------
❌ Failed with exit code: 1