Archon icon indicating copy to clipboard operation
Archon copied to clipboard

Saving Projects, but "Unable to verify Project Schema"

Open dustywill opened this issue 4 months ago • 4 comments

I am at my wit's end. I have tried installing this several different times, I did see the issues about the wrong API key from Supabase being used. i convinced myself that was me, it wasn't. I even built a quick test project to make sure I could reach the database and save and delete to it. I can. I promise I am not using the public key.

When I create a Project, it saves to the databse, so I know my supabase connection is working correctly.

I cannot successfully save my GOOGLE_API_KEY setting or my RAG settings. In both cases I get Failed to save.

When I load the settings file, I get "Failed to load settings" and "Failed to load credentials" notifications. I have attached my logs. I know this must be something simple, but I have iinstaller on two different machines and at 5 times. Any help would be appreciated.

_Archon-Server_logs.txt

dustywill avatar Aug 18 '25 15:08 dustywill

@dustywill - I took a look at your logs but I only see logs from creating a project, nothing with updating settings. Could you try updating the settings and then share what the logs show for that part only?

coleam00 avatar Aug 19 '25 11:08 coleam00

@coleam00 I have attached the log from the conole as well as the Docker logs. Thanks for any help you can provide.

_Archon-Server_logs (1).txt

. console.log

dustywill avatar Aug 19 '25 12:08 dustywill

@coleam00 I hate to be a pest, but have you had a chance to review these?

dustywill avatar Aug 22 '25 13:08 dustywill

@dustywill sorry for the delay here, adding this to me todo

Wirasm avatar Sep 04 '25 10:09 Wirasm

Same problem here with using my local supabase install on another server.

This is the error on UI:

Image

Logs show nothing with errors:

UI Logs

^Croot@archon:~/archondocker logs -f archon-ui

> [email protected] dev
> npx vite


  VITE v5.4.19  ready in 339 ms

  ➜  Local:   http://localhost:3737/
  ➜  Network: http://172.18.0.4:3737/
🔄 [VITE PROXY] Forwarding: GET /api/health to http://archon-server:8181/api/health
🔄 [VITE PROXY] Forwarding: GET /api/health to http://archon-server:8181/api/health
🔄 [VITE PROXY] Forwarding: GET /api/health to http://archon-server:8181/api/health
🔄 [VITE PROXY] Forwarding: GET /api/health to http://archon-server:8181/api/health
🔄 [VITE PROXY] Forwarding: GET /api/health to http://archon-server:8181/api/health
🔄 [VITE PROXY] Forwarding: GET /api/health to http://archon-server:8181/api/health
🔄 [VITE PROXY] Forwarding: GET /api/health to http://archon-server:8181/api/health
🔄 [VITE PROXY] Forwarding: GET /api/health to http://archon-server:8181/api/health
🔄 [VITE PROXY] Forwarding: GET /api/health to http://archon-server:8181/api/health
🔄 [VITE PROXY] Forwarding: GET /api/health to http://archon-server:8181/api/health
🔄 [VITE PROXY] Forwarding: GET /api/health to http://archon-server:8181/api/health
🔄 [VITE PROXY] Forwarding: GET /api/health to http://archon-server:8181/api/health
🔄 [VITE PROXY] Forwarding: GET /api/health to http://archon-server:8181/api/health

Server Logs

root@archon:~/archon# docker logs -f archon-server
INFO:     Will watch for changes in these directories: ['/app']
INFO:     Uvicorn running on http://0.0.0.0:8181 (Press CTRL+C to quit)
INFO:     Started reloader process [1] using WatchFiles
INFO:     Started server process [8]
INFO:     Waiting for application startup.
2025-09-09 14:50:20 | root | INFO | 📋 Logging configured (Logfire: disabled)
2025-09-09 14:50:20 | src.server.main | INFO | ✅ Credentials initialized
2025-09-09 14:50:20 | api | INFO | 🔥 Logfire initialized for backend
2025-09-09 14:50:20 | src.server.services.crawler_manager | INFO | === CRAWLER INITIALIZATION START ===
2025-09-09 14:50:20 | src.server.services.crawler_manager | INFO | === CRAWLER INITIALIZATION SUCCESS ===
2025-09-09 14:50:20 | src.server.services.crawler_manager | INFO | Crawler instance: <crawl4ai.async_webcrawler.AsyncWebCrawler object at 0x7be2202451f0>
2025-09-09 14:50:20 | src.server.services.crawler_manager | INFO | Initialized: True
2025-09-09 14:50:20 | api | INFO | ✅ Using polling for real-time updates
2025-09-09 14:50:20 | src.server.services.prompt_service | INFO | Loading prompts from database...
2025-09-09 14:50:20 | src.server.services.prompt_service | INFO | Loaded 3 prompts into memory
2025-09-09 14:50:20 | api | INFO | ✅ Prompt service initialized
2025-09-09 14:50:20 | src.server.services.background_task_manager | INFO | BackgroundTaskManager initialized with max 10 concurrent tasks, 1h metadata retention
2025-09-09 14:50:20 | src.server.services.background_task_manager | INFO | BackgroundTaskManager uses pure async - main loop setting not required
2025-09-09 14:50:20 | api | INFO | ✅ Main event loop set for background tasks
2025-09-09 14:50:20 | api | INFO | 🎉 Archon backend started successfully!
INFO:     Application startup complete.

agents log

^Croot@archon:~/archon# docker logs -f archon-agents
INFO:     Started server process [7]
INFO:     Waiting for application startup.
INFO:src.agents.server:Starting Agents service...
WARNING:src.agents.server:Failed to fetch credentials (attempt 1/30): All connection attempts failed
INFO:src.agents.server:Retrying in 10 seconds...
WARNING:src.agents.server:Failed to fetch credentials (attempt 2/30): All connection attempts failed
INFO:src.agents.server:Retrying in 10 seconds...
WARNING:src.agents.server:Failed to fetch credentials (attempt 3/30): All connection attempts failed
INFO:src.agents.server:Retrying in 10 seconds...
INFO:httpx:HTTP Request: GET http://archon-server:8181/internal/credentials/agents "HTTP/1.1 200 OK"
INFO:src.agents.server:Set credential: OPENAI_MODEL
INFO:src.agents.server:Set credential: DOCUMENT_AGENT_MODEL
INFO:src.agents.server:Set credential: RAG_AGENT_MODEL
INFO:src.agents.server:Set credential: TASK_AGENT_MODEL
INFO:src.agents.server:Set credential: AGENT_RATE_LIMIT_ENABLED
INFO:src.agents.server:Set credential: AGENT_MAX_RETRIES
INFO:src.agents.server:Set credential: MCP_SERVICE_URL
INFO:src.agents.server:Set credential: LOG_LEVEL
INFO:src.agents.server:Successfully fetched 8 credentials from server
ERROR:src.agents.server:Failed to initialize document agent: Unknown keyword arguments: `result_type`
INFO:src.agents.server:Initialized rag agent with model: openai:gpt-4o-mini
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8052 (Press CTRL+C to quit)
INFO:     127.0.0.1:39070 - "GET /health HTTP/1.1" 200 OK
INFO:     127.0.0.1:39340 - "GET /health HTTP/1.1" 200 OK
INFO:     127.0.0.1:51334 - "GET /health HTTP/1.1" 200 OK
INFO:     127.0.0.1:46516 - "GET /health HTTP/1.1" 200 OK

MCP Logs

^[[A^Croot@archon:~/archon# docker logs -f archon-mcp
2025-09-09 14:50:25,972 - __main__ - INFO - 🏗️ MCP SERVER INITIALIZATION:
2025-09-09 14:50:25,973 - __main__ - INFO -    Server Name: archon-mcp-server
2025-09-09 14:50:25,973 - __main__ - INFO -    Description: MCP server using HTTP calls
2025-09-09 14:50:25,992 - __main__ - INFO - ✓ FastMCP server instance created successfully
2025-09-09 14:50:25,997 - __main__ - INFO - 🔧 Registering MCP tool modules...
2025-09-09 14:50:26,014 - src.mcp_server.modules.rag_module - INFO - ✓ RAG tools registered (HTTP-based version)
2025-09-09 14:50:26,015 - __main__ - INFO - ✓ RAG module registered (HTTP-based)
2025-09-09 14:50:26,069 - __main__ - INFO - ✓ Project tools registered
2025-09-09 14:50:26,099 - __main__ - INFO - ✓ Task tools registered
2025-09-09 14:50:26,131 - __main__ - INFO - ✓ Document tools registered
2025-09-09 14:50:26,143 - __main__ - INFO - ✓ Version tools registered
2025-09-09 14:50:26,147 - __main__ - INFO - ✓ Feature tools registered
2025-09-09 14:50:26,147 - __main__ - INFO - 📦 Total modules registered: 6
2025-09-09 14:50:26,158 - root - INFO - 📝 Logfire configured but disabled (send_to_logfire=False)
2025-09-09 14:50:26 | root | INFO | 📋 Logging configured (Logfire: disabled)
2025-09-09 14:50:26 | __main__ | INFO | 🚀 Starting Archon MCP Server
2025-09-09 14:50:26 | __main__ | INFO |    Mode: Streamable HTTP
2025-09-09 14:50:26 | __main__ | INFO |    URL: http://0.0.0.0:8051/mcp
2025-09-09 14:50:26 | mcp | INFO | 🔥 Logfire initialized for MCP server
2025-09-09 14:50:26 | mcp | INFO | 🌟 Starting MCP server - host=0.0.0.0, port=8051
2025-09-09 14:50:26 | asyncio | DEBUG | Using selector: EpollSelector
INFO:     Started server process [1]
INFO:     Waiting for application startup.
2025-09-09 14:50:26 | mcp.server.streamable_http_manager | INFO | StreamableHTTP session manager started
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8051 (Press CTRL+C to quit)

Can not save creds for openai but CAN create a project and delete. This is very odd behavior.

On branch main:

^Croot@archon:~/archon# git status
On branch main
Your branch is up to date with 'origin/main'.

I made sure to use the secret key not anon from the supabase setup which got rid of permission denied errors. Now UI has this issue.

Rebuilt up down several times with or without agents profile. Need to know what else this could be and how to get better out put on the errors in the UI.

dkudos avatar Sep 09 '25 15:09 dkudos

Here is DEBUG from a knowledge base crawl. I can not not add the openai key because it is not saving so that error is to be expected. It creates the knowledge base and I can delete without the crawl.

2025-09-09 15:44:51 | src.server.services.projects.task_service | DEBUG | Fetching task counts for all projects in batch
2025-09-09 15:44:51 | src.server.services.projects.task_service | DEBUG | No tasks found
2025-09-09 15:45:13 | src.server.services.crawling.strategies.single_page | INFO | Crawling markdown file: https://ai.pydantic.dev/llms-full.txt
2025-09-09 15:45:13 | aiosqlite | DEBUG | executing <function connect.<locals>.connector at 0x7be21fbb76a0>
2025-09-09 15:45:13 | aiosqlite | DEBUG | operation <function connect.<locals>.connector at 0x7be21fbb76a0> completed
2025-09-09 15:45:13 | aiosqlite | DEBUG | executing functools.partial(<built-in method execute of sqlite3.Connection object at 0x7be21f8856c0>, '\n                CREATE TABLE IF NOT EXISTS crawled_data (\n                    url TEXT PRIMARY KEY,\n                    html TEXT,\n                    cleaned_html TEXT,\n                    markdown TEXT,\n                    extracted_content TEXT,\n                    success BOOLEAN,\n                    media TEXT DEFAULT "{}",\n                    links TEXT DEFAULT "{}",\n                    metadata TEXT DEFAULT "{}",\n                    screenshot TEXT DEFAULT "",\n                    response_headers TEXT DEFAULT "{}",\n                    downloaded_files TEXT DEFAULT "{}"  -- New column added\n                )\n            ', [])
2025-09-09 15:45:13 | aiosqlite | DEBUG | operation functools.partial(<built-in method execute of sqlite3.Connection object at 0x7be21f8856c0>, '\n                CREATE TABLE IF NOT EXISTS crawled_data (\n                    url TEXT PRIMARY KEY,\n                    html TEXT,\n                    cleaned_html TEXT,\n                    markdown TEXT,\n                    extracted_content TEXT,\n                    success BOOLEAN,\n                    media TEXT DEFAULT "{}",\n                    links TEXT DEFAULT "{}",\n                    metadata TEXT DEFAULT "{}",\n                    screenshot TEXT DEFAULT "",\n                    response_headers TEXT DEFAULT "{}",\n                    downloaded_files TEXT DEFAULT "{}"  -- New column added\n                )\n            ', []) completed
2025-09-09 15:45:13 | aiosqlite | DEBUG | executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x7be21f8856c0>)
2025-09-09 15:45:13 | aiosqlite | DEBUG | operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x7be21f8856c0>) completed
2025-09-09 15:45:13 | aiosqlite | DEBUG | executing functools.partial(<built-in method close of sqlite3.Connection object at 0x7be21f8856c0>)
2025-09-09 15:45:13 | aiosqlite | DEBUG | operation functools.partial(<built-in method close of sqlite3.Connection object at 0x7be21f8856c0>) completed
2025-09-09 15:45:13 | aiosqlite | DEBUG | executing <function connect.<locals>.connector at 0x7be21fbb7420>
2025-09-09 15:45:13 | aiosqlite | DEBUG | operation <function connect.<locals>.connector at 0x7be21fbb7420> completed
2025-09-09 15:45:13 | aiosqlite | DEBUG | executing functools.partial(<built-in method execute of sqlite3.Connection object at 0x7be25cef0a90>, "SELECT name FROM sqlite_master WHERE type='table' AND name='crawled_data'", [])
2025-09-09 15:45:13 | aiosqlite | DEBUG | operation functools.partial(<built-in method execute of sqlite3.Connection object at 0x7be25cef0a90>, "SELECT name FROM sqlite_master WHERE type='table' AND name='crawled_data'", []) completed
2025-09-09 15:45:13 | aiosqlite | DEBUG | executing functools.partial(<built-in method fetchone of sqlite3.Cursor object at 0x7be21faa8fc0>)
2025-09-09 15:45:13 | aiosqlite | DEBUG | operation functools.partial(<built-in method fetchone of sqlite3.Cursor object at 0x7be21faa8fc0>) completed
2025-09-09 15:45:13 | aiosqlite | DEBUG | executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x7be21faa8fc0>)
2025-09-09 15:45:13 | aiosqlite | DEBUG | operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x7be21faa8fc0>) completed
2025-09-09 15:45:13 | aiosqlite | DEBUG | executing functools.partial(<built-in method close of sqlite3.Connection object at 0x7be25cef0a90>)
2025-09-09 15:45:13 | aiosqlite | DEBUG | operation functools.partial(<built-in method close of sqlite3.Connection object at 0x7be25cef0a90>) completed
2025-09-09 15:45:13 | aiosqlite | DEBUG | executing <function connect.<locals>.connector at 0x7be21fbb7380>
2025-09-09 15:45:13 | aiosqlite | DEBUG | operation <function connect.<locals>.connector at 0x7be21fbb7380> completed
2025-09-09 15:45:13 | aiosqlite | DEBUG | executing functools.partial(<built-in method execute of sqlite3.Connection object at 0x7be21f8856c0>, 'PRAGMA table_info(crawled_data)', [])
2025-09-09 15:45:13 | aiosqlite | DEBUG | operation functools.partial(<built-in method execute of sqlite3.Connection object at 0x7be21f8856c0>, 'PRAGMA table_info(crawled_data)', []) completed
2025-09-09 15:45:13 | aiosqlite | DEBUG | executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x7be21fc072c0>)
2025-09-09 15:45:13 | aiosqlite | DEBUG | operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x7be21fc072c0>) completed
2025-09-09 15:45:13 | aiosqlite | DEBUG | executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x7be21f8856c0>)
2025-09-09 15:45:13 | aiosqlite | DEBUG | operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x7be21f8856c0>) completed
2025-09-09 15:45:13 | aiosqlite | DEBUG | executing functools.partial(<built-in method close of sqlite3.Connection object at 0x7be21f8856c0>)
2025-09-09 15:45:13 | aiosqlite | DEBUG | operation functools.partial(<built-in method close of sqlite3.Connection object at 0x7be21f8856c0>) completed
15:45:13.239 Getting progress for operation | operation_id=d5791cf6-253a-4213-b8dc-79c2682e347b
15:45:13.241 Progress retrieved | operation_id=d5791cf6-253a-4213-b8dc-79c2682e347b | status=crawling | progress=10.0
[COMPLETE] ● Database backup created at: /root/.crawl4ai/crawl4ai.db.backup_20250909_154513
[INIT].... → Starting database migration...
2025-09-09 15:45:14 | aiosqlite | DEBUG | executing <function connect.<locals>.connector at 0x7be21f8dfba0>
2025-09-09 15:45:14 | aiosqlite | DEBUG | operation <function connect.<locals>.connector at 0x7be21f8dfba0> completed
2025-09-09 15:45:14 | aiosqlite | DEBUG | executing functools.partial(<built-in method execute of sqlite3.Connection object at 0x7be21f884e50>, 'SELECT url, html, cleaned_html, markdown, \n                       extracted_content, screenshot FROM crawled_data', [])
2025-09-09 15:45:14 | aiosqlite | DEBUG | operation functools.partial(<built-in method execute of sqlite3.Connection object at 0x7be21f884e50>, 'SELECT url, html, cleaned_html, markdown, \n                       extracted_content, screenshot FROM crawled_data', []) completed
2025-09-09 15:45:14 | aiosqlite | DEBUG | executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x7be21fa6a2c0>)
2025-09-09 15:45:14 | aiosqlite | DEBUG | operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x7be21fa6a2c0>) completed
2025-09-09 15:45:14 | aiosqlite | DEBUG | executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x7be21fa6a2c0>)
2025-09-09 15:45:14 | aiosqlite | DEBUG | operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x7be21fa6a2c0>) completed
2025-09-09 15:45:14 | aiosqlite | DEBUG | executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x7be21f884e50>)
2025-09-09 15:45:14 | aiosqlite | DEBUG | operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x7be21f884e50>) completed
[COMPLETE] ● Migration completed. 0 records processed.
2025-09-09 15:45:14 | aiosqlite | DEBUG | executing functools.partial(<built-in method close of sqlite3.Connection object at 0x7be21f884e50>)
2025-09-09 15:45:14 | aiosqlite | DEBUG | operation functools.partial(<built-in method close of sqlite3.Connection object at 0x7be21f884e50>) completed
2025-09-09 15:45:14 | aiosqlite | DEBUG | executing <function connect.<locals>.connector at 0x7be21fbb7420>
2025-09-09 15:45:14 | aiosqlite | DEBUG | operation <function connect.<locals>.connector at 0x7be21fbb7420> completed
2025-09-09 15:45:14 | aiosqlite | DEBUG | executing functools.partial(<built-in method execute of sqlite3.Connection object at 0x7be21f884040>, 'PRAGMA journal_mode = WAL', [])
2025-09-09 15:45:14 | aiosqlite | DEBUG | operation functools.partial(<built-in method execute of sqlite3.Connection object at 0x7be21f884040>, 'PRAGMA journal_mode = WAL', []) completed
2025-09-09 15:45:14 | aiosqlite | DEBUG | executing functools.partial(<built-in method execute of sqlite3.Connection object at 0x7be21f884040>, 'PRAGMA busy_timeout = 5000', [])
2025-09-09 15:45:14 | aiosqlite | DEBUG | operation functools.partial(<built-in method execute of sqlite3.Connection object at 0x7be21f884040>, 'PRAGMA busy_timeout = 5000', []) completed
2025-09-09 15:45:14 | aiosqlite | DEBUG | executing functools.partial(<built-in method execute of sqlite3.Connection object at 0x7be21f884040>, 'PRAGMA table_info(crawled_data)', [])
2025-09-09 15:45:14 | aiosqlite | DEBUG | operation functools.partial(<built-in method execute of sqlite3.Connection object at 0x7be21f884040>, 'PRAGMA table_info(crawled_data)', []) completed
2025-09-09 15:45:14 | aiosqlite | DEBUG | executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x7be21fa6a2c0>)
2025-09-09 15:45:14 | aiosqlite | DEBUG | operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x7be21fa6a2c0>) completed
2025-09-09 15:45:14 | aiosqlite | DEBUG | executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x7be21fa6a2c0>)
2025-09-09 15:45:14 | aiosqlite | DEBUG | operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x7be21fa6a2c0>) completed
2025-09-09 15:45:14 | aiosqlite | DEBUG | executing functools.partial(<built-in method execute of sqlite3.Connection object at 0x7be21f884040>, 'SELECT * FROM crawled_data WHERE url = ?', ('https://ai.pydantic.dev/llms-full.txt',))
2025-09-09 15:45:14 | aiosqlite | DEBUG | operation functools.partial(<built-in method execute of sqlite3.Connection object at 0x7be21f884040>, 'SELECT * FROM crawled_data WHERE url = ?', ('https://ai.pydantic.dev/llms-full.txt',)) completed
2025-09-09 15:45:14 | aiosqlite | DEBUG | executing functools.partial(<built-in method fetchone of sqlite3.Cursor object at 0x7be21f898640>)
2025-09-09 15:45:14 | aiosqlite | DEBUG | operation functools.partial(<built-in method fetchone of sqlite3.Cursor object at 0x7be21f898640>) completed
2025-09-09 15:45:14 | aiosqlite | DEBUG | executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x7be21f898640>)
2025-09-09 15:45:14 | aiosqlite | DEBUG | operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x7be21f898640>) completed
2025-09-09 15:45:14 | aiosqlite | DEBUG | executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x7be21f884040>)
2025-09-09 15:45:14 | aiosqlite | DEBUG | operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x7be21f884040>) completed
2025-09-09 15:45:14 | aiosqlite | DEBUG | executing functools.partial(<built-in method close of sqlite3.Connection object at 0x7be21f884040>)
2025-09-09 15:45:14 | aiosqlite | DEBUG | operation functools.partial(<built-in method close of sqlite3.Connection object at 0x7be21f884040>) completed
15:45:14.285 Getting progress for operation | operation_id=d5791cf6-253a-4213-b8dc-79c2682e347b
15:45:15.329 Getting progress for operation | operation_id=d5791cf6-253a-4213-b8dc-79c2682e347b
15:45:16.378 Getting progress for operation | operation_id=d5791cf6-253a-4213-b8dc-79c2682e347b
[FETCH]... ↓ https://ai.pydantic.dev/llms-full.txt                                                                | ✓ | ⏱: 2.61s
[SCRAPE].. ◆ https://ai.pydantic.dev/llms-full.txt                                                                | ✓ | ⏱: 0.16s
[COMPLETE] ● https://ai.pydantic.dev/llms-full.txt                                                                | ✓ | ⏱: 3.84s
2025-09-09 15:45:17 | aiosqlite | DEBUG | executing <function connect.<locals>.connector at 0x7be21f881bc0>
2025-09-09 15:45:17 | aiosqlite | DEBUG | operation <function connect.<locals>.connector at 0x7be21f881bc0> completed
2025-09-09 15:45:17 | aiosqlite | DEBUG | executing functools.partial(<built-in method execute of sqlite3.Connection object at 0x7be21f8848b0>, 'PRAGMA journal_mode = WAL', [])
2025-09-09 15:45:17 | aiosqlite | DEBUG | operation functools.partial(<built-in method execute of sqlite3.Connection object at 0x7be21f8848b0>, 'PRAGMA journal_mode = WAL', []) completed
2025-09-09 15:45:17 | aiosqlite | DEBUG | executing functools.partial(<built-in method execute of sqlite3.Connection object at 0x7be21f8848b0>, 'PRAGMA busy_timeout = 5000', [])
2025-09-09 15:45:17 | aiosqlite | DEBUG | operation functools.partial(<built-in method execute of sqlite3.Connection object at 0x7be21f8848b0>, 'PRAGMA busy_timeout = 5000', []) completed
2025-09-09 15:45:17 | aiosqlite | DEBUG | executing functools.partial(<built-in method execute of sqlite3.Connection object at 0x7be21f8848b0>, 'PRAGMA table_info(crawled_data)', [])
2025-09-09 15:45:17 | aiosqlite | DEBUG | operation functools.partial(<built-in method execute of sqlite3.Connection object at 0x7be21f8848b0>, 'PRAGMA table_info(crawled_data)', []) completed
2025-09-09 15:45:17 | aiosqlite | DEBUG | executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x7be21f775240>)
2025-09-09 15:45:17 | aiosqlite | DEBUG | operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x7be21f775240>) completed
2025-09-09 15:45:17 | aiosqlite | DEBUG | executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x7be21f775240>)
2025-09-09 15:45:17 | aiosqlite | DEBUG | operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x7be21f775240>) completed
2025-09-09 15:45:17 | aiosqlite | DEBUG | executing functools.partial(<built-in method execute of sqlite3.Connection object at 0x7be21f8848b0>, '\n                INSERT INTO crawled_data (\n                    url, html, cleaned_html, markdown,\n                    extracted_content, success, media, links, metadata,\n                    screenshot, response_headers, downloaded_files\n                )\n                VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n                ON CONFLICT(url) DO UPDATE SET\n                    html = excluded.html,\n                    cleaned_html = excluded.cleaned_html,\n                    markdown = excluded.markdown,\n                    extracted_content = excluded.extracted_content,\n                    success = excluded.success,\n                    media = excluded.media,\n                    links = excluded.links,\n                    metadata = excluded.metadata,\n                    screenshot = excluded.screenshot,\n                    response_headers = excluded.response_headers,\n                    downloaded_files = excluded.downloaded_files\n            ', ('https://ai.pydantic.dev/llms-full.txt', 'eadd15e61897b2f8', '144d2d77ec08959e', 'd08853a13f8d5ec1', '', True, '{"images": [], "videos": [], "audios": []}', '{"internal": [], "external": []}', '{"title": null, "description": null, "keywords": null, "author": null}', '', '{"cache-control": "public, max-age=0, must-revalidate", "cf-cache-status": "HIT", "cf-ray": "97c7cfc759a5a209-MSP", "content-encoding": "br", "content-type": "text/plain", "date": "Tue, 09 Sep 2025 15:45:15 GMT", "etag": "W/\\"a43c618d9ed14501bd436b05f7789bbe\\"", "nel": "{\\"success_fraction\\":0,\\"report_to\\":\\"cf-nel\\",\\"max_age\\":604800}", "report-to": "{\\"endpoints\\":[{\\"url\\":\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=liyU4MuoZ%2B30V7s6IDsKGnRXxHBPxJV0FqMSIKn7NMQgeUNv%2BDDO6uQHnzSwBfGHsenc1WhFSobPWy3SELNDjVWsOfWdJQcit7mW%2FEWe1M42i0K0RefKztYo%2FU6UcA6Wrw%3D%3D\\"}],\\"group\\":\\"cf-nel\\",\\"max_age\\":604800}", "server": "cloudflare", "server-timing": "cfL4;desc=\\"?proto=TCP&rtt=33335&min_rtt=25024&rtt_var=12483&sent=10&recv=11&lost=0&retrans=3&sent_bytes=7451&recv_bytes=2428&delivery_rate=130938&cwnd=254&unsent_bytes=0&cid=5b2d4e704c8765b4&ts=142&x=0\\"", "vary": "Accept-Encoding"}', '[]'))
2025-09-09 15:45:17 | aiosqlite | DEBUG | operation functools.partial(<built-in method execute of sqlite3.Connection object at 0x7be21f8848b0>, '\n                INSERT INTO crawled_data (\n                    url, html, cleaned_html, markdown,\n                    extracted_content, success, media, links, metadata,\n                    screenshot, response_headers, downloaded_files\n                )\n                VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n                ON CONFLICT(url) DO UPDATE SET\n                    html = excluded.html,\n                    cleaned_html = excluded.cleaned_html,\n                    markdown = excluded.markdown,\n                    extracted_content = excluded.extracted_content,\n                    success = excluded.success,\n                    media = excluded.media,\n                    links = excluded.links,\n                    metadata = excluded.metadata,\n                    screenshot = excluded.screenshot,\n                    response_headers = excluded.response_headers,\n                    downloaded_files = excluded.downloaded_files\n            ', ('https://ai.pydantic.dev/llms-full.txt', 'eadd15e61897b2f8', '144d2d77ec08959e', 'd08853a13f8d5ec1', '', True, '{"images": [], "videos": [], "audios": []}', '{"internal": [], "external": []}', '{"title": null, "description": null, "keywords": null, "author": null}', '', '{"cache-control": "public, max-age=0, must-revalidate", "cf-cache-status": "HIT", "cf-ray": "97c7cfc759a5a209-MSP", "content-encoding": "br", "content-type": "text/plain", "date": "Tue, 09 Sep 2025 15:45:15 GMT", "etag": "W/\\"a43c618d9ed14501bd436b05f7789bbe\\"", "nel": "{\\"success_fraction\\":0,\\"report_to\\":\\"cf-nel\\",\\"max_age\\":604800}", "report-to": "{\\"endpoints\\":[{\\"url\\":\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=liyU4MuoZ%2B30V7s6IDsKGnRXxHBPxJV0FqMSIKn7NMQgeUNv%2BDDO6uQHnzSwBfGHsenc1WhFSobPWy3SELNDjVWsOfWdJQcit7mW%2FEWe1M42i0K0RefKztYo%2FU6UcA6Wrw%3D%3D\\"}],\\"group\\":\\"cf-nel\\",\\"max_age\\":604800}", "server": "cloudflare", "server-timing": "cfL4;desc=\\"?proto=TCP&rtt=33335&min_rtt=25024&rtt_var=12483&sent=10&recv=11&lost=0&retrans=3&sent_bytes=7451&recv_bytes=2428&delivery_rate=130938&cwnd=254&unsent_bytes=0&cid=5b2d4e704c8765b4&ts=142&x=0\\"", "vary": "Accept-Encoding"}', '[]')) completed
2025-09-09 15:45:17 | aiosqlite | DEBUG | executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x7be21f8848b0>)
2025-09-09 15:45:17 | aiosqlite | DEBUG | operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x7be21f8848b0>) completed
2025-09-09 15:45:17 | aiosqlite | DEBUG | executing functools.partial(<built-in method close of sqlite3.Connection object at 0x7be21f8848b0>)
2025-09-09 15:45:17 | aiosqlite | DEBUG | operation functools.partial(<built-in method close of sqlite3.Connection object at 0x7be21f8848b0>) completed
2025-09-09 15:45:17 | src.server.services.crawling.strategies.single_page | INFO | Successfully crawled markdown file: https://ai.pydantic.dev/llms-full.txt
2025-09-09 15:45:17 | src.server.services.crawling.helpers.url_handler | INFO | Skipping content-based link-collection detection for full-content file: llms-full.txt
2025-09-09 15:45:17 | src.server.services.storage.base_storage_service | INFO | Successfully chunked text: original_length=2031377, chunks_created=475
2025-09-09 15:45:17 | src.server.services.credential_service | DEBUG | Cached RAG settings with 23 items
2025-09-09 15:45:17 | src.server.services.llm_provider_service | DEBUG | Fetched and cached llm provider config
2025-09-09 15:45:17 | src.server.services.llm_provider_service | INFO | Creating LLM client for provider: openai
2025-09-09 15:45:17 | src.server.services.llm_provider_service | ERROR | Error creating LLM client for provider openai: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Error generating summary with LLM for c0e629a894699314: OpenAI API key not found. Using default summary.
2025-09-09 15:45:17 | search | INFO | Updating source c0e629a894699314 with knowledge_type=technical
2025-09-09 15:45:17 | search | INFO | Creating new source c0e629a894699314 with knowledge_type=technical
2025-09-09 15:45:17 | search | INFO | Created/updated source c0e629a894699314 with title: Pydantic Documentation - Llms-Full.Txt
2025-09-09 15:45:17 | search | WARNING | Failed to load storage settings: cannot access local variable 'credential_service' where it is not associated with a value, using defaults
2025-09-09 15:45:17 | search | INFO | Deleted existing records for 1 URLs in batches
2025-09-09 15:45:17 | src.server.services.credential_service | DEBUG | Using cached RAG settings
2025-09-09 15:45:17 | src.server.services.llm_provider_service | DEBUG | Fetched and cached embedding provider config
2025-09-09 15:45:17 | src.server.services.llm_provider_service | INFO | Creating LLM client for provider: openai
2025-09-09 15:45:17 | src.server.services.llm_provider_service | ERROR | Error creating LLM client for provider openai: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Catastrophic failure in batch embedding: OpenAI API key not found
Traceback (most recent call last):
  File "/app/src/server/services/embeddings/embedding_service.py", line 182, in create_embeddings_batch
    async with get_llm_client(provider=provider, use_embedding_provider=True) as client:
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
    return await anext(self.gen)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/app/src/server/services/llm_provider_service.py", line 98, in get_llm_client
    raise ValueError("OpenAI API key not found")
ValueError: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Batch 1: Failed to create 25 embeddings. Successful: 0. Errors: ['Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found']
2025-09-09 15:45:17 | search | WARNING | Skipping batch 1 - no successful embeddings created
2025-09-09 15:45:17 | src.server.services.llm_provider_service | DEBUG | Using cached embedding provider config
2025-09-09 15:45:17 | src.server.services.llm_provider_service | INFO | Creating LLM client for provider: openai
2025-09-09 15:45:17 | src.server.services.llm_provider_service | ERROR | Error creating LLM client for provider openai: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Catastrophic failure in batch embedding: OpenAI API key not found
Traceback (most recent call last):
  File "/app/src/server/services/embeddings/embedding_service.py", line 182, in create_embeddings_batch
    async with get_llm_client(provider=provider, use_embedding_provider=True) as client:
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
    return await anext(self.gen)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/app/src/server/services/llm_provider_service.py", line 98, in get_llm_client
    raise ValueError("OpenAI API key not found")
ValueError: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Batch 2: Failed to create 25 embeddings. Successful: 0. Errors: ['Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found']
2025-09-09 15:45:17 | search | WARNING | Skipping batch 2 - no successful embeddings created
2025-09-09 15:45:17 | src.server.services.llm_provider_service | DEBUG | Using cached embedding provider config
2025-09-09 15:45:17 | src.server.services.llm_provider_service | INFO | Creating LLM client for provider: openai
2025-09-09 15:45:17 | src.server.services.llm_provider_service | ERROR | Error creating LLM client for provider openai: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Catastrophic failure in batch embedding: OpenAI API key not found
Traceback (most recent call last):
  File "/app/src/server/services/embeddings/embedding_service.py", line 182, in create_embeddings_batch
    async with get_llm_client(provider=provider, use_embedding_provider=True) as client:
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
    return await anext(self.gen)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/app/src/server/services/llm_provider_service.py", line 98, in get_llm_client
    raise ValueError("OpenAI API key not found")
ValueError: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Batch 3: Failed to create 25 embeddings. Successful: 0. Errors: ['Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found']
2025-09-09 15:45:17 | search | WARNING | Skipping batch 3 - no successful embeddings created
2025-09-09 15:45:17 | src.server.services.llm_provider_service | DEBUG | Using cached embedding provider config
2025-09-09 15:45:17 | src.server.services.llm_provider_service | INFO | Creating LLM client for provider: openai
2025-09-09 15:45:17 | src.server.services.llm_provider_service | ERROR | Error creating LLM client for provider openai: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Catastrophic failure in batch embedding: OpenAI API key not found
Traceback (most recent call last):
  File "/app/src/server/services/embeddings/embedding_service.py", line 182, in create_embeddings_batch
    async with get_llm_client(provider=provider, use_embedding_provider=True) as client:
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
    return await anext(self.gen)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/app/src/server/services/llm_provider_service.py", line 98, in get_llm_client
    raise ValueError("OpenAI API key not found")
ValueError: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Batch 4: Failed to create 25 embeddings. Successful: 0. Errors: ['Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found']
2025-09-09 15:45:17 | search | WARNING | Skipping batch 4 - no successful embeddings created
2025-09-09 15:45:17 | src.server.services.llm_provider_service | DEBUG | Using cached embedding provider config
2025-09-09 15:45:17 | src.server.services.llm_provider_service | INFO | Creating LLM client for provider: openai
2025-09-09 15:45:17 | src.server.services.llm_provider_service | ERROR | Error creating LLM client for provider openai: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Catastrophic failure in batch embedding: OpenAI API key not found
Traceback (most recent call last):
  File "/app/src/server/services/embeddings/embedding_service.py", line 182, in create_embeddings_batch
    async with get_llm_client(provider=provider, use_embedding_provider=True) as client:
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
    return await anext(self.gen)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/app/src/server/services/llm_provider_service.py", line 98, in get_llm_client
    raise ValueError("OpenAI API key not found")
ValueError: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Batch 5: Failed to create 25 embeddings. Successful: 0. Errors: ['Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found']
2025-09-09 15:45:17 | search | WARNING | Skipping batch 5 - no successful embeddings created
2025-09-09 15:45:17 | src.server.services.llm_provider_service | DEBUG | Using cached embedding provider config
2025-09-09 15:45:17 | src.server.services.llm_provider_service | INFO | Creating LLM client for provider: openai
2025-09-09 15:45:17 | src.server.services.llm_provider_service | ERROR | Error creating LLM client for provider openai: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Catastrophic failure in batch embedding: OpenAI API key not found
Traceback (most recent call last):
  File "/app/src/server/services/embeddings/embedding_service.py", line 182, in create_embeddings_batch
    async with get_llm_client(provider=provider, use_embedding_provider=True) as client:
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
    return await anext(self.gen)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/app/src/server/services/llm_provider_service.py", line 98, in get_llm_client
    raise ValueError("OpenAI API key not found")
ValueError: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Batch 6: Failed to create 25 embeddings. Successful: 0. Errors: ['Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found']
2025-09-09 15:45:17 | search | WARNING | Skipping batch 6 - no successful embeddings created
2025-09-09 15:45:17 | src.server.services.llm_provider_service | DEBUG | Using cached embedding provider config
2025-09-09 15:45:17 | src.server.services.llm_provider_service | INFO | Creating LLM client for provider: openai
2025-09-09 15:45:17 | src.server.services.llm_provider_service | ERROR | Error creating LLM client for provider openai: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Catastrophic failure in batch embedding: OpenAI API key not found
Traceback (most recent call last):
  File "/app/src/server/services/embeddings/embedding_service.py", line 182, in create_embeddings_batch
    async with get_llm_client(provider=provider, use_embedding_provider=True) as client:
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
    return await anext(self.gen)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/app/src/server/services/llm_provider_service.py", line 98, in get_llm_client
    raise ValueError("OpenAI API key not found")
ValueError: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Batch 7: Failed to create 25 embeddings. Successful: 0. Errors: ['Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found']
2025-09-09 15:45:17 | search | WARNING | Skipping batch 7 - no successful embeddings created
2025-09-09 15:45:17 | src.server.services.llm_provider_service | DEBUG | Using cached embedding provider config
2025-09-09 15:45:17 | src.server.services.llm_provider_service | INFO | Creating LLM client for provider: openai
2025-09-09 15:45:17 | src.server.services.llm_provider_service | ERROR | Error creating LLM client for provider openai: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Catastrophic failure in batch embedding: OpenAI API key not found
Traceback (most recent call last):
  File "/app/src/server/services/embeddings/embedding_service.py", line 182, in create_embeddings_batch
    async with get_llm_client(provider=provider, use_embedding_provider=True) as client:
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
    return await anext(self.gen)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/app/src/server/services/llm_provider_service.py", line 98, in get_llm_client
    raise ValueError("OpenAI API key not found")
ValueError: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Batch 8: Failed to create 25 embeddings. Successful: 0. Errors: ['Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found']
2025-09-09 15:45:17 | search | WARNING | Skipping batch 8 - no successful embeddings created
2025-09-09 15:45:17 | src.server.services.llm_provider_service | DEBUG | Using cached embedding provider config
2025-09-09 15:45:17 | src.server.services.llm_provider_service | INFO | Creating LLM client for provider: openai
2025-09-09 15:45:17 | src.server.services.llm_provider_service | ERROR | Error creating LLM client for provider openai: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Catastrophic failure in batch embedding: OpenAI API key not found
Traceback (most recent call last):
  File "/app/src/server/services/embeddings/embedding_service.py", line 182, in create_embeddings_batch
    async with get_llm_client(provider=provider, use_embedding_provider=True) as client:
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
    return await anext(self.gen)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/app/src/server/services/llm_provider_service.py", line 98, in get_llm_client
    raise ValueError("OpenAI API key not found")
ValueError: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Batch 9: Failed to create 25 embeddings. Successful: 0. Errors: ['Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found']
2025-09-09 15:45:17 | search | WARNING | Skipping batch 9 - no successful embeddings created
2025-09-09 15:45:17 | src.server.services.llm_provider_service | DEBUG | Using cached embedding provider config
2025-09-09 15:45:17 | src.server.services.llm_provider_service | INFO | Creating LLM client for provider: openai
2025-09-09 15:45:17 | src.server.services.llm_provider_service | ERROR | Error creating LLM client for provider openai: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Catastrophic failure in batch embedding: OpenAI API key not found
Traceback (most recent call last):
  File "/app/src/server/services/embeddings/embedding_service.py", line 182, in create_embeddings_batch
    async with get_llm_client(provider=provider, use_embedding_provider=True) as client:
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
    return await anext(self.gen)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/app/src/server/services/llm_provider_service.py", line 98, in get_llm_client
    raise ValueError("OpenAI API key not found")
ValueError: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Batch 10: Failed to create 25 embeddings. Successful: 0. Errors: ['Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found']
2025-09-09 15:45:17 | search | WARNING | Skipping batch 10 - no successful embeddings created
2025-09-09 15:45:17 | src.server.services.llm_provider_service | DEBUG | Using cached embedding provider config
2025-09-09 15:45:17 | src.server.services.llm_provider_service | INFO | Creating LLM client for provider: openai
2025-09-09 15:45:17 | src.server.services.llm_provider_service | ERROR | Error creating LLM client for provider openai: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Catastrophic failure in batch embedding: OpenAI API key not found
Traceback (most recent call last):
  File "/app/src/server/services/embeddings/embedding_service.py", line 182, in create_embeddings_batch
    async with get_llm_client(provider=provider, use_embedding_provider=True) as client:
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
    return await anext(self.gen)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/app/src/server/services/llm_provider_service.py", line 98, in get_llm_client
    raise ValueError("OpenAI API key not found")
ValueError: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Batch 11: Failed to create 25 embeddings. Successful: 0. Errors: ['Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found']
2025-09-09 15:45:17 | search | WARNING | Skipping batch 11 - no successful embeddings created
2025-09-09 15:45:17 | src.server.services.llm_provider_service | DEBUG | Using cached embedding provider config
2025-09-09 15:45:17 | src.server.services.llm_provider_service | INFO | Creating LLM client for provider: openai
2025-09-09 15:45:17 | src.server.services.llm_provider_service | ERROR | Error creating LLM client for provider openai: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Catastrophic failure in batch embedding: OpenAI API key not found
Traceback (most recent call last):
  File "/app/src/server/services/embeddings/embedding_service.py", line 182, in create_embeddings_batch
    async with get_llm_client(provider=provider, use_embedding_provider=True) as client:
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
    return await anext(self.gen)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/app/src/server/services/llm_provider_service.py", line 98, in get_llm_client
    raise ValueError("OpenAI API key not found")
ValueError: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Batch 12: Failed to create 25 embeddings. Successful: 0. Errors: ['Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found']
2025-09-09 15:45:17 | search | WARNING | Skipping batch 12 - no successful embeddings created
2025-09-09 15:45:17 | src.server.services.llm_provider_service | DEBUG | Using cached embedding provider config
2025-09-09 15:45:17 | src.server.services.llm_provider_service | INFO | Creating LLM client for provider: openai
2025-09-09 15:45:17 | src.server.services.llm_provider_service | ERROR | Error creating LLM client for provider openai: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Catastrophic failure in batch embedding: OpenAI API key not found
Traceback (most recent call last):
  File "/app/src/server/services/embeddings/embedding_service.py", line 182, in create_embeddings_batch
    async with get_llm_client(provider=provider, use_embedding_provider=True) as client:
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
    return await anext(self.gen)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/app/src/server/services/llm_provider_service.py", line 98, in get_llm_client
    raise ValueError("OpenAI API key not found")
ValueError: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Batch 13: Failed to create 25 embeddings. Successful: 0. Errors: ['Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found']
2025-09-09 15:45:17 | search | WARNING | Skipping batch 13 - no successful embeddings created
2025-09-09 15:45:17 | src.server.services.llm_provider_service | DEBUG | Using cached embedding provider config
2025-09-09 15:45:17 | src.server.services.llm_provider_service | INFO | Creating LLM client for provider: openai
2025-09-09 15:45:17 | src.server.services.llm_provider_service | ERROR | Error creating LLM client for provider openai: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Catastrophic failure in batch embedding: OpenAI API key not found
Traceback (most recent call last):
  File "/app/src/server/services/embeddings/embedding_service.py", line 182, in create_embeddings_batch
    async with get_llm_client(provider=provider, use_embedding_provider=True) as client:
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
    return await anext(self.gen)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/app/src/server/services/llm_provider_service.py", line 98, in get_llm_client
    raise ValueError("OpenAI API key not found")
ValueError: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Batch 14: Failed to create 25 embeddings. Successful: 0. Errors: ['Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found']
2025-09-09 15:45:17 | search | WARNING | Skipping batch 14 - no successful embeddings created
2025-09-09 15:45:17 | src.server.services.llm_provider_service | DEBUG | Using cached embedding provider config
2025-09-09 15:45:17 | src.server.services.llm_provider_service | INFO | Creating LLM client for provider: openai
2025-09-09 15:45:17 | src.server.services.llm_provider_service | ERROR | Error creating LLM client for provider openai: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Catastrophic failure in batch embedding: OpenAI API key not found
Traceback (most recent call last):
  File "/app/src/server/services/embeddings/embedding_service.py", line 182, in create_embeddings_batch
    async with get_llm_client(provider=provider, use_embedding_provider=True) as client:
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
    return await anext(self.gen)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/app/src/server/services/llm_provider_service.py", line 98, in get_llm_client
    raise ValueError("OpenAI API key not found")
ValueError: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Batch 15: Failed to create 25 embeddings. Successful: 0. Errors: ['Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found']
2025-09-09 15:45:17 | search | WARNING | Skipping batch 15 - no successful embeddings created
2025-09-09 15:45:17 | src.server.services.llm_provider_service | DEBUG | Using cached embedding provider config
2025-09-09 15:45:17 | src.server.services.llm_provider_service | INFO | Creating LLM client for provider: openai
2025-09-09 15:45:17 | src.server.services.llm_provider_service | ERROR | Error creating LLM client for provider openai: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Catastrophic failure in batch embedding: OpenAI API key not found
Traceback (most recent call last):
  File "/app/src/server/services/embeddings/embedding_service.py", line 182, in create_embeddings_batch
    async with get_llm_client(provider=provider, use_embedding_provider=True) as client:
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
    return await anext(self.gen)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/app/src/server/services/llm_provider_service.py", line 98, in get_llm_client
    raise ValueError("OpenAI API key not found")
ValueError: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Batch 16: Failed to create 25 embeddings. Successful: 0. Errors: ['Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found']
2025-09-09 15:45:17 | search | WARNING | Skipping batch 16 - no successful embeddings created
2025-09-09 15:45:17 | src.server.services.llm_provider_service | DEBUG | Using cached embedding provider config
2025-09-09 15:45:17 | src.server.services.llm_provider_service | INFO | Creating LLM client for provider: openai
2025-09-09 15:45:17 | src.server.services.llm_provider_service | ERROR | Error creating LLM client for provider openai: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Catastrophic failure in batch embedding: OpenAI API key not found
Traceback (most recent call last):
  File "/app/src/server/services/embeddings/embedding_service.py", line 182, in create_embeddings_batch
    async with get_llm_client(provider=provider, use_embedding_provider=True) as client:
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
    return await anext(self.gen)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/app/src/server/services/llm_provider_service.py", line 98, in get_llm_client
    raise ValueError("OpenAI API key not found")
ValueError: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Batch 17: Failed to create 25 embeddings. Successful: 0. Errors: ['Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found']
2025-09-09 15:45:17 | search | WARNING | Skipping batch 17 - no successful embeddings created
2025-09-09 15:45:17 | src.server.services.llm_provider_service | DEBUG | Using cached embedding provider config
2025-09-09 15:45:17 | src.server.services.llm_provider_service | INFO | Creating LLM client for provider: openai
2025-09-09 15:45:17 | src.server.services.llm_provider_service | ERROR | Error creating LLM client for provider openai: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Catastrophic failure in batch embedding: OpenAI API key not found
Traceback (most recent call last):
  File "/app/src/server/services/embeddings/embedding_service.py", line 182, in create_embeddings_batch
    async with get_llm_client(provider=provider, use_embedding_provider=True) as client:
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
    return await anext(self.gen)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/app/src/server/services/llm_provider_service.py", line 98, in get_llm_client
    raise ValueError("OpenAI API key not found")
ValueError: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Batch 18: Failed to create 25 embeddings. Successful: 0. Errors: ['Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found']
2025-09-09 15:45:17 | search | WARNING | Skipping batch 18 - no successful embeddings created
2025-09-09 15:45:17 | src.server.services.llm_provider_service | DEBUG | Using cached embedding provider config
2025-09-09 15:45:17 | src.server.services.llm_provider_service | INFO | Creating LLM client for provider: openai
2025-09-09 15:45:17 | src.server.services.llm_provider_service | ERROR | Error creating LLM client for provider openai: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Catastrophic failure in batch embedding: OpenAI API key not found
Traceback (most recent call last):
  File "/app/src/server/services/embeddings/embedding_service.py", line 182, in create_embeddings_batch
    async with get_llm_client(provider=provider, use_embedding_provider=True) as client:
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/contextlib.py", line 210, in __aenter__
    return await anext(self.gen)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/app/src/server/services/llm_provider_service.py", line 98, in get_llm_client
    raise ValueError("OpenAI API key not found")
ValueError: OpenAI API key not found
2025-09-09 15:45:17 | search | ERROR | Batch 19: Failed to create 25 embeddings. Successful: 0. Errors: ['Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found', 'Catastrophic failure: OpenAI API key not found']
2025-09-09 15:45:17 | search | WARNING | Skipping batch 19 - no successful embeddings created
2025-09-09 15:45:17 | src.server.services.crawling.crawling_service | ERROR | Async crawl orchestration failed
Traceback (most recent call last):
  File "/app/src/server/services/crawling/crawling_service.py", line 411, in _async_orchestrate_crawl
    raise Exception(error_msg)
Exception: Failed to store documents: 475 chunks processed but 0 stored
15:45:17.418 Getting progress for operation | operation_id=d5791cf6-253a-4213-b8dc-79c2682e347b
15:45:17.421 Progress retrieved | operation_id=d5791cf6-253a-4213-b8dc-79c2682e347b | status=error | progress=30.0
2025-09-09 15:45:33 | src.server.api_routes.knowledge_api | DEBUG | Starting delete_knowledge_item for source_id: c0e629a894699314
2025-09-09 15:45:33 | src.server.api_routes.knowledge_api | DEBUG | Creating SourceManagementService...
2025-09-09 15:45:33 | src.server.api_routes.knowledge_api | DEBUG | Successfully created SourceManagementService
2025-09-09 15:45:33 | src.server.api_routes.knowledge_api | DEBUG | Calling delete_source function...
2025-09-09 15:45:33 | src.server.services.source_management_service | INFO | Starting delete_source for source_id: c0e629a894699314
2025-09-09 15:45:33 | src.server.services.source_management_service | INFO | Deleting from crawled_pages table for source_id: c0e629a894699314
2025-09-09 15:45:33 | src.server.services.source_management_service | INFO | Deleted 0 pages from crawled_pages
2025-09-09 15:45:33 | src.server.services.source_management_service | INFO | Deleting from code_examples table for source_id: c0e629a894699314
2025-09-09 15:45:33 | src.server.services.source_management_service | INFO | Deleted 0 code examples
2025-09-09 15:45:33 | src.server.services.source_management_service | INFO | Deleting from sources table for source_id: c0e629a894699314
2025-09-09 15:45:33 | src.server.services.source_management_service | INFO | Deleted 1 source records
2025-09-09 15:45:33 | src.server.services.source_management_service | INFO | Delete operation completed successfully
2025-09-09 15:45:33 | src.server.api_routes.knowledge_api | DEBUG | delete_source returned: success=True, data={'source_id': 'c0e629a894699314', 'pages_deleted': 0, 'code_examples_deleted': 0, 'source_records_deleted': 1}

dkudos avatar Sep 09 '25 15:09 dkudos

Ok fixed it. This is a documentation problem.

In .env file you need to set HOST=

server can not talk to my external db (on same network) just not same host. This should be added which is important if not running on same host.

dkudos avatar Sep 09 '25 18:09 dkudos

Problem is fixed in the latest version.

@dkudos docs at all is a big topic we will improve in the future.

Closing this for now. If you still got problems, feel free to reopen.

leex279 avatar Sep 14 '25 09:09 leex279