3.1 KiB
3.1 KiB
Style Detection 404 Error Analysis
Date: October 1, 2025
Issue: GET /api/style-detection/session-analyses returning 404 Not Found
Impact: Low - Feature degrades gracefully, no user-facing errors
🔍 Root Cause Analysis
The Problem:
Frontend calls:
// Line 252 in websiteUtils.ts
const res = await fetch('/api/style-detection/session-analyses');
Backend registered at:
# Line 43 in component_logic.py
router = APIRouter(prefix="/api/onboarding", tags=["component_logic"])
# Line 645 in component_logic.py
@router.get("/style-detection/session-analyses")
Actual endpoint:
/api/onboarding/style-detection/session-analyses
^^^^^^^^^^^^ Missing prefix!
Frontend calling:
/api/style-detection/session-analyses
❌ No /onboarding prefix
Result: 404 Not Found ❌
📋 What Is This Endpoint?
Purpose:
Pre-fill the website URL input field with the last analyzed website from the user's session.
User Experience:
User Journey:
1. User analyzes website: example.com (Step 2)
2. User completes onboarding
3. User starts new session / refreshes page
4. Returns to Step 2 (Website Analysis)
5. ✅ Website field auto-filled with: example.com
6. User doesn't have to type URL again
UX Benefit: Convenience feature - saves user from re-typing
🎯 Why It's Being Called
Location: WebsiteStep.tsx (Lines 192-206)
useEffect(() => {
// Prefill from last session analysis on mount
const loadLastAnalysis = async () => {
const result = await fetchLastAnalysis(); // ← Calls the 404 endpoint
if (result.success) {
if (result.website) {
setWebsite(result.website); // Auto-fill URL
}
if (result.analysis) {
setAnalysis(result.analysis); // Load previous analysis
}
}
};
loadLastAnalysis();
}, []);
Trigger: Component mounts (every time user visits Step 2)
📊 Current Impact
User Experience:
- ✅ No visible errors - Error caught and handled gracefully
- ✅ Feature fails silently - Just doesn't pre-fill
- ✅ User can still proceed - Manual URL entry works fine
- ⚠️ Slightly inconvenient - User must re-type URL
System Impact:
- ⚠️ Backend logs pollution - 404 errors on every Step 2 visit
- ⚠️ Network noise - Unnecessary failed requests
- ✅ No crashes - Error handled properly
Severity: 🟡 Low (convenience feature, not critical)
🔧 Solutions
Option 1: Fix Frontend URL (Quick Fix - 30 seconds)
// frontend/src/components/OnboardingWizard/WebsiteStep/utils/websiteUtils.ts
// Line 252
// Before:
const res = await fetch('/api/style-detection/session-analyses');
// After:
const res = await fetch('/api/onboarding/style-detection/session-analyses');
// ^^^^^^^^^^^^ Add missing prefix
Pros:
- ✅ Quick fix (1 line change)
- ✅ Restores functionality
- ✅ No breaking changes
Cons:
- None
Recommendation: ✅ Do this