Files
ALwrity/docs/STYLE_DETECTION_404_ANALYSIS.md

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


**Option 2: Update Backend Route