# Debug Network Error in Chat Assistant ## Issue Frontend shows "Network error. Please check your connection." but backend logs show 200 OK. ## Root Cause Analysis The backend is successfully processing requests (200 OK), but the frontend axios client is reporting a network error. This typically means: 1. **CORS Issue**: Response is blocked by browser CORS policy 2. **Response Format**: Response doesn't match expected format 3. **Timeout**: Request takes too long (>30s) 4. **Network Path**: Browser can't reach the backend URL ## Debugging Steps ### 1. Check Browser Console Open browser DevTools (F12) and check: - Console tab for error messages - Network tab to see the actual request/response - Look for CORS errors (red text) ### 2. Check API URL The frontend should use: - **Local development**: `http://localhost:4402` - **Docker**: Should still use `http://localhost:4402` (browser makes request from host) ### 3. Test API Directly ```bash # Test from your machine (not Docker) curl -X POST http://localhost:4402/api/v1/chat \ -H "Content-Type: application/json" \ -d '{"message": "Hello"}' ``` ### 4. Check CORS Headers The backend should return CORS headers. Check in browser Network tab: - `Access-Control-Allow-Origin: *` - `Access-Control-Allow-Methods: *` - `Access-Control-Allow-Headers: *` ### 5. Check Response Format The backend returns: ```json { "message": "AI response text", "model": "gemma3:270M", "tokens_used": 150 } ``` The frontend expects this format in `ChatResponse`. ## Quick Fixes ### Fix 1: Verify API URL Check what URL the frontend is using: 1. Open browser console 2. Look for: `API Client initialized with baseURL: ...` 3. Should be: `http://localhost:4402` ### Fix 2: Check CORS Backend has `allow_origins=["*"]` which should work, but verify: 1. Check browser Network tab 2. Look for OPTIONS preflight request 3. Should return 200 OK ### Fix 3: Test with curl ```bash curl -v -X POST http://localhost:4402/api/v1/chat \ -H "Content-Type: application/json" \ -H "Origin: http://localhost:8081" \ -d '{"message": "test"}' ``` ### Fix 4: Check Response Time The backend log shows 6.3 seconds. If axios timeout is shorter, it will fail. Current timeout is 30s, so should be fine. ## Expected Behavior 1. Browser makes POST to `http://localhost:4402/api/v1/chat` 2. Backend processes request (6-7 seconds for Ollama) 3. Backend returns 200 OK with JSON response 4. Frontend receives response and displays it ## Current Status ✅ Backend: Working (200 OK) ❌ Frontend: Network error 🔍 Need to check: Browser console, Network tab, CORS headers ## Next Steps 1. Open browser DevTools 2. Go to Network tab 3. Make a chat request 4. Check the request details: - URL - Status code - Response headers - Response body 5. Check Console tab for errors