> veza-frontend@1.0.0 test:e2e > playwright test Running 38 tests using 1 worker [1/38] [chromium] › e2e/auth.spec.ts:37:3 › Authentication Flow › should login successfully with valid credentials [chromium] › e2e/auth.spec.ts:37:3 › Authentication Flow › should login successfully with valid credentials 🧪 [AUTH TEST] Running: Login with valid credentials ✏️ [FILL] Filling field input[type="email"], input[name="email"] with value: user@example.com ✅ [FILL] Field input[type="email"], input[name="email"] filled successfully ✏️ [FILL] Filling field input[type="password"], input[name="password"] with value: password123 ✅ [FILL] Field input[type="password"], input[name="password"] filled successfully ⚡ [FORM SUBMIT] Forcing submission of form: form 🔍 [FORM SUBMIT] Waiting for form selector: form ⏳ [FORM SUBMIT] Waiting for React to update state... 🚀 [FORM SUBMIT] Submitting form... ✅ [FORM SUBMIT] Form form submitted successfully ⏳ [AUTH TEST] Waiting for Zustand to persist auth-storage...  ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage) ✅ [AUTH TEST] Login successful (token in storage)  📊 [AUTH TEST] === Final Verifications === ✅ [AUTH TEST] No console errors ✅ [AUTH TEST] No network errors [2/38] [chromium] › e2e/auth.spec.ts:103:3 › Authentication Flow › should show error with invalid credentials [chromium] › e2e/auth.spec.ts:103:3 › Authentication Flow › should show error with invalid credentials 🧪 [AUTH TEST] Running: Login with invalid credentials ✏️ [FILL] Filling field input[type="email"], input[name="email"] with value: wrong@example.com ✅ [FILL] Field input[type="email"], input[name="email"] filled successfully ✏️ [FILL] Filling field input[type="password"], input[name="password"] with value: wrongpassword ✅ [FILL] Field input[type="password"], input[name="password"] filled successfully ⚡ [FORM SUBMIT] Forcing submission of form: form 🔍 [FORM SUBMIT] Waiting for form selector: form ⏳ [FORM SUBMIT] Waiting for React to update state... 🚀 [FORM SUBMIT] Submitting form... ✅ [FORM SUBMIT] Form form submitted successfully 🔔 [TOAST] Waiting for error message... 🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/login: 403 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [CONSOLE ERROR] Login error: {code: 1004, message: Invalid credentials, details: undefined, request_id: b10e0ec0-1bd2-4d5b-83d8-1b343281ce25, timestamp: 2025-12-19T12:21:46Z} ✅ [TOAST] error message: Invalid credentials ✅ [AUTH TEST] Error shown for invalid credentials  📊 [AUTH TEST] === Final Verifications === 🔴 [AUTH TEST] Console errors (2):  - Failed to load resource: the server responded with a status of 403 (Forbidden)  - Login error: {code: 1004, message: Invalid credentials, details: undefined, request_id: b10e0ec0-1bd2-4d5b-83d8-1b343281ce25, timestamp: 2025-12-19T12:21:46Z} 🔴 [AUTH TEST] Network errors (1):  - POST http://127.0.0.1:8080/api/v1/auth/login: 403 [3/38] [chromium] › e2e/auth.spec.ts:129:3 › Authentication Flow › should register a new user successfully [chromium] › e2e/auth.spec.ts:129:3 › Authentication Flow › should register a new user successfully 🧪 [AUTH TEST] Running: User registration ✏️ [FILL] Filling field input[name="email"], input#email with value: test-1766146906997@example.com ✅ [FILL] Field input[name="email"], input#email filled successfully ✏️ [FILL] Filling field input[name="username"], input#username with value: testuser1766146906997 ✅ [FILL] Field input[name="username"], input#username filled successfully ✏️ [FILL] Filling field input[name="password"], input#password with value: Test123456789! ✅ [FILL] Field input[name="password"], input#password filled successfully ✏️ [FILL] Filling field input[name="passwordConfirm"], input[name="password_confirm"], input[name="confirmPassword"], input#passwordConfirm with value: Test123456789! ✅ [FILL] Field input[name="passwordConfirm"], input[name="password_confirm"], input[name="confirmPassword"], input#passwordConfirm filled successfully ⚡ [FORM SUBMIT] Forcing submission of form: form 🔍 [FORM SUBMIT] Waiting for form selector: form ⏳ [FORM SUBMIT] Waiting for React to update state... 🚀 [FORM SUBMIT] Submitting form... ✅ [FORM SUBMIT] Form form submitted successfully 🔴 [CONSOLE ERROR] [AUTH] Tokens not found in register response: {user: Object, token: Object} ✅ [AUTH TEST] Registration successful with auto-login  📊 [AUTH TEST] === Final Verifications === 🔴 [AUTH TEST] Console errors (1):  - [AUTH] Tokens not found in register response: {user: Object, token: Object} ✅ [AUTH TEST] No network errors [4/38] [chromium] › e2e/auth.spec.ts:226:3 › Authentication Flow › should show error when registering with existing email [chromium] › e2e/auth.spec.ts:226:3 › Authentication Flow › should show error when registering with existing email 🧪 [AUTH TEST] Running: Registration with existing email ✏️ [FILL] Filling field input[name="email"], input#email with value: user@example.com ✅ [FILL] Field input[name="email"], input#email filled successfully ✏️ [FILL] Filling field input[name="username"], input#username with value: existinguser ✅ [FILL] Field input[name="username"], input#username filled successfully ✏️ [FILL] Filling field input[name="password"], input#password with value: Test123456789! ✅ [FILL] Field input[name="password"], input#password filled successfully ✏️ [FILL] Filling field input[name="passwordConfirm"], input[name="password_confirm"], input[name="confirmPassword"], input#passwordConfirm with value: Test123456789! ✅ [FILL] Field input[name="passwordConfirm"], input[name="password_confirm"], input[name="confirmPassword"], input#passwordConfirm filled successfully ⚡ [FORM SUBMIT] Forcing submission of form: form 🔍 [FORM SUBMIT] Waiting for form selector: form ⏳ [FORM SUBMIT] Waiting for React to update state... 🚀 [FORM SUBMIT] Submitting form... ✅ [FORM SUBMIT] Form form submitted successfully 🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/register: 500 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error) 🔴 [CONSOLE ERROR] Register error: {code: 9000, message: Failed to create user, details: undefined, request_id: b5921d56-0cf7-49c9-86c6-3265adc462fe, timestamp: 2025-12-19T12:21:51Z} ✅ [AUTH TEST] Error shown for existing email: "Failed to create user"  📊 [AUTH TEST] === Final Verifications === 🔴 [AUTH TEST] Console errors (2):  - Failed to load resource: the server responded with a status of 500 (Internal Server Error)  - Register error: {code: 9000, message: Failed to create user, details: undefined, request_id: b5921d56-0cf7-49c9-86c6-3265adc462fe, timestamp: 2025-12-19T12:21:51Z} 🔴 [AUTH TEST] Network errors (1):  - POST http://127.0.0.1:8080/api/v1/auth/register: 500 [5/38] [chromium] › e2e/auth.spec.ts:286:3 › Authentication Flow › should logout successfully [chromium] › e2e/auth.spec.ts:286:3 › Authentication Flow › should logout successfully 🧪 [AUTH TEST] Running: Logout 🔐 [LOGIN] Authenticating as user@example.com... ⏳ [LOGIN] Waiting 100ms before login (1766146913593ms since last login)... ⚡ [FORM SUBMIT] Forcing submission of form: form 🔍 [FORM SUBMIT] Waiting for form selector: form ⏳ [FORM SUBMIT] Waiting for React to update state... 🚀 [FORM SUBMIT] Submitting form... ✅ [FORM SUBMIT] Form form submitted successfully ⏳ [LOGIN] Waiting for networkidle after navigation... ⏳ [LOGIN] Waiting for auth state to be persisted... 🔍 [LOGIN] Verifying authentication state...  ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage) ✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...) 🔍 [AUTH TEST] Checking token presence before logout...  ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage) ✅ [AUTH TEST] Token present before logout: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... 🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/logout: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/logout: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) ✅ [AUTH TEST] Logout successful  📊 [AUTH TEST] === Final Verifications === 🔴 [AUTH TEST] Console errors (2):  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [AUTH TEST] Network errors (2):  - POST http://127.0.0.1:8080/api/v1/auth/logout: 401  - POST http://127.0.0.1:8080/api/v1/auth/logout: 401 [6/38] [chromium] › e2e/auth.spec.ts:357:3 › Authentication Flow › should redirect to login when accessing protected route without auth [chromium] › e2e/auth.spec.ts:357:3 › Authentication Flow › should redirect to login when accessing protected route without auth 🧪 [AUTH TEST] Running: Route guard test 🔴 [REQUEST FAILED] GET http://localhost:3000/node_modules/.vite/deps/@hookform_resolvers_zod.js?v=490fee7e: net::ERR_ABORTED 🔴 [REQUEST FAILED] GET http://localhost:3000/node_modules/.vite/deps/chunk-HL7VHMNJ.js?v=490fee7e: net::ERR_ABORTED ✅ [AUTH TEST] Route guard working correctly  📊 [AUTH TEST] === Final Verifications === ✅ [AUTH TEST] No console errors 🔴 [AUTH TEST] Network errors (2):  - GET http://localhost:3000/node_modules/.vite/deps/@hookform_resolvers_zod.js?v=490fee7e: 0  - GET http://localhost:3000/node_modules/.vite/deps/chunk-HL7VHMNJ.js?v=490fee7e: 0 [7/38] [chromium] › e2e/auth.spec.ts:379:3 › Authentication Flow › should logout after page refresh (memory token architecture) [chromium] › e2e/auth.spec.ts:379:3 › Authentication Flow › should logout after page refresh (memory token architecture) 🧪 [AUTH TEST] Running: Memory token refresh test 🔐 [LOGIN] Authenticating as user@example.com... ⏳ [LOGIN] Waiting 100ms before login (3878ms since last login)... ⚡ [FORM SUBMIT] Forcing submission of form: form 🔍 [FORM SUBMIT] Waiting for form selector: form ⏳ [FORM SUBMIT] Waiting for React to update state... 🚀 [FORM SUBMIT] Submitting form... ✅ [FORM SUBMIT] Form form submitted successfully ⏳ [LOGIN] Waiting for networkidle after navigation... ⏳ [LOGIN] Waiting for auth state to be persisted... 🔍 [LOGIN] Verifying authentication state...  ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage) ✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...) ✅ [AUTH TEST] Authenticated before refresh 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766146920177: net::ERR_ABORTED 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766146920453: net::ERR_ABORTED ✅ [AUTH TEST] Correctly redirected to login after refresh (memory token lost)  📊 [AUTH TEST] === Final Verifications === 🔴 [AUTH TEST] Console errors (6):  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [AUTH TEST] Network errors (8):  - GET http://localhost:3000/src/index.css?t=1766146920177: 0  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403  - GET http://localhost:3000/src/index.css?t=1766146920453: 0 [8/38] [chromium] › e2e/auth.spec.ts:440:3 › Authentication Flow › should validate login form fields [chromium] › e2e/auth.spec.ts:440:3 › Authentication Flow › should validate login form fields 🧪 [AUTH TEST] Running: Login form validation ✅ [AUTH TEST] Form validation prevented submission (stayed on login page)  📊 [AUTH TEST] === Final Verifications === ✅ [AUTH TEST] No console errors ✅ [AUTH TEST] No network errors [9/38] [chromium] › e2e/auth.spec.ts:497:3 › Authentication Flow › should show error when passwords do not match during registration [chromium] › e2e/auth.spec.ts:497:3 › Authentication Flow › should show error when passwords do not match during registration 🧪 [AUTH TEST] Running: Password mismatch validation ✏️ [FILL] Filling field input[name="email"], input#email with value: newuser@example.com ✅ [FILL] Field input[name="email"], input#email filled successfully ✏️ [FILL] Filling field input[name="password"], input#password with value: Password123456! ✅ [FILL] Field input[name="password"], input#password filled successfully ✏️ [FILL] Filling field input[name="passwordConfirm"], input[name="password_confirm"], input[name="confirmPassword"] with value: DifferentPassword! ✅ [FILL] Field input[name="passwordConfirm"], input[name="password_confirm"], input[name="confirmPassword"] filled successfully ⚡ [FORM SUBMIT] Forcing submission of form: form 🔍 [FORM SUBMIT] Waiting for form selector: form ⏳ [FORM SUBMIT] Waiting for React to update state... 🚀 [FORM SUBMIT] Submitting form... ✅ [FORM SUBMIT] Form form submitted successfully ✅ [AUTH TEST] Password mismatch error shown (found by CSS)  📊 [AUTH TEST] === Final Verifications === ✅ [AUTH TEST] No console errors ✅ [AUTH TEST] No network errors [10/38] [chromium] › e2e/deep_audit.spec.ts:254:3 › Deep E2E Runtime Audit › Complete User Journey - Runtime Audit [chromium] › e2e/deep_audit.spec.ts:254:3 › Deep E2E Runtime Audit › Complete User Journey - Runtime Audit 🔍 [AUDIT] Starting comprehensive E2E audit... 🔍 [AUDIT] Step 1: Navigating to login... 🔍 [AUDIT] Step 2: Submitting login form... ✅ [AUDIT] Login successful, redirected to: http://localhost:3000/dashboard 🔍 [AUDIT] Step 3: Testing page navigation and lazy loading...  → Checking /dashboard...  → Navigating to /profile...  → Navigating to /settings...  → Navigating to /library... 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/playlists?page=20&limit=0 -> 401 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/playlists?page=20&limit=0 -> 401  📊 [AUDIT] === AUDIT SUMMARY === Global Status: STABLE Login Success: true Pages Checked: 4 Total Issues: 3  - Critical: 0  - High: 3  - Medium: 0  - Low: 0 By Category:  - NETWORK: 2  - CONSOLE: 1  - NAVIGATION: 0  - UX: 0 ✅ [AUDIT] Application appears STABLE 📄 [AUDIT] JSON report written to: /home/senke/git/talas/veza/apps/web/RUNTIME_ISSUES.json 📄 [AUDIT] Markdown report written to: /home/senke/git/talas/veza/apps/web/RUNTIME_AUDIT_REPORT.md [11/38] [chromium] › e2e/diagnostic.spec.ts:55:3 › Full Stack Compatibility Diagnostic › Login Flow - Complete Diagnostic [chromium] › e2e/diagnostic.spec.ts:55:3 › Full Stack Compatibility Diagnostic › Login Flow - Complete Diagnostic 🔍 [DIAGNOSTIC] Navigation vers /login... 📄 [DIAGNOSTIC] Nombre d'inputs sur la page: 3 📄 [DIAGNOSTIC] Nombre de boutons sur la page: 1 📄 [DIAGNOSTIC] Page title: Veza - Plateforme de streaming musical 📄 [DIAGNOSTIC] URL actuelle: http://localhost:3000/login 📄 [DIAGNOSTIC] Email input visible: true 📄 [DIAGNOSTIC] Password input visible: true 📄 [DIAGNOSTIC] Submit button visible: true 📄 [DIAGNOSTIC] Page contient "form": true ✅ [DIAGNOSTIC] Formulaire de login visible 🔍 [DIAGNOSTIC] Remplissage du formulaire... 🔍 [DIAGNOSTIC] Clic sur le bouton de connexion... 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 429 (Too Many Requests) 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 429 (Too Many Requests) 🔴 [CONSOLE ERROR] Login error: {code: 429, message: Trop de requêtes. Veuillez patienter avant de réessayer., timestamp: 2025-12-19T12:22:31.039Z, details: undefined, retry_after: undefined} ⚠️ [DIAGNOSTIC] Pas de navigation ni d'erreur visible. URL actuelle: http://localhost:3000/login 🔍 [DIAGNOSTIC] Vérification du localStorage... 📦 [DIAGNOSTIC] LocalStorage: [ 'i18nextLng', 'auth-storage' ] ❌ [DIAGNOSTIC] Token d'accès absent  📊 [DIAGNOSTIC] === RAPPORT DE DIAGNOSTIC === Erreurs réseau: 2 Erreurs console: 3 Erreurs CORS: 0 Navigation réussie: false Token présent: false  🔴 Erreurs réseau:  - POST http://127.0.0.1:8080/api/v1/auth/login: HTTP 429  - POST http://127.0.0.1:8080/api/v1/auth/login: HTTP 429  🔴 Erreurs console:  - [error] Failed to load resource: the server responded with a status of 429 (Too Many Requests)  - [error] Failed to load resource: the server responded with a status of 429 (Too Many Requests)  - [error] Login error: {code: 429, message: Trop de requêtes. Veuillez patienter avant de réessayer., timestamp: 2025-12-19T12:22:31.039Z, details: undefined, retry_after: undefined} [12/38] [chromium] › e2e/playlists.spec.ts:44:3 › Playlists CRUD › should create a new playlist successfully [chromium] › e2e/playlists.spec.ts:44:3 › Playlists CRUD › should create a new playlist successfully 🔐 [LOGIN] Authenticating as user@example.com... ⏳ [LOGIN] Waiting 100ms before login (40707ms since last login)... ⚡ [FORM SUBMIT] Forcing submission of form: form 🔍 [FORM SUBMIT] Waiting for form selector: form ⏳ [FORM SUBMIT] Waiting for React to update state... 🚀 [FORM SUBMIT] Submitting form... ✅ [FORM SUBMIT] Form form submitted successfully 🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/login: 429 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 429 (Too Many Requests) ⏳ [LOGIN] Waiting for networkidle after navigation... ⏳ [LOGIN] Waiting for auth state to be persisted... 🔍 [LOGIN] Verifying authentication state...  ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage) ✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...) 🧪 [PLAYLISTS] Running: Create new playlist 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766146966068: net::ERR_ABORTED 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766146966336: net::ERR_ABORTED  📊 [PLAYLISTS] === Final Verifications === 🔴 [PLAYLISTS] Console errors (7):  - Failed to load resource: the server responded with a status of 429 (Too Many Requests)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [PLAYLISTS] Network errors (9):  - POST http://127.0.0.1:8080/api/v1/auth/login: 429  - GET http://localhost:3000/src/index.css?t=1766146966068: 0  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403  - GET http://localhost:3000/src/index.css?t=1766146966336: 0  1) [chromium] › e2e/playlists.spec.ts:44:3 › Playlists CRUD › should create a new playlist successfully Error: Navigation to /playlists failed. Current URL: http://localhost:3000/login 55 | const currentUrl = page.url(); 56 | if (!currentUrl.includes('/playlists')) { > 57 | throw new Error(`Navigation to /playlists failed. Current URL: ${currentUrl}`); | ^ 58 | } 59 | }); 60 | at /home/senke/git/talas/veza/apps/web/e2e/playlists.spec.ts:57:15 at /home/senke/git/talas/veza/apps/web/e2e/playlists.spec.ts:53:5 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── test-results/playlists-Playlists-CRUD-s-ee35d-a-new-playlist-successfully-chromium/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── test-results/playlists-Playlists-CRUD-s-ee35d-a-new-playlist-successfully-chromium/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/playlists-Playlists-CRUD-s-ee35d-a-new-playlist-successfully-chromium/error-context.md [13/38] [chromium] › e2e/playlists.spec.ts:94:3 › Playlists CRUD › should display list of playlists [chromium] › e2e/playlists.spec.ts:94:3 › Playlists CRUD › should display list of playlists 🔐 [LOGIN] Authenticating as user@example.com... ⏳ [LOGIN] Waiting 100ms before login (1766146983143ms since last login)... ⚡ [FORM SUBMIT] Forcing submission of form: form 🔍 [FORM SUBMIT] Waiting for form selector: form ⏳ [FORM SUBMIT] Waiting for React to update state... 🚀 [FORM SUBMIT] Submitting form... ✅ [FORM SUBMIT] Form form submitted successfully ⏳ [LOGIN] Waiting for networkidle after navigation... ⏳ [LOGIN] Waiting for auth state to be persisted... 🔍 [LOGIN] Verifying authentication state...  ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage) ✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...) 🧪 [PLAYLISTS] Running: Display playlists list 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766146985881: net::ERR_ABORTED 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766146986120: net::ERR_ABORTED  📊 [PLAYLISTS] === Final Verifications === 🔴 [PLAYLISTS] Console errors (6):  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [PLAYLISTS] Network errors (8):  - GET http://localhost:3000/src/index.css?t=1766146985881: 0  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403  - GET http://localhost:3000/src/index.css?t=1766146986120: 0  2) [chromium] › e2e/playlists.spec.ts:94:3 › Playlists CRUD › should display list of playlists ─── Error: Navigation to /playlists failed. Current URL: http://localhost:3000/login 105 | const currentUrl = page.url(); 106 | if (!currentUrl.includes('/playlists')) { > 107 | throw new Error(`Navigation to /playlists failed. Current URL: ${currentUrl}`); | ^ 108 | } 109 | }); 110 | at /home/senke/git/talas/veza/apps/web/e2e/playlists.spec.ts:107:15 at /home/senke/git/talas/veza/apps/web/e2e/playlists.spec.ts:103:5 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── test-results/playlists-Playlists-CRUD-should-display-list-of-playlists-chromium/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── test-results/playlists-Playlists-CRUD-should-display-list-of-playlists-chromium/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/playlists-Playlists-CRUD-should-display-list-of-playlists-chromium/error-context.md [14/38] [chromium] › e2e/playlists.spec.ts:124:3 › Playlists CRUD › should update playlist name and description [chromium] › e2e/playlists.spec.ts:124:3 › Playlists CRUD › should update playlist name and description 🔐 [LOGIN] Authenticating as user@example.com... ⏳ [LOGIN] Waiting 100ms before login (1766147002862ms since last login)... ⚡ [FORM SUBMIT] Forcing submission of form: form 🔍 [FORM SUBMIT] Waiting for form selector: form ⏳ [FORM SUBMIT] Waiting for React to update state... 🚀 [FORM SUBMIT] Submitting form... ✅ [FORM SUBMIT] Form form submitted successfully ⏳ [LOGIN] Waiting for networkidle after navigation... ⏳ [LOGIN] Waiting for auth state to be persisted... 🔍 [LOGIN] Verifying authentication state...  ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage) ✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...) 🧪 [PLAYLISTS] Running: Update playlist 🧭 [NAVIGATION] Navigating via href: /playlists... 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147005827: net::ERR_ABORTED ✅ [NAVIGATION] Successfully navigated directly to /playlists 📦 [MODAL] Opening modal via button: /create|créer|nouvelle/i  📊 [PLAYLISTS] === Final Verifications === 🔴 [PLAYLISTS] Console errors (6):  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [PLAYLISTS] Network errors (7):  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403  - GET http://localhost:3000/src/index.css?t=1766147005827: 0  3) [chromium] › e2e/playlists.spec.ts:124:3 › Playlists CRUD › should update playlist name and description Error: expect(locator).toBeVisible() failed Locator: locator('button').filter({ hasText: /create|créer|nouvelle/i }).first() Expected: visible Timeout: 10000ms Error: element(s) not found Call log:  - Expect "toBeVisible" with timeout 10000ms  - waiting for locator('button').filter({ hasText: /create|créer|nouvelle/i }).first() at utils/test-helpers.ts:784 782 | } 783 | > 784 | await expect(button).toBeVisible({ timeout: 10000 }); | ^ 785 | await button.click(); 786 | 787 | // Attendre que la modal soit visible at openModal (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:784:24) at /home/senke/git/talas/veza/apps/web/e2e/playlists.spec.ts:129:5 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── test-results/playlists-Playlists-CRUD-s-16421-aylist-name-and-description-chromium/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── test-results/playlists-Playlists-CRUD-s-16421-aylist-name-and-description-chromium/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/playlists-Playlists-CRUD-s-16421-aylist-name-and-description-chromium/error-context.md [15/38] [chromium] › e2e/playlists.spec.ts:187:3 › Playlists CRUD › should add track to playlist [chromium] › e2e/playlists.spec.ts:187:3 › Playlists CRUD › should add track to playlist 🔐 [LOGIN] Authenticating as user@example.com... ⏳ [LOGIN] Waiting 100ms before login (1766147027421ms since last login)... ⚡ [FORM SUBMIT] Forcing submission of form: form 🔍 [FORM SUBMIT] Waiting for form selector: form ⏳ [FORM SUBMIT] Waiting for React to update state... 🚀 [FORM SUBMIT] Submitting form... ✅ [FORM SUBMIT] Form form submitted successfully ⏳ [LOGIN] Waiting for networkidle after navigation... ⏳ [LOGIN] Waiting for auth state to be persisted... 🔍 [LOGIN] Verifying authentication state...  ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage) ✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...) 🧪 [PLAYLISTS] Running: Add track to playlist 🧭 [NAVIGATION] Navigating via href: /playlists... 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147030175: net::ERR_ABORTED 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147030459: net::ERR_ABORTED ✅ [NAVIGATION] Successfully navigated directly to /playlists 📦 [MODAL] Opening modal via button: /create|créer|nouvelle/i  📊 [PLAYLISTS] === Final Verifications === 🔴 [PLAYLISTS] Console errors (6):  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [PLAYLISTS] Network errors (8):  - GET http://localhost:3000/src/index.css?t=1766147030175: 0  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403  - GET http://localhost:3000/src/index.css?t=1766147030459: 0  4) [chromium] › e2e/playlists.spec.ts:187:3 › Playlists CRUD › should add track to playlist ────── Error: expect(locator).toBeVisible() failed Locator: locator('button').filter({ hasText: /create|créer|nouvelle/i }).first() Expected: visible Timeout: 10000ms Error: element(s) not found Call log:  - Expect "toBeVisible" with timeout 10000ms  - waiting for locator('button').filter({ hasText: /create|créer|nouvelle/i }).first() at utils/test-helpers.ts:784 782 | } 783 | > 784 | await expect(button).toBeVisible({ timeout: 10000 }); | ^ 785 | await button.click(); 786 | 787 | // Attendre que la modal soit visible at openModal (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:784:24) at /home/senke/git/talas/veza/apps/web/e2e/playlists.spec.ts:192:5 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── test-results/playlists-Playlists-CRUD-should-add-track-to-playlist-chromium/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── test-results/playlists-Playlists-CRUD-should-add-track-to-playlist-chromium/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/playlists-Playlists-CRUD-should-add-track-to-playlist-chromium/error-context.md [16/38] [chromium] › e2e/playlists.spec.ts:247:3 › Playlists CRUD › should delete playlist successfully [chromium] › e2e/playlists.spec.ts:247:3 › Playlists CRUD › should delete playlist successfully 🔐 [LOGIN] Authenticating as user@example.com... ⏳ [LOGIN] Waiting 100ms before login (1766147052060ms since last login)... ⚡ [FORM SUBMIT] Forcing submission of form: form 🔍 [FORM SUBMIT] Waiting for form selector: form ⏳ [FORM SUBMIT] Waiting for React to update state... 🚀 [FORM SUBMIT] Submitting form... ✅ [FORM SUBMIT] Form form submitted successfully ⏳ [LOGIN] Waiting for networkidle after navigation... ⏳ [LOGIN] Waiting for auth state to be persisted... 🔍 [LOGIN] Verifying authentication state...  ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage) ✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...) 🧪 [PLAYLISTS] Running: Delete playlist 🧭 [NAVIGATION] Navigating via href: /playlists... 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147054821: net::ERR_ABORTED 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147055083: net::ERR_ABORTED ✅ [NAVIGATION] Successfully navigated directly to /playlists 📦 [MODAL] Opening modal via button: /create|créer|nouvelle/i  📊 [PLAYLISTS] === Final Verifications === 🔴 [PLAYLISTS] Console errors (6):  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [PLAYLISTS] Network errors (8):  - GET http://localhost:3000/src/index.css?t=1766147054821: 0  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403  - GET http://localhost:3000/src/index.css?t=1766147055083: 0  5) [chromium] › e2e/playlists.spec.ts:247:3 › Playlists CRUD › should delete playlist successfully Error: expect(locator).toBeVisible() failed Locator: locator('button').filter({ hasText: /create|créer|nouvelle/i }).first() Expected: visible Timeout: 10000ms Error: element(s) not found Call log:  - Expect "toBeVisible" with timeout 10000ms  - waiting for locator('button').filter({ hasText: /create|créer|nouvelle/i }).first() at utils/test-helpers.ts:784 782 | } 783 | > 784 | await expect(button).toBeVisible({ timeout: 10000 }); | ^ 785 | await button.click(); 786 | 787 | // Attendre que la modal soit visible at openModal (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:784:24) at /home/senke/git/talas/veza/apps/web/e2e/playlists.spec.ts:252:5 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── test-results/playlists-Playlists-CRUD-should-delete-playlist-successfully-chromium/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── test-results/playlists-Playlists-CRUD-should-delete-playlist-successfully-chromium/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/playlists-Playlists-CRUD-should-delete-playlist-successfully-chromium/error-context.md [17/38] [chromium] › e2e/playlists.spec.ts:309:3 › Playlists CRUD › should display empty state for new playlist [chromium] › e2e/playlists.spec.ts:309:3 › Playlists CRUD › should display empty state for new playlist 🔐 [LOGIN] Authenticating as user@example.com... ⏳ [LOGIN] Waiting 100ms before login (1766147076705ms since last login)... ⚡ [FORM SUBMIT] Forcing submission of form: form 🔍 [FORM SUBMIT] Waiting for form selector: form ⏳ [FORM SUBMIT] Waiting for React to update state... 🚀 [FORM SUBMIT] Submitting form... ✅ [FORM SUBMIT] Form form submitted successfully ⏳ [LOGIN] Waiting for networkidle after navigation... ⏳ [LOGIN] Waiting for auth state to be persisted... 🔍 [LOGIN] Verifying authentication state...  ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage) ✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...) 🧪 [PLAYLISTS] Running: Empty playlist state 🧭 [NAVIGATION] Navigating via href: /playlists... 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147079427: net::ERR_ABORTED 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147079678: net::ERR_ABORTED ✅ [NAVIGATION] Successfully navigated directly to /playlists 📦 [MODAL] Opening modal via button: /create|créer|nouvelle/i  📊 [PLAYLISTS] === Final Verifications === 🔴 [PLAYLISTS] Console errors (6):  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [PLAYLISTS] Network errors (8):  - GET http://localhost:3000/src/index.css?t=1766147079427: 0  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403  - GET http://localhost:3000/src/index.css?t=1766147079678: 0  6) [chromium] › e2e/playlists.spec.ts:309:3 › Playlists CRUD › should display empty state for new playlist Error: expect(locator).toBeVisible() failed Locator: locator('button').filter({ hasText: /create|créer|nouvelle/i }).first() Expected: visible Timeout: 10000ms Error: element(s) not found Call log:  - Expect "toBeVisible" with timeout 10000ms  - waiting for locator('button').filter({ hasText: /create|créer|nouvelle/i }).first() at utils/test-helpers.ts:784 782 | } 783 | > 784 | await expect(button).toBeVisible({ timeout: 10000 }); | ^ 785 | await button.click(); 786 | 787 | // Attendre que la modal soit visible at openModal (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:784:24) at /home/senke/git/talas/veza/apps/web/e2e/playlists.spec.ts:314:5 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── test-results/playlists-Playlists-CRUD-s-b545d-mpty-state-for-new-playlist-chromium/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── test-results/playlists-Playlists-CRUD-s-b545d-mpty-state-for-new-playlist-chromium/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/playlists-Playlists-CRUD-s-b545d-mpty-state-for-new-playlist-chromium/error-context.md [18/38] [chromium] › e2e/playlists.spec.ts:347:3 › Playlists CRUD › should search playlists by name [chromium] › e2e/playlists.spec.ts:347:3 › Playlists CRUD › should search playlists by name 🔐 [LOGIN] Authenticating as user@example.com... ⏳ [LOGIN] Waiting 100ms before login (1766147101338ms since last login)... ⚡ [FORM SUBMIT] Forcing submission of form: form 🔍 [FORM SUBMIT] Waiting for form selector: form ⏳ [FORM SUBMIT] Waiting for React to update state... 🚀 [FORM SUBMIT] Submitting form... ✅ [FORM SUBMIT] Form form submitted successfully ⏳ [LOGIN] Waiting for networkidle after navigation... ⏳ [LOGIN] Waiting for auth state to be persisted... 🔍 [LOGIN] Verifying authentication state...  ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage) ✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...) 🧪 [PLAYLISTS] Running: Search playlists 🧭 [NAVIGATION] Navigating via href: /playlists... 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147104076: net::ERR_ABORTED 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147104374: net::ERR_ABORTED ✅ [NAVIGATION] Successfully navigated directly to /playlists 📦 [MODAL] Opening modal via button: /create|créer|nouvelle/i  📊 [PLAYLISTS] === Final Verifications === 🔴 [PLAYLISTS] Console errors (6):  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [PLAYLISTS] Network errors (8):  - GET http://localhost:3000/src/index.css?t=1766147104076: 0  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403  - GET http://localhost:3000/src/index.css?t=1766147104374: 0  7) [chromium] › e2e/playlists.spec.ts:347:3 › Playlists CRUD › should search playlists by name ─── Error: expect(locator).toBeVisible() failed Locator: locator('button').filter({ hasText: /create|créer|nouvelle/i }).first() Expected: visible Timeout: 10000ms Error: element(s) not found Call log:  - Expect "toBeVisible" with timeout 10000ms  - waiting for locator('button').filter({ hasText: /create|créer|nouvelle/i }).first() at utils/test-helpers.ts:784 782 | } 783 | > 784 | await expect(button).toBeVisible({ timeout: 10000 }); | ^ 785 | await button.click(); 786 | 787 | // Attendre que la modal soit visible at openModal (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:784:24) at /home/senke/git/talas/veza/apps/web/e2e/playlists.spec.ts:356:5 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── test-results/playlists-Playlists-CRUD-should-search-playlists-by-name-chromium/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── test-results/playlists-Playlists-CRUD-should-search-playlists-by-name-chromium/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/playlists-Playlists-CRUD-should-search-playlists-by-name-chromium/error-context.md [19/38] [chromium] › e2e/profile.spec.ts:40:3 › User Profile Management › should display user profile information [chromium] › e2e/profile.spec.ts:40:3 › User Profile Management › should display user profile information 🔐 [LOGIN] Authenticating as user@example.com... ⏳ [LOGIN] Waiting 100ms before login (1766147126007ms since last login)... ⚡ [FORM SUBMIT] Forcing submission of form: form 🔍 [FORM SUBMIT] Waiting for form selector: form ⏳ [FORM SUBMIT] Waiting for React to update state... 🚀 [FORM SUBMIT] Submitting form... ✅ [FORM SUBMIT] Form form submitted successfully ⏳ [LOGIN] Waiting for networkidle after navigation... ⏳ [LOGIN] Waiting for auth state to be persisted... 🔍 [LOGIN] Verifying authentication state...  ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage) ✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...) 🧪 [PROFILE] Running: Display profile ✅ [PROFILE] Profile page displayed successfully  📊 [PROFILE] === Final Verifications === ✅ [PROFILE] No console errors ✅ [PROFILE] No network errors [20/38] [chromium] › e2e/profile.spec.ts:106:3 › User Profile Management › should update username successfully [chromium] › e2e/profile.spec.ts:106:3 › User Profile Management › should update username successfully 🔐 [LOGIN] Authenticating as user@example.com... ⏳ [LOGIN] Waiting 96ms before login to avoid rate limiting... ⚡ [FORM SUBMIT] Forcing submission of form: form 🔍 [FORM SUBMIT] Waiting for form selector: form ⏳ [FORM SUBMIT] Waiting for React to update state... 🚀 [FORM SUBMIT] Submitting form... ✅ [FORM SUBMIT] Form form submitted successfully ⏳ [LOGIN] Waiting for networkidle after navigation... ⏳ [LOGIN] Waiting for auth state to be persisted... 🔍 [LOGIN] Verifying authentication state...  ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage) ✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...) 🧪 [PROFILE] Running: Update username 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147131651: net::ERR_ABORTED 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [REQUEST FAILED] GET http://localhost:3000/src/features/auth/components/LoginForm.tsx?t=1766146873279: net::ERR_ABORTED 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147132058: net::ERR_ABORTED  📊 [PROFILE] === Final Verifications === 🔴 [PROFILE] Console errors (6):  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [PROFILE] Network errors (9):  - GET http://localhost:3000/src/index.css?t=1766147131651: 0  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403  - GET http://localhost:3000/src/features/auth/components/LoginForm.tsx?t=1766146873279: 0  - GET http://localhost:3000/src/index.css?t=1766147132058: 0  8) [chromium] › e2e/profile.spec.ts:106:3 › User Profile Management › should update username successfully Error: expect(locator).toBeVisible() failed Locator: locator('input#username, input[name="username"]').first() Expected: visible Timeout: 15000ms Error: element(s) not found Call log:  - Expect "toBeVisible" with timeout 15000ms  - waiting for locator('input#username, input[name="username"]').first() 114 | // Le champ username utilise id="username" dans ProfileForm 115 | const usernameField = page.locator('input#username, input[name="username"]').first(); > 116 | await expect(usernameField).toBeVisible({ timeout: 15000 }); | ^ 117 | 118 | // Si le champ est disabled (mode lecture), cliquer sur le bouton Edit 119 | const isDisabled = await usernameField.isDisabled().catch(() => false); at /home/senke/git/talas/veza/apps/web/e2e/profile.spec.ts:116:33 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── test-results/profile-User-Profile-Manag-9d6b5-pdate-username-successfully-chromium/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── test-results/profile-User-Profile-Manag-9d6b5-pdate-username-successfully-chromium/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/profile-User-Profile-Manag-9d6b5-pdate-username-successfully-chromium/error-context.md [21/38] [chromium] › e2e/profile.spec.ts:178:3 › User Profile Management › should update bio successfully [chromium] › e2e/profile.spec.ts:178:3 › User Profile Management › should update bio successfully 🔐 [LOGIN] Authenticating as user@example.com... ⏳ [LOGIN] Waiting 100ms before login (1766147148376ms since last login)... ⚡ [FORM SUBMIT] Forcing submission of form: form 🔍 [FORM SUBMIT] Waiting for form selector: form ⏳ [FORM SUBMIT] Waiting for React to update state... 🚀 [FORM SUBMIT] Submitting form... ✅ [FORM SUBMIT] Form form submitted successfully ⏳ [LOGIN] Waiting for networkidle after navigation... ⏳ [LOGIN] Waiting for auth state to be persisted... 🔍 [LOGIN] Verifying authentication state...  ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage) ✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...) 🧪 [PROFILE] Running: Update bio 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147151050: net::ERR_ABORTED 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) ℹ️ [PROFILE] Bio field not found, skipping test  📊 [PROFILE] === Final Verifications === 🔴 [PROFILE] Console errors (2):  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [PROFILE] Network errors (3):  - GET http://localhost:3000/src/index.css?t=1766147151050: 0  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147151332: net::ERR_ABORTED [22/38] [chromium] › e2e/profile.spec.ts:231:3 › User Profile Management › should change password successfully [chromium] › e2e/profile.spec.ts:231:3 › User Profile Management › should change password successfully 🔐 [LOGIN] Authenticating as user@example.com... ⏳ [LOGIN] Waiting 100ms before login (3006ms since last login)... ⚡ [FORM SUBMIT] Forcing submission of form: form 🔍 [FORM SUBMIT] Waiting for form selector: form ⏳ [FORM SUBMIT] Waiting for React to update state... 🚀 [FORM SUBMIT] Submitting form... ✅ [FORM SUBMIT] Form form submitted successfully ⏳ [LOGIN] Waiting for networkidle after navigation... ⏳ [LOGIN] Waiting for auth state to be persisted... 🔍 [LOGIN] Verifying authentication state...  ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage) ✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...) 🧪 [PROFILE] Running: Change password 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147154110: net::ERR_ABORTED 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) ℹ️ [PROFILE] Change password section not found, skipping test  📊 [PROFILE] === Final Verifications === 🔴 [PROFILE] Console errors (2):  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [PROFILE] Network errors (3):  - GET http://localhost:3000/src/index.css?t=1766147154110: 0  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [REQUEST FAILED] GET http://localhost:3000/login: net::ERR_ABORTED [23/38] [chromium] › e2e/profile.spec.ts:298:3 › User Profile Management › should upload profile avatar [chromium] › e2e/profile.spec.ts:298:3 › User Profile Management › should upload profile avatar 🔐 [LOGIN] Authenticating as user@example.com... ⏳ [LOGIN] Waiting 124ms before login to avoid rate limiting... ⚡ [FORM SUBMIT] Forcing submission of form: form 🔍 [FORM SUBMIT] Waiting for form selector: form ⏳ [FORM SUBMIT] Waiting for React to update state... 🚀 [FORM SUBMIT] Submitting form... ✅ [FORM SUBMIT] Form form submitted successfully 🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/login: 429 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 429 (Too Many Requests) 🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/login: 429 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 429 (Too Many Requests) 🔴 [CONSOLE ERROR] Login error: {code: 429, message: Trop de requêtes. Veuillez patienter avant de réessayer., timestamp: 2025-12-19T12:26:01.551Z, details: undefined, retry_after: undefined}  📊 [PROFILE] === Final Verifications === 🔴 [PROFILE] Console errors (3):  - Failed to load resource: the server responded with a status of 429 (Too Many Requests)  - Failed to load resource: the server responded with a status of 429 (Too Many Requests)  - Login error: {code: 429, message: Trop de requêtes. Veuillez patienter avant de réessayer., timestamp: 2025-12-19T12:26:01.551Z, details: undefined, retry_after: undefined} 🔴 [PROFILE] Network errors (2):  - POST http://127.0.0.1:8080/api/v1/auth/login: 429  - POST http://127.0.0.1:8080/api/v1/auth/login: 429  9) [chromium] › e2e/profile.spec.ts:298:3 › User Profile Management › should upload profile avatar TimeoutError: page.waitForURL: Timeout 20000ms exceeded. =========================== logs =========================== waiting for navigation until "load" ============================================================ at utils/test-helpers.ts:225 223 | 224 | // Attendre la navigation après login > 225 | const navigationPromise = page.waitForURL( | ^ 226 | (url) => url.pathname === '/dashboard' || url.pathname === '/', 227 | { timeout: 20000 } 228 | ); at loginAsUser (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:225:34) at /home/senke/git/talas/veza/apps/web/e2e/profile.spec.ts:34:5 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── test-results/profile-User-Profile-Management-should-upload-profile-avatar-chromium/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── test-results/profile-User-Profile-Management-should-upload-profile-avatar-chromium/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/profile-User-Profile-Management-should-upload-profile-avatar-chromium/error-context.md [24/38] [chromium] › e2e/profile.spec.ts:357:3 › User Profile Management › should validate username length [chromium] › e2e/profile.spec.ts:357:3 › User Profile Management › should validate username length 🔐 [LOGIN] Authenticating as user@example.com... ⏳ [LOGIN] Waiting 100ms before login (1766147177045ms since last login)... ⚡ [FORM SUBMIT] Forcing submission of form: form 🔍 [FORM SUBMIT] Waiting for form selector: form ⏳ [FORM SUBMIT] Waiting for React to update state... 🚀 [FORM SUBMIT] Submitting form... ✅ [FORM SUBMIT] Form form submitted successfully ⏳ [LOGIN] Waiting for networkidle after navigation... ⏳ [LOGIN] Waiting for auth state to be persisted... 🔍 [LOGIN] Verifying authentication state...  ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage) ✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...) 🧪 [PROFILE] Running: Username validation 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147179757: net::ERR_ABORTED 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147180049: net::ERR_ABORTED  📊 [PROFILE] === Final Verifications === 🔴 [PROFILE] Console errors (6):  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [PROFILE] Network errors (8):  - GET http://localhost:3000/src/index.css?t=1766147179757: 0  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403  - GET http://localhost:3000/src/index.css?t=1766147180049: 0  10) [chromium] › e2e/profile.spec.ts:357:3 › User Profile Management › should validate username length Error: expect(locator).toBeVisible() failed Locator: locator('input#username, input[name="username"]').first() Expected: visible Timeout: 15000ms Error: element(s) not found Call log:  - Expect "toBeVisible" with timeout 15000ms  - waiting for locator('input#username, input[name="username"]').first() 364 | // Attendre que le champ username soit visible 365 | const usernameField = page.locator('input#username, input[name="username"]').first(); > 366 | await expect(usernameField).toBeVisible({ timeout: 15000 }); | ^ 367 | 368 | // Si disabled, activer le mode édition 369 | const isDisabled = await usernameField.isDisabled().catch(() => false); at /home/senke/git/talas/veza/apps/web/e2e/profile.spec.ts:366:33 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── test-results/profile-User-Profile-Manag-b2bef-ld-validate-username-length-chromium/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── test-results/profile-User-Profile-Manag-b2bef-ld-validate-username-length-chromium/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/profile-User-Profile-Manag-b2bef-ld-validate-username-length-chromium/error-context.md [25/38] [chromium] › e2e/profile.spec.ts:404:3 › User Profile Management › should display account information [chromium] › e2e/profile.spec.ts:404:3 › User Profile Management › should display account information 🔐 [LOGIN] Authenticating as user@example.com... ⏳ [LOGIN] Waiting 100ms before login (1766147196334ms since last login)... ⚡ [FORM SUBMIT] Forcing submission of form: form 🔍 [FORM SUBMIT] Waiting for form selector: form ⏳ [FORM SUBMIT] Waiting for React to update state... 🚀 [FORM SUBMIT] Submitting form... ✅ [FORM SUBMIT] Form form submitted successfully ⏳ [LOGIN] Waiting for networkidle after navigation... ⏳ [LOGIN] Waiting for auth state to be persisted... 🔍 [LOGIN] Verifying authentication state...  ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage) ✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...) 🧪 [PROFILE] Running: Display account info 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147199024: net::ERR_ABORTED 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) ℹ️ [PROFILE] Additional account info not displayed  📊 [PROFILE] === Final Verifications === 🔴 [PROFILE] Console errors (2):  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [PROFILE] Network errors (3):  - GET http://localhost:3000/src/index.css?t=1766147199024: 0  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [REQUEST FAILED] GET http://localhost:3000/login: net::ERR_ABORTED [26/38] [chromium] › e2e/profile.spec.ts:434:3 › User Profile Management › should navigate to advanced settings [chromium] › e2e/profile.spec.ts:434:3 › User Profile Management › should navigate to advanced settings 🔐 [LOGIN] Authenticating as user@example.com... ⏳ [LOGIN] Waiting 61ms before login to avoid rate limiting... ⚡ [FORM SUBMIT] Forcing submission of form: form 🔍 [FORM SUBMIT] Waiting for form selector: form ⏳ [FORM SUBMIT] Waiting for React to update state... 🚀 [FORM SUBMIT] Submitting form... ✅ [FORM SUBMIT] Form form submitted successfully ⏳ [LOGIN] Waiting for networkidle after navigation... ⏳ [LOGIN] Waiting for auth state to be persisted... 🔍 [LOGIN] Verifying authentication state...  ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage) ✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...) 🧪 [PROFILE] Running: Navigate to settings 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147201932: net::ERR_ABORTED 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) ℹ️ [PROFILE] Advanced settings link not found  📊 [PROFILE] === Final Verifications === 🔴 [PROFILE] Console errors (2):  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [PROFILE] Network errors (3):  - GET http://localhost:3000/src/index.css?t=1766147201932: 0  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [REQUEST FAILED] GET http://localhost:3000/login: net::ERR_ABORTED [27/38] [chromium] › e2e/qa-audit.spec.ts:75:3 › QA E2E Audit - Veza Frontend › 1. Health Check - Backend API [28/38] [chromium] › e2e/qa-audit.spec.ts:85:3 › QA E2E Audit - Veza Frontend › 2.1. Register - Test complet [29/38] [chromium] › e2e/qa-audit.spec.ts:134:3 › QA E2E Audit - Veza Frontend › 2.2. Register - Validation errors [30/38] [chromium] › e2e/qa-audit.spec.ts:163:3 › QA E2E Audit - Veza Frontend › 2.3. Login - Test complet [31/38] [chromium] › e2e/qa-audit.spec.ts:226:3 › QA E2E Audit - Veza Frontend › 3. Navigation - Toutes les pages [32/38] [chromium] › e2e/qa-audit.spec.ts:264:3 › QA E2E Audit - Veza Frontend › 4. Buttons and Actions - Dashboard [33/38] [chromium] › e2e/qa-audit.spec.ts:287:3 › QA E2E Audit - Veza Frontend › 5. Logout [chromium] › e2e/qa-audit.spec.ts:287:3 › QA E2E Audit - Veza Frontend › 5. Logout === QA AUDIT RESULTS === ✅ Backend API Health: pass ❌ Register - Valid data: fail  Error: Status 400: {"success":false,"error":{"code":2000,"message":"Validation failed","details":[{"field":"password","message":"password must be at least 12 characters"}],"request_id":"476f2394-a527-4db3-95fd-0f48f5874a17","timestamp":"2025-12-19T12:26:43Z"}} ✅ Register - Email validation: pass ✅ Register - Password validation: pass ❌ Login - Wrong password: fail  Error: Expected 401, got 403 ❌ Login - Valid credentials: fail  Error: Status 403: {"success":false,"error":{"code":1004,"message":"Invalid credentials","request_id":"62f609bf-efeb-4ce4-ae4c-eecc45e62d95","timestamp":"2025-12-19T12:26:45Z"}} ❌ Navigation - Dashboard: fail  Error: Console errors: 3, Network errors: 2 ❌ Navigation - Chat: fail ❌ Navigation - Library: fail ❌ Navigation - Profile: fail ❌ Navigation - Settings: fail ❌ Navigation - Marketplace: fail ✅ Dashboard - Buttons: pass [34/38] [chromium] › e2e/track_lifecycle.spec.ts:37:5 › Track Lifecycle - CRUD › Complete Track Lifecycle: Upload -> Verify -> Delete [chromium] › e2e/track_lifecycle.spec.ts:37:5 › Track Lifecycle - CRUD › Complete Track Lifecycle: Upload -> Verify -> Delete 🔍 [LIFECYCLE] Step 1: Login 🔐 [LOGIN] Authenticating as user@example.com... ⏳ [LOGIN] Waiting 100ms before login (22649ms since last login)... ⚡ [FORM SUBMIT] Forcing submission of form: form 🔍 [FORM SUBMIT] Waiting for form selector: form ⏳ [FORM SUBMIT] Waiting for React to update state... 🚀 [FORM SUBMIT] Submitting form... ✅ [FORM SUBMIT] Form form submitted successfully 🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/login: 429 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 429 (Too Many Requests) 🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/login: 429 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 429 (Too Many Requests) 🔴 [CONSOLE ERROR] Login error: {code: 429, message: Trop de requêtes. Veuillez patienter avant de réessayer., timestamp: 2025-12-19T12:27:09.182Z, details: undefined, retry_after: undefined}  📊 [LIFECYCLE] === Final Verifications === 🔴 [LIFECYCLE] Console errors (3):  - Failed to load resource: the server responded with a status of 429 (Too Many Requests)  - Failed to load resource: the server responded with a status of 429 (Too Many Requests)  - Login error: {code: 429, message: Trop de requêtes. Veuillez patienter avant de réessayer., timestamp: 2025-12-19T12:27:09.182Z, details: undefined, retry_after: undefined} 🔴 [LIFECYCLE] Network errors (2):  - POST http://127.0.0.1:8080/api/v1/auth/login: 429  - POST http://127.0.0.1:8080/api/v1/auth/login: 429  11) [chromium] › e2e/track_lifecycle.spec.ts:37:5 › Track Lifecycle - CRUD › Complete Track Lifecycle: Upload -> Verify -> Delete TimeoutError: page.waitForURL: Timeout 20000ms exceeded. =========================== logs =========================== waiting for navigation until "load" ============================================================ at utils/test-helpers.ts:225 223 | 224 | // Attendre la navigation après login > 225 | const navigationPromise = page.waitForURL( | ^ 226 | (url) => url.pathname === '/dashboard' || url.pathname === '/', 227 | { timeout: 20000 } 228 | ); at loginAsUser (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:225:34) at /home/senke/git/talas/veza/apps/web/e2e/track_lifecycle.spec.ts:40:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── test-results/track_lifecycle-Track-Life-b1939-le-Upload---Verify---Delete-chromium/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── test-results/track_lifecycle-Track-Life-b1939-le-Upload---Verify---Delete-chromium/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/track_lifecycle-Track-Life-b1939-le-Upload---Verify---Delete-chromium/error-context.md [35/38] [chromium] › e2e/tracks_upload_chunked.spec.ts:47:3 › Chunked Upload Flow › should upload large file (15 MB) using chunked upload [chromium] › e2e/tracks_upload_chunked.spec.ts:47:3 › Chunked Upload Flow › should upload large file (15 MB) using chunked upload 🧪 [CHUNKED UPLOAD] Running: Large file upload with chunking 🔍 [CHUNKED UPLOAD] Step 1: Login 🔐 [LOGIN] Authenticating as user@example.com... ⏳ [LOGIN] Waiting 100ms before login (1766147244650ms since last login)... ⚡ [FORM SUBMIT] Forcing submission of form: form 🔍 [FORM SUBMIT] Waiting for form selector: form ⏳ [FORM SUBMIT] Waiting for React to update state... 🚀 [FORM SUBMIT] Submitting form... ✅ [FORM SUBMIT] Form form submitted successfully ⏳ [LOGIN] Waiting for networkidle after navigation... ⏳ [LOGIN] Waiting for auth state to be persisted... 🔍 [LOGIN] Verifying authentication state...  ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage) ✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...) 🔍 [CHUNKED UPLOAD] Step 2: Navigate to /library 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147248337: net::ERR_ABORTED 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147248607: net::ERR_ABORTED 🔍 [CHUNKED UPLOAD] Step 3: Open upload modal 📦 [MODAL] Opening modal via button: /upload/i  📊 [CHUNKED UPLOAD] === Final Verifications === 🔴 [CHUNKED UPLOAD] Console errors (6):  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [CHUNKED UPLOAD] Network errors (8):  - GET http://localhost:3000/src/index.css?t=1766147248337: 0  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403  - GET http://localhost:3000/src/index.css?t=1766147248607: 0  12) [chromium] › e2e/tracks_upload_chunked.spec.ts:47:3 › Chunked Upload Flow › should upload large file (15 MB) using chunked upload Error: expect(locator).toBeVisible() failed Locator: locator('button').filter({ hasText: /upload/i }).first() Expected: visible Timeout: 10000ms Error: element(s) not found Call log:  - Expect "toBeVisible" with timeout 10000ms  - waiting for locator('button').filter({ hasText: /upload/i }).first() at utils/test-helpers.ts:784 782 | } 783 | > 784 | await expect(button).toBeVisible({ timeout: 10000 }); | ^ 785 | await button.click(); 786 | 787 | // Attendre que la modal soit visible at openModal (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:784:24) at /home/senke/git/talas/veza/apps/web/e2e/tracks_upload_chunked.spec.ts:95:5 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── test-results/tracks_upload_chunked-Chun-a2080--15-MB-using-chunked-upload-chromium/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── test-results/tracks_upload_chunked-Chun-a2080--15-MB-using-chunked-upload-chromium/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/tracks_upload_chunked-Chun-a2080--15-MB-using-chunked-upload-chromium/error-context.md [36/38] [chromium] › e2e/tracks_upload_chunked.spec.ts:281:3 › Chunked Upload Flow › should handle very large file (25 MB) with chunking [chromium] › e2e/tracks_upload_chunked.spec.ts:281:3 › Chunked Upload Flow › should handle very large file (25 MB) with chunking 🧪 [CHUNKED UPLOAD] Running: Very large file upload (25 MB) 🔐 [LOGIN] Authenticating as user@example.com... ⏳ [LOGIN] Waiting 100ms before login (1766147260572ms since last login)... ⚡ [FORM SUBMIT] Forcing submission of form: form 🔍 [FORM SUBMIT] Waiting for form selector: form ⏳ [FORM SUBMIT] Waiting for React to update state... 🚀 [FORM SUBMIT] Submitting form... ✅ [FORM SUBMIT] Form form submitted successfully ⏳ [LOGIN] Waiting for networkidle after navigation... ⏳ [LOGIN] Waiting for auth state to be persisted... 🔍 [LOGIN] Verifying authentication state...  ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage) ✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147264432: net::ERR_ABORTED 📦 [MODAL] Opening modal via button: /upload/i  📊 [CHUNKED UPLOAD] === Final Verifications === 🔴 [CHUNKED UPLOAD] Console errors (6):  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [CHUNKED UPLOAD] Network errors (7):  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403  - GET http://localhost:3000/src/index.css?t=1766147264432: 0  13) [chromium] › e2e/tracks_upload_chunked.spec.ts:281:3 › Chunked Upload Flow › should handle very large file (25 MB) with chunking Error: expect(locator).toBeVisible() failed Locator: locator('button').filter({ hasText: /upload/i }).first() Expected: visible Timeout: 10000ms Error: element(s) not found Call log:  - Expect "toBeVisible" with timeout 10000ms  - waiting for locator('button').filter({ hasText: /upload/i }).first() at utils/test-helpers.ts:784 782 | } 783 | > 784 | await expect(button).toBeVisible({ timeout: 10000 }); | ^ 785 | await button.click(); 786 | 787 | // Attendre que la modal soit visible at openModal (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:784:24) at /home/senke/git/talas/veza/apps/web/e2e/tracks_upload_chunked.spec.ts:305:5 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── test-results/tracks_upload_chunked-Chun-88fad-ge-file-25-MB-with-chunking-chromium/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── test-results/tracks_upload_chunked-Chun-88fad-ge-file-25-MB-with-chunking-chromium/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/tracks_upload_chunked-Chun-88fad-ge-file-25-MB-with-chunking-chromium/error-context.md [37/38] [chromium] › e2e/tracks_upload_chunked.spec.ts:364:3 › Chunked Upload Flow › should use direct upload for small files (< 10 MB) [chromium] › e2e/tracks_upload_chunked.spec.ts:364:3 › Chunked Upload Flow › should use direct upload for small files (< 10 MB) 🧪 [CHUNKED UPLOAD] Running: Small file direct upload 🔐 [LOGIN] Authenticating as user@example.com... ⏳ [LOGIN] Waiting 100ms before login (1766147276319ms since last login)... ⚡ [FORM SUBMIT] Forcing submission of form: form 🔍 [FORM SUBMIT] Waiting for form selector: form ⏳ [FORM SUBMIT] Waiting for React to update state... 🚀 [FORM SUBMIT] Submitting form... ✅ [FORM SUBMIT] Form form submitted successfully ⏳ [LOGIN] Waiting for networkidle after navigation... ⏳ [LOGIN] Waiting for auth state to be persisted... 🔍 [LOGIN] Verifying authentication state...  ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage) ✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147280197: net::ERR_ABORTED 📦 [MODAL] Opening modal via button: /upload/i  📊 [CHUNKED UPLOAD] === Final Verifications === 🔴 [CHUNKED UPLOAD] Console errors (6):  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [CHUNKED UPLOAD] Network errors (7):  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - GET http://127.0.0.1:8080/api/v1/auth/me: 401  - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403  - GET http://localhost:3000/src/index.css?t=1766147280197: 0  14) [chromium] › e2e/tracks_upload_chunked.spec.ts:364:3 › Chunked Upload Flow › should use direct upload for small files (< 10 MB) Error: expect(locator).toBeVisible() failed Locator: locator('button').filter({ hasText: /upload/i }).first() Expected: visible Timeout: 10000ms Error: element(s) not found Call log:  - Expect "toBeVisible" with timeout 10000ms  - waiting for locator('button').filter({ hasText: /upload/i }).first() at utils/test-helpers.ts:784 782 | } 783 | > 784 | await expect(button).toBeVisible({ timeout: 10000 }); | ^ 785 | await button.click(); 786 | 787 | // Attendre que la modal soit visible at openModal (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:784:24) at /home/senke/git/talas/veza/apps/web/e2e/tracks_upload_chunked.spec.ts:387:5 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── test-results/tracks_upload_chunked-Chun-0b307-load-for-small-files-10-MB--chromium/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── test-results/tracks_upload_chunked-Chun-0b307-load-for-small-files-10-MB--chromium/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/tracks_upload_chunked-Chun-0b307-load-for-small-files-10-MB--chromium/error-context.md [38/38] [chromium] › e2e/upload_flow.spec.ts:36:3 › Upload Flow - Happy Path › Complete Upload Flow [chromium] › e2e/upload_flow.spec.ts:36:3 › Upload Flow - Happy Path › Complete Upload Flow 🔍 [UPLOAD TEST] Step 1: Logging in... 🔐 [LOGIN] Authenticating as user@example.com... ⏳ [LOGIN] Waiting 100ms before login (1766147292059ms since last login)... ⚡ [FORM SUBMIT] Forcing submission of form: form 🔍 [FORM SUBMIT] Waiting for form selector: form ⏳ [FORM SUBMIT] Waiting for React to update state... 🚀 [FORM SUBMIT] Submitting form... ✅ [FORM SUBMIT] Form form submitted successfully ⏳ [LOGIN] Waiting for networkidle after navigation... ⏳ [LOGIN] Waiting for auth state to be persisted... 🔍 [LOGIN] Verifying authentication state...  ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage) ✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...) 🔍 [UPLOAD TEST] Step 2: Navigating to /library... 🧭 [NAVIGATION] Navigating via href: /library... ✅ [NAVIGATION] Successfully navigated via href: /library 🔍 [UPLOAD TEST] Step 3: Opening upload modal... 📦 [MODAL] Opening modal via button: /upload/i 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/playlists?page=20&limit=0: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/playlists?page=20&limit=0: 401 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) ✅ [MODAL] Modal opened successfully 🔍 [UPLOAD TEST] Step 4: Selecting and uploading file... ✅ [UPLOAD TEST] File selected with mimeType audio/mpeg ✅ [UPLOAD TEST] File displayed in modal 🔍 [UPLOAD TEST] Step 5: Filling metadata... ✏️ [FILL] Filling field input[id="title"] with value: Test Song ✅ [FILL] Field input[id="title"] filled successfully ✏️ [FILL] Filling field input[id="artist"] with value: QA Bot ✅ [FILL] Field input[id="artist"] filled successfully ✅ [UPLOAD TEST] Metadata filled 🔍 [UPLOAD TEST] Step 6: Starting upload... ⚡ [FORM SUBMIT] Forcing submission of form: form#upload-track-form 🔍 [FORM SUBMIT] Waiting for form selector: form#upload-track-form ⏳ [FORM SUBMIT] Waiting for React to update state... 🚀 [FORM SUBMIT] Submitting form... ✅ [FORM SUBMIT] Form form#upload-track-form submitted successfully 🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/tracks: 401 📡 [UPLOAD TEST] Upload response status: 401 🔔 [TOAST] Waiting for success message... 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) 🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403 🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147296671: net::ERR_ABORTED 🔍 [UPLOAD TEST] Step 7: Verifying track appears in list... 🔴 [REQUEST FAILED] GET http://localhost:3000/src/main.tsx?t=1766147296671: net::ERR_ABORTED 🔴 [REQUEST FAILED] GET http://localhost:3000/@react-refresh: net::ERR_ABORTED 🔴 [REQUEST FAILED] GET http://localhost:3000/@vite/client: net::ERR_ABORTED  📊 [UPLOAD TEST] === Final Verifications === 🔴 [UPLOAD TEST] Console errors (4):  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 401 (Unauthorized)  - Failed to load resource: the server responded with a status of 403 (Forbidden) 🔴 [UPLOAD TEST] Network errors (8):  - GET http://127.0.0.1:8080/api/v1/playlists?page=20&limit=0: 401  - GET http://127.0.0.1:8080/api/v1/playlists?page=20&limit=0: 401  - POST http://127.0.0.1:8080/api/v1/tracks: 401  - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403  - GET http://localhost:3000/src/index.css?t=1766147296671: 0  - GET http://localhost:3000/src/main.tsx?t=1766147296671: 0  - GET http://localhost:3000/@react-refresh: 0  - GET http://localhost:3000/@vite/client: 0  15) [chromium] › e2e/upload_flow.spec.ts:36:3 › Upload Flow - Happy Path › Complete Upload Flow ── Error: expect(locator).toBeVisible() failed Locator: locator('table, [role="table"], .track-list').first() Expected: visible Timeout: 10000ms Error: element(s) not found Call log:  - Expect "toBeVisible" with timeout 10000ms  - waiting for locator('table, [role="table"], .track-list').first() 144 | // Vérifier que la piste apparaît 145 | const trackList = page.locator('table, [role="table"], .track-list').first(); > 146 | await expect(trackList).toBeVisible({ timeout: 10000 }); | ^ 147 | 148 | const newTrack = page.locator('text=Test Song, text=test-audio').first(); 149 | at /home/senke/git/talas/veza/apps/web/e2e/upload_flow.spec.ts:146:29 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── test-results/upload_flow-Upload-Flow---Happy-Path-Complete-Upload-Flow-chromium/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── test-results/upload_flow-Upload-Flow---Happy-Path-Complete-Upload-Flow-chromium/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/upload_flow-Upload-Flow---Happy-Path-Complete-Upload-Flow-chromium/error-context.md  15 failed [chromium] › e2e/playlists.spec.ts:44:3 › Playlists CRUD › should create a new playlist successfully [chromium] › e2e/playlists.spec.ts:94:3 › Playlists CRUD › should display list of playlists ──── [chromium] › e2e/playlists.spec.ts:124:3 › Playlists CRUD › should update playlist name and description [chromium] › e2e/playlists.spec.ts:187:3 › Playlists CRUD › should add track to playlist ─────── [chromium] › e2e/playlists.spec.ts:247:3 › Playlists CRUD › should delete playlist successfully [chromium] › e2e/playlists.spec.ts:309:3 › Playlists CRUD › should display empty state for new playlist [chromium] › e2e/playlists.spec.ts:347:3 › Playlists CRUD › should search playlists by name ──── [chromium] › e2e/profile.spec.ts:106:3 › User Profile Management › should update username successfully [chromium] › e2e/profile.spec.ts:298:3 › User Profile Management › should upload profile avatar [chromium] › e2e/profile.spec.ts:357:3 › User Profile Management › should validate username length [chromium] › e2e/track_lifecycle.spec.ts:37:5 › Track Lifecycle - CRUD › Complete Track Lifecycle: Upload -> Verify -> Delete [chromium] › e2e/tracks_upload_chunked.spec.ts:47:3 › Chunked Upload Flow › should upload large file (15 MB) using chunked upload [chromium] › e2e/tracks_upload_chunked.spec.ts:281:3 › Chunked Upload Flow › should handle very large file (25 MB) with chunking [chromium] › e2e/tracks_upload_chunked.spec.ts:364:3 › Chunked Upload Flow › should use direct upload for small files (< 10 MB) [chromium] › e2e/upload_flow.spec.ts:36:3 › Upload Flow - Happy Path › Complete Upload Flow ──── 1 skipped 22 passed (6.8m)  Serving HTML report at http://localhost:9323. Press Ctrl+C to quit.