> vault@0.1.0 dev > next dev --turbopack [@sentry/nextjs] DEPRECATION WARNING: automaticVercelMonitors is deprecated and will be removed in a future version. Use webpack.automaticVercelMonitors instead. (Not supported with Turbopack.) [@sentry/nextjs] DEPRECATION WARNING: reactComponentAnnotation is deprecated and will be removed in a future version. Use webpack.reactComponentAnnotation instead. (Not supported with Turbopack.) [@sentry/nextjs] DEPRECATION WARNING: automaticVercelMonitors is deprecated and will be removed in a future version. Use webpack.automaticVercelMonitors instead. (Not supported with Turbopack.) [@sentry/nextjs] DEPRECATION WARNING: reactComponentAnnotation is deprecated and will be removed in a future version. Use webpack.reactComponentAnnotation instead. (Not supported with Turbopack.) ▲ Next.js 15.5.12 (Turbopack) - Local: http://localhost:3000 - Network: http://192.168.1.225:3000 - Environments: .env.local - Experiments (use with caution): · serverActions · clientTraceMetadata ✓ Starting... ✓ Compiled instrumentation Node.js in 473ms ✓ Compiled instrumentation Edge in 151ms ✓ Compiled middleware in 80ms ✓ Ready in 1849ms ○ Compiling /login ... ✓ Compiled /login in 2.3s GET /login 200 in 2700ms ✓ Compiled /favicon.ico in 166ms GET /favicon.ico?favicon.0b3bf435.ico 200 in 428ms ○ Compiling /api/auth/[...all] ... ✓ Compiled /api/auth/[...all] in 715ms POST /api/auth/sign-in/social 200 in 2621ms GET /api/auth/callback/google?state=1ytLvxWE8WL44ljrBpjooa5ktCWdMu0l&code=4/0ASc3gC0LWU5y8kD2WHo1zGejy6ln-RUjUSLcGVGrYUEC6xo84ddALNF_6LzH2IEXKsm2Yg&scope=email%20profile%20https://www.googleapis.com/auth/youtube.readonly%20https://www.googleapis.com/auth/userinfo.profile%20https://www.googleapis.com/auth/userinfo.email%20openid&authuser=0&prompt=consent 302 in 2140ms GET /api/auth/get-session 200 in 634ms ○ Compiling /dashboard ... ✓ Compiled /dashboard in 990ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /dashboard 200 in 3728ms GET /favicon.ico?favicon.0b3bf435.ico 200 in 234ms GET /api/auth/get-session 200 in 619ms GET /api/auth/get-session 200 in 1383ms POST /dashboard 200 in 1568ms GET /api/auth/get-session 200 in 587ms POST /dashboard 200 in 604ms ✓ Compiled in 76ms GET /api/auth/get-session 200 in 1479ms ✓ Compiled /dashboard in 29ms GET /api/auth/get-session 200 in 653ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /dashboard 200 in 2634ms GET /dashboard 200 in 2544ms ✓ Compiled in 171ms GET /api/auth/get-session 200 in 599ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /dashboard 200 in 769ms ✓ Compiled in 259ms GET /api/auth/get-session 200 in 557ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /dashboard 200 in 820ms ✓ Compiled in 77ms GET /api/auth/get-session 200 in 1515ms ✓ Compiled /dashboard in 24ms ✓ Compiled in 119ms GET /api/auth/get-session 200 in 606ms ✓ Compiled /dashboard in 17ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /dashboard 200 in 2752ms GET /dashboard 200 in 2712ms ✓ Compiled in 65ms ✓ Compiled / in 367ms Cache miss - fetching trending content from database Cache miss - fetching featured creators from database GET / 200 in 1771ms ✓ Compiled /login in 33ms GET /login 200 in 102ms POST /api/auth/sign-in/social 200 in 1523ms GET /api/auth/callback/google?state=aRzp3PJ-54-C86Bm5W9b1wH85Q5jpe6A&code=4%2F0ASc3gC3pzhVnoAYCKN42i7Y9uoSeoEWROj-c5TV0uCikHgU-8gMDU6DNJgDset8WCW-TaA&scope=email+profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fyoutube.readonly+openid+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email&authuser=0&prompt=none 200 in 783ms 2026-02-08T19:21:59.330Z ERROR [Better Auth]: Failed to parse state [Error [BetterAuthError]: State mismatch: verification not found] { code: 'state_mismatch', details: [Object] } GET /api/auth/callback/google?state=aRzp3PJ-54-C86Bm5W9b1wH85Q5jpe6A&code=4%2F0ASc3gC0ma_E71Elxuu0GEn1UKuwTLKUCc9JQtojjbyEN4TleUcOCGnmzrtNbZ0wkyrHKTw&scope=email+profile+openid+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fyoutube.readonly+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email&authuser=0&prompt=none 302 in 808ms GET /api/auth/error?error=please_restart_the_process 200 in 231ms Cache miss - fetching trending content from database Cache miss - fetching featured creators from database GET / 200 in 1476ms GET /login 200 in 34ms POST /api/auth/sign-in/social 200 in 488ms GET /api/auth/callback/google?state=hyL2JJmv67t66tNsBrlbdOOrqdhvaINV&code=4/0ASc3gC0gdyrSjS_QmUM75izYFa8I56XORyRS2MOVdyr5tDvE2ZN56fe_orItcj57ONoIwA&scope=email%20profile%20https://www.googleapis.com/auth/youtube.readonly%20https://www.googleapis.com/auth/userinfo.profile%20https://www.googleapis.com/auth/userinfo.email%20openid&authuser=0&prompt=consent 302 in 2026ms GET /api/auth/get-session 200 in 569ms ✓ Compiled /dashboard in 20ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /dashboard 200 in 3035ms GET /api/auth/get-session 200 in 648ms GET /api/auth/get-session 200 in 702ms ✓ Compiled in 85ms POST /dashboard 200 in 1529ms GET /api/auth/get-session 200 in 593ms ✓ Compiled /dashboard in 21ms POST /dashboard 200 in 1663ms GET /api/auth/get-session 200 in 587ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /api/auth/get-session 200 in 661ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /dashboard 200 in 1599ms GET /dashboard 200 in 1579ms GET /api/auth/get-session 200 in 1445ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /dashboard 200 in 2602ms GET /favicon.ico?favicon.0b3bf435.ico 200 in 258ms GET /api/auth/get-session 200 in 651ms GET /api/auth/get-session 200 in 1410ms POST /dashboard 200 in 1555ms GET /api/auth/get-session 200 in 582ms POST /dashboard 200 in 713ms GET /api/auth/get-session 200 in 587ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw POST /dashboard 200 in 2108ms ✓ Compiled /api/youtube/connect in 272ms GET /api/youtube/connect 307 in 919ms ✓ Compiled /api/youtube/callback in 94ms GET /api/youtube/callback?state=pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw&code=4/0ASc3gC0PR2IzmJcTxg8mrBDrob9Xv8y6gMUJ-YKTsZxqD6yzV5bOtdvX2wa8egsKLVqzdA&scope=email%20profile%20https://www.googleapis.com/auth/userinfo.profile%20https://www.googleapis.com/auth/userinfo.email%20openid&authuser=0&prompt=consent 307 in 893ms GET /api/auth/get-session 200 in 595ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw [connectYouTubeAction] Error: Error: YouTube API error: 403 Request had insufficient authentication scopes. at getChannelMetadata (src/features/discovery/services/youtube.service.ts:27:15) at async connectYouTubeAction (src/features/discovery/actions/connect-youtube.ts:48:26) at async DashboardPage (src/app/dashboard/page.tsx:39:28) 25 | if (!response.ok) { 26 | const errorBody = await response.json().catch(() => ({})); > 27 | throw new Error( | ^ 28 | `YouTube API error: ${response.status} ${errorBody.error?.message || response.statusText}` 29 | ); 30 | } GET /dashboard?sync_youtube=true 307 in 1150ms GET /api/auth/get-session 200 in 627ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /dashboard?error=YouTube%20API%20error%3A%20403%20Request%20had%20insufficient%20authentication%20scopes. 200 in 637ms GET /api/auth/get-session 200 in 822ms GET /api/auth/get-session 200 in 773ms POST /dashboard?error=YouTube%20API%20error%3A%20403%20Request%20had%20insufficient%20authentication%20scopes. 200 in 773ms GET /api/auth/get-session 200 in 589ms POST /dashboard?error=YouTube%20API%20error%3A%20403%20Request%20had%20insufficient%20authentication%20scopes. 200 in 610ms GET /api/youtube/connect 307 in 1559ms GET /api/youtube/callback?state=pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw&code=4/0ASc3gC333y0RFQpVpDI1RL4W858PKSEhfBNIguuMkNRScdJ8c2RynQJfjQwdN_jG4KIjRw&scope=email%20profile%20https://www.googleapis.com/auth/youtube.readonly%20https://www.googleapis.com/auth/userinfo.profile%20https://www.googleapis.com/auth/userinfo.email%20openid&authuser=0&prompt=consent 307 in 785ms GET /api/auth/get-session 200 in 673ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw [connectYouTubeAction] Error: Error: Failed query: insert into "youtube_channels" ("id", "creator_id", "channel_id", "channel_name", "creator_slug", "subscriber_count", "thumbnail_url", "connected_at", "sync_status", "channel_type") values ($1, $2, $3, $4, $5, $6, $7, default, $8, $9) on conflict ("channel_id") do update set "channel_name" = EXCLUDED.channel_name, "creator_slug" = EXCLUDED.creator_slug, "subscriber_count" = EXCLUDED.subscriber_count, "thumbnail_url" = EXCLUDED.thumbnail_url, "sync_status" = $10, "channel_type" = $11 params: 01c52651-22ad-4579-a47e-3a00dfd8086d,pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw,UC_2QSXGUe_L6KKz7rLHA-7Q,Vijay Krishnan,vijay-krishnan,7,https://yt3.ggpht.com/ytc/AIdro_ki8FyduqB7dFVN3yX8gZhWv0Yj4GKNLgNRVk2FMBZM2nye=s800-c-k-c0x00ffffff-no-rj,idle,verified,idle,verified at async connectYouTubeAction (src/features/discovery/actions/connect-youtube.ts:58:9) at async DashboardPage (src/app/dashboard/page.tsx:39:28) 56 | 57 | // 4. Batch store or update all channel information in our database > 58 | await db.insert(youtubeChannels).values( | ^ 59 | channels.map(metadata => ({ 60 | creatorId: session.user.id, 61 | channelId: metadata.id, { query: 'insert into "youtube_channels" ("id", "creator_id", "channel_id", "channel_name", "creator_slug", "subscriber_count", "thumbnail_url", "connected_at", "sync_status", "channel_type") values ($1, $2, $3, $4, $5, $6, $7, default, $8, $9) on conflict ("channel_id") do update set "channel_name" = EXCLUDED.channel_name, "creator_slug" = EXCLUDED.creator_slug, "subscriber_count" = EXCLUDED.subscriber_count, "thumbnail_url" = EXCLUDED.thumbnail_url, "sync_status" = $10, "channel_type" = $11', params: [Array], [cause]: [Error [PostgresError]: there is no unique or exclusion constraint matching the ON CONFLICT specification] { severity_local: 'ERROR', severity: 'ERROR', code: '42P10', file: 'plancat.c', line: '943', routine: 'infer_arbiter_indexes' } } GET /dashboard?sync_youtube=true 307 in 2484ms GET /api/auth/get-session 200 in 592ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /dashboard?error=Failed%20query%3A%20insert%20into%20%22youtube_channels%22%20(%22id%22%2C%20%22creator_id%22%2C%20%22channel_id%22%2C%20%22channel_name%22%2C%20%22creator_slug%22%2C%20%22subscriber_count%22%2C%20%22thumbnail_url%22%2C%20%22connected_at%22%2C%20%22sync_status%22%2C%20%22channel_type%22)%20values%20(%241%2C%20%242%2C%20%243%2C%20%244%2C%20%245%2C%20%246%2C%20%247%2C%20default%2C%20%248%2C%20%249)%20on%20conflict%20(%22channel_id%22)%20do%20update%20set%20%22channel_name%22%20%3D%20EXCLUDED.channel_name%2C%20%22creator_slug%22%20%3D%20EXCLUDED.creator_slug%2C%20%22subscriber_count%22%20%3D%20EXCLUDED.subscriber_count%2C%20%22thumbnail_url%22%20%3D%20EXCLUDED.thumbnail_url%2C%20%22sync_status%22%20%3D%20%2410%2C%20%22channel_type%22%20%3D%20%2411%0Aparams%3A%2001c52651-22ad-4579-a47e-3a00dfd8086d%2CpvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw%2CUC_2QSXGUe_L6KKz7rLHA-7Q%2CVijay%20Krishnan%2Cvijay-krishnan%2C7%2Chttps%3A%2F%2Fyt3.ggpht.com%2Fytc%2FAIdro_ki8FyduqB7dFVN3yX8gZhWv0Yj4GKNLgNRVk2FMBZM2nye%3Ds800-c-k-c0x00ffffff-no-rj%2Cidle%2Cverified%2Cidle%2Cverified 200 in 1514ms GET /api/auth/get-session 200 in 753ms GET /api/auth/get-session 200 in 1397ms POST /dashboard?error=Failed%20query%3A%20insert%20into%20%22youtube_channels%22%20(%22id%22%2C%20%22creator_id%22%2C%20%22channel_id%22%2C%20%22channel_name%22%2C%20%22creator_slug%22%2C%20%22subscriber_count%22%2C%20%22thumbnail_url%22%2C%20%22connected_at%22%2C%20%22sync_status%22%2C%20%22channel_type%22)%20values%20(%241%2C%20%242%2C%20%243%2C%20%244%2C%20%245%2C%20%246%2C%20%247%2C%20default%2C%20%248%2C%20%249)%20on%20conflict%20(%22channel_id%22)%20do%20update%20set%20%22channel_name%22%20%3D%20EXCLUDED.channel_name%2C%20%22creator_slug%22%20%3D%20EXCLUDED.creator_slug%2C%20%22subscriber_count%22%20%3D%20EXCLUDED.subscriber_count%2C%20%22thumbnail_url%22%20%3D%20EXCLUDED.thumbnail_url%2C%20%22sync_status%22%20%3D%20%2410%2C%20%22channel_type%22%20%3D%20%2411%0Aparams%3A%2001c52651-22ad-4579-a47e-3a00dfd8086d%2CpvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw%2CUC_2QSXGUe_L6KKz7rLHA-7Q%2CVijay%20Krishnan%2Cvijay-krishnan%2C7%2Chttps%3A%2F%2Fyt3.ggpht.com%2Fytc%2FAIdro_ki8FyduqB7dFVN3yX8gZhWv0Yj4GKNLgNRVk2FMBZM2nye%3Ds800-c-k-c0x00ffffff-no-rj%2Cidle%2Cverified%2Cidle%2Cverified 200 in 1588ms GET /api/auth/get-session 200 in 635ms POST /dashboard?error=Failed%20query%3A%20insert%20into%20%22youtube_channels%22%20(%22id%22%2C%20%22creator_id%22%2C%20%22channel_id%22%2C%20%22channel_name%22%2C%20%22creator_slug%22%2C%20%22subscriber_count%22%2C%20%22thumbnail_url%22%2C%20%22connected_at%22%2C%20%22sync_status%22%2C%20%22channel_type%22)%20values%20(%241%2C%20%242%2C%20%243%2C%20%244%2C%20%245%2C%20%246%2C%20%247%2C%20default%2C%20%248%2C%20%249)%20on%20conflict%20(%22channel_id%22)%20do%20update%20set%20%22channel_name%22%20%3D%20EXCLUDED.channel_name%2C%20%22creator_slug%22%20%3D%20EXCLUDED.creator_slug%2C%20%22subscriber_count%22%20%3D%20EXCLUDED.subscriber_count%2C%20%22thumbnail_url%22%20%3D%20EXCLUDED.thumbnail_url%2C%20%22sync_status%22%20%3D%20%2410%2C%20%22channel_type%22%20%3D%20%2411%0Aparams%3A%2001c52651-22ad-4579-a47e-3a00dfd8086d%2CpvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw%2CUC_2QSXGUe_L6KKz7rLHA-7Q%2CVijay%20Krishnan%2Cvijay-krishnan%2C7%2Chttps%3A%2F%2Fyt3.ggpht.com%2Fytc%2FAIdro_ki8FyduqB7dFVN3yX8gZhWv0Yj4GKNLgNRVk2FMBZM2nye%3Ds800-c-k-c0x00ffffff-no-rj%2Cidle%2Cverified%2Cidle%2Cverified 200 in 608ms GET /api/youtube/connect 307 in 1414ms GET /api/youtube/callback?state=pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw&code=4/0ASc3gC3BEWrqkRJ4W7HRQ-Jv8OcCssBAnFbi1MEowh4yWvNTxWXXtIb6FQkhZ8eXSU6jHQ&scope=email%20profile%20https://www.googleapis.com/auth/youtube.readonly%20https://www.googleapis.com/auth/userinfo.profile%20https://www.googleapis.com/auth/userinfo.email%20openid&authuser=0&prompt=consent 307 in 738ms GET /api/auth/get-session 200 in 684ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw [connectYouTubeAction] Error: Error: Failed query: insert into "youtube_channels" ("id", "creator_id", "channel_id", "channel_name", "creator_slug", "subscriber_count", "thumbnail_url", "connected_at", "sync_status", "channel_type") values ($1, $2, $3, $4, $5, $6, $7, default, $8, $9) on conflict ("channel_id") do update set "channel_name" = EXCLUDED.channel_name, "creator_slug" = EXCLUDED.creator_slug, "subscriber_count" = EXCLUDED.subscriber_count, "thumbnail_url" = EXCLUDED.thumbnail_url, "sync_status" = $10, "channel_type" = $11 params: b680e5b7-062b-486a-ad78-3a9574f14054,pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw,UC_2QSXGUe_L6KKz7rLHA-7Q,Vijay Krishnan,vijay-krishnan,7,https://yt3.ggpht.com/ytc/AIdro_ki8FyduqB7dFVN3yX8gZhWv0Yj4GKNLgNRVk2FMBZM2nye=s800-c-k-c0x00ffffff-no-rj,idle,verified,idle,verified at async connectYouTubeAction (src/features/discovery/actions/connect-youtube.ts:58:9) at async DashboardPage (src/app/dashboard/page.tsx:39:28) 56 | 57 | // 4. Batch store or update all channel information in our database > 58 | await db.insert(youtubeChannels).values( | ^ 59 | channels.map(metadata => ({ 60 | creatorId: session.user.id, 61 | channelId: metadata.id, { query: 'insert into "youtube_channels" ("id", "creator_id", "channel_id", "channel_name", "creator_slug", "subscriber_count", "thumbnail_url", "connected_at", "sync_status", "channel_type") values ($1, $2, $3, $4, $5, $6, $7, default, $8, $9) on conflict ("channel_id") do update set "channel_name" = EXCLUDED.channel_name, "creator_slug" = EXCLUDED.creator_slug, "subscriber_count" = EXCLUDED.subscriber_count, "thumbnail_url" = EXCLUDED.thumbnail_url, "sync_status" = $10, "channel_type" = $11', params: [Array], [cause]: [Error [PostgresError]: there is no unique or exclusion constraint matching the ON CONFLICT specification] { severity_local: 'ERROR', severity: 'ERROR', code: '42P10', file: 'plancat.c', line: '943', routine: 'infer_arbiter_indexes' } } GET /dashboard?sync_youtube=true 307 in 2140ms GET /api/auth/get-session 200 in 649ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /dashboard?error=Failed%20query%3A%20insert%20into%20%22youtube_channels%22%20(%22id%22%2C%20%22creator_id%22%2C%20%22channel_id%22%2C%20%22channel_name%22%2C%20%22creator_slug%22%2C%20%22subscriber_count%22%2C%20%22thumbnail_url%22%2C%20%22connected_at%22%2C%20%22sync_status%22%2C%20%22channel_type%22)%20values%20(%241%2C%20%242%2C%20%243%2C%20%244%2C%20%245%2C%20%246%2C%20%247%2C%20default%2C%20%248%2C%20%249)%20on%20conflict%20(%22channel_id%22)%20do%20update%20set%20%22channel_name%22%20%3D%20EXCLUDED.channel_name%2C%20%22creator_slug%22%20%3D%20EXCLUDED.creator_slug%2C%20%22subscriber_count%22%20%3D%20EXCLUDED.subscriber_count%2C%20%22thumbnail_url%22%20%3D%20EXCLUDED.thumbnail_url%2C%20%22sync_status%22%20%3D%20%2410%2C%20%22channel_type%22%20%3D%20%2411%0Aparams%3A%20b680e5b7-062b-486a-ad78-3a9574f14054%2CpvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw%2CUC_2QSXGUe_L6KKz7rLHA-7Q%2CVijay%20Krishnan%2Cvijay-krishnan%2C7%2Chttps%3A%2F%2Fyt3.ggpht.com%2Fytc%2FAIdro_ki8FyduqB7dFVN3yX8gZhWv0Yj4GKNLgNRVk2FMBZM2nye%3Ds800-c-k-c0x00ffffff-no-rj%2Cidle%2Cverified%2Cidle%2Cverified 200 in 1457ms GET /api/auth/get-session 200 in 672ms GET /api/auth/get-session 200 in 1456ms POST /dashboard?error=Failed%20query%3A%20insert%20into%20%22youtube_channels%22%20(%22id%22%2C%20%22creator_id%22%2C%20%22channel_id%22%2C%20%22channel_name%22%2C%20%22creator_slug%22%2C%20%22subscriber_count%22%2C%20%22thumbnail_url%22%2C%20%22connected_at%22%2C%20%22sync_status%22%2C%20%22channel_type%22)%20values%20(%241%2C%20%242%2C%20%243%2C%20%244%2C%20%245%2C%20%246%2C%20%247%2C%20default%2C%20%248%2C%20%249)%20on%20conflict%20(%22channel_id%22)%20do%20update%20set%20%22channel_name%22%20%3D%20EXCLUDED.channel_name%2C%20%22creator_slug%22%20%3D%20EXCLUDED.creator_slug%2C%20%22subscriber_count%22%20%3D%20EXCLUDED.subscriber_count%2C%20%22thumbnail_url%22%20%3D%20EXCLUDED.thumbnail_url%2C%20%22sync_status%22%20%3D%20%2410%2C%20%22channel_type%22%20%3D%20%2411%0Aparams%3A%20b680e5b7-062b-486a-ad78-3a9574f14054%2CpvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw%2CUC_2QSXGUe_L6KKz7rLHA-7Q%2CVijay%20Krishnan%2Cvijay-krishnan%2C7%2Chttps%3A%2F%2Fyt3.ggpht.com%2Fytc%2FAIdro_ki8FyduqB7dFVN3yX8gZhWv0Yj4GKNLgNRVk2FMBZM2nye%3Ds800-c-k-c0x00ffffff-no-rj%2Cidle%2Cverified%2Cidle%2Cverified 200 in 1641ms GET /api/auth/get-session 200 in 593ms POST /dashboard?error=Failed%20query%3A%20insert%20into%20%22youtube_channels%22%20(%22id%22%2C%20%22creator_id%22%2C%20%22channel_id%22%2C%20%22channel_name%22%2C%20%22creator_slug%22%2C%20%22subscriber_count%22%2C%20%22thumbnail_url%22%2C%20%22connected_at%22%2C%20%22sync_status%22%2C%20%22channel_type%22)%20values%20(%241%2C%20%242%2C%20%243%2C%20%244%2C%20%245%2C%20%246%2C%20%247%2C%20default%2C%20%248%2C%20%249)%20on%20conflict%20(%22channel_id%22)%20do%20update%20set%20%22channel_name%22%20%3D%20EXCLUDED.channel_name%2C%20%22creator_slug%22%20%3D%20EXCLUDED.creator_slug%2C%20%22subscriber_count%22%20%3D%20EXCLUDED.subscriber_count%2C%20%22thumbnail_url%22%20%3D%20EXCLUDED.thumbnail_url%2C%20%22sync_status%22%20%3D%20%2410%2C%20%22channel_type%22%20%3D%20%2411%0Aparams%3A%20b680e5b7-062b-486a-ad78-3a9574f14054%2CpvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw%2CUC_2QSXGUe_L6KKz7rLHA-7Q%2CVijay%20Krishnan%2Cvijay-krishnan%2C7%2Chttps%3A%2F%2Fyt3.ggpht.com%2Fytc%2FAIdro_ki8FyduqB7dFVN3yX8gZhWv0Yj4GKNLgNRVk2FMBZM2nye%3Ds800-c-k-c0x00ffffff-no-rj%2Cidle%2Cverified%2Cidle%2Cverified 200 in 611ms ✓ Compiled in 81ms GET /api/auth/get-session 200 in 1417ms ✓ Compiled /dashboard in 36ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /dashboard?error=Failed+query%3A+insert+into+%22youtube_channels%22+%28%22id%22%2C+%22creator_id%22%2C+%22channel_id%22%2C+%22channel_name%22%2C+%22creator_slug%22%2C+%22subscriber_count%22%2C+%22thumbnail_url%22%2C+%22connected_at%22%2C+%22sync_status%22%2C+%22channel_type%22%29+values+%28%241%2C+%242%2C+%243%2C+%244%2C+%245%2C+%246%2C+%247%2C+default%2C+%248%2C+%249%29+on+conflict+%28%22channel_id%22%29+do+update+set+%22channel_name%22+%3D+EXCLUDED.channel_name%2C+%22creator_slug%22+%3D+EXCLUDED.creator_slug%2C+%22subscriber_count%22+%3D+EXCLUDED.subscriber_count%2C+%22thumbnail_url%22+%3D+EXCLUDED.thumbnail_url%2C+%22sync_status%22+%3D+%2410%2C+%22channel_type%22+%3D+%2411%0Aparams%3A+b680e5b7-062b-486a-ad78-3a9574f14054%2CpvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw%2CUC_2QSXGUe_L6KKz7rLHA-7Q%2CVijay+Krishnan%2Cvijay-krishnan%2C7%2Chttps%3A%2F%2Fyt3.ggpht.com%2Fytc%2FAIdro_ki8FyduqB7dFVN3yX8gZhWv0Yj4GKNLgNRVk2FMBZM2nye%3Ds800-c-k-c0x00ffffff-no-rj%2Cidle%2Cverified%2Cidle%2Cverified 200 in 2647ms GET /api/youtube/connect 307 in 1385ms GET /api/youtube/callback?state=pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw&code=4/0ASc3gC3_Y8gT5pOdhtJ81PsuCKVpusnnMb6v5-EQFWLPMs2lwSBARl6i_R9HfV5CgNxJ7w&scope=email%20profile%20https://www.googleapis.com/auth/youtube.readonly%20https://www.googleapis.com/auth/userinfo.profile%20https://www.googleapis.com/auth/userinfo.email%20openid&authuser=0&prompt=consent 307 in 844ms GET /api/auth/get-session 200 in 575ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /dashboard?sync_youtube=true 307 in 2280ms GET /api/auth/get-session 200 in 624ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /dashboard 200 in 2001ms GET /api/auth/get-session 200 in 599ms GET /api/auth/get-session 200 in 1415ms POST /dashboard 200 in 1573ms GET /api/auth/get-session 200 in 618ms POST /dashboard 200 in 602ms GET /api/auth/get-session 200 in 571ms POST /dashboard 200 in 80697ms GET /api/auth/get-session 200 in 1386ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /dashboard 200 in 1069ms ✓ Compiled in 112ms GET /api/auth/get-session 200 in 587ms ✓ Compiled /dashboard in 23ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /dashboard 200 in 2977ms GET /api/auth/get-session 200 in 1547ms ✓ Compiled in 173ms ○ Compiling /showcase/[videoId] ... ✓ Compiled /showcase/[videoId] in 805ms GET /showcase/undefined 200 in 3443ms GET /api/auth/get-session 200 in 1396ms GET /showcase/undefined 200 in 326ms GET /api/auth/get-session 200 in 594ms POST /dashboard 200 in 1377ms POST /showcase/undefined 200 in 2028ms POST /dashboard 200 in 2703ms GET /api/auth/get-session 200 in 581ms POST /dashboard 200 in 778ms POST /showcase/undefined 200 in 1401ms GET /api/auth/get-session 200 in 558ms POST /dashboard 200 in 591ms POST /showcase/undefined 200 in 1190ms GET /showcase/undefined 200 in 361ms ✓ Compiled in 83ms GET /showcase/undefined 200 in 313ms GET /api/auth/get-session 200 in 1372ms ✓ Compiled /dashboard in 26ms GET /dashboard 200 in 851ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /api/auth/get-session 200 in 638ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /dashboard 200 in 2214ms GET /api/auth/get-session 200 in 618ms GET /api/auth/get-session 200 in 1441ms POST /dashboard 200 in 1633ms GET /api/auth/get-session 200 in 608ms POST /dashboard 200 in 607ms Self-healing: Re-triggering stuck analysis for video 18BsJxwYETw [ingestAndAnalyze] START - videoId: 18BsJxwYETw, userId: undefined, skipAnalysis: undefined [ingestAndAnalyze] Fetching oembed for 18BsJxwYETw... GET /showcase/18BsJxwYETw 200 in 391ms [ingestAndAnalyze] OEmbed Metadata fetched: mixkit man on a rooftop 231 hd ready [ingestAndAnalyze] Generated slug: dvijaykrishnan for author: Vijay Krishnan [ingestAndAnalyze] Creating NEW channel for creatorId: demo-user-showcase Self-healing: Re-triggering stuck analysis for video 18BsJxwYETw [ingestAndAnalyze] START - videoId: 18BsJxwYETw, userId: undefined, skipAnalysis: undefined [ingestAndAnalyze] Fetching oembed for 18BsJxwYETw... GET /showcase/18BsJxwYETw 200 in 387ms [ingestAndAnalyze] OEmbed Metadata fetched: mixkit man on a rooftop 231 hd ready [ingestAndAnalyze] Generated slug: dvijaykrishnan for author: Vijay Krishnan [ingestAndAnalyze] Channel d86e1148-330f-48b0-b434-7c5086aa4bd6 ownership: demo-user-showcase (userId: undefined) Re-triggering analysis for 18BsJxwYETw (status: pending) Self-healing: Re-triggering stuck analysis for video 18BsJxwYETw [ingestAndAnalyze] START - videoId: 18BsJxwYETw, userId: undefined, skipAnalysis: undefined [ingestAndAnalyze] Fetching oembed for 18BsJxwYETw... GET /showcase/18BsJxwYETw 200 in 473ms [ingestAndAnalyze] OEmbed Metadata fetched: mixkit man on a rooftop 231 hd ready [ingestAndAnalyze] Generated slug: dvijaykrishnan for author: Vijay Krishnan [ingestAndAnalyze] Channel d86e1148-330f-48b0-b434-7c5086aa4bd6 ownership: demo-user-showcase (userId: undefined) Re-triggering analysis for 18BsJxwYETw (status: pending) Self-healing: Re-triggering stuck analysis for video 18BsJxwYETw [ingestAndAnalyze] START - videoId: 18BsJxwYETw, userId: undefined, skipAnalysis: undefined [ingestAndAnalyze] Fetching oembed for 18BsJxwYETw... GET /showcase/18BsJxwYETw 200 in 380ms [ingestAndAnalyze] OEmbed Metadata fetched: mixkit man on a rooftop 231 hd ready [ingestAndAnalyze] Generated slug: dvijaykrishnan for author: Vijay Krishnan [ingestAndAnalyze] Channel d86e1148-330f-48b0-b434-7c5086aa4bd6 ownership: demo-user-showcase (userId: undefined) Re-triggering analysis for 18BsJxwYETw (status: pending) Self-healing: Re-triggering stuck analysis for video 18BsJxwYETw [ingestAndAnalyze] START - videoId: 18BsJxwYETw, userId: undefined, skipAnalysis: undefined [ingestAndAnalyze] Fetching oembed for 18BsJxwYETw... GET /showcase/18BsJxwYETw 200 in 430ms [ingestAndAnalyze] OEmbed Metadata fetched: mixkit man on a rooftop 231 hd ready [ingestAndAnalyze] Generated slug: dvijaykrishnan for author: Vijay Krishnan [ingestAndAnalyze] Channel d86e1148-330f-48b0-b434-7c5086aa4bd6 ownership: demo-user-showcase (userId: undefined) Re-triggering analysis for 18BsJxwYETw (status: pending) Self-healing: Re-triggering stuck analysis for video 18BsJxwYETw [ingestAndAnalyze] START - videoId: 18BsJxwYETw, userId: undefined, skipAnalysis: undefined [ingestAndAnalyze] Fetching oembed for 18BsJxwYETw... GET /showcase/18BsJxwYETw 200 in 384ms [ingestAndAnalyze] OEmbed Metadata fetched: mixkit man on a rooftop 231 hd ready [ingestAndAnalyze] Generated slug: dvijaykrishnan for author: Vijay Krishnan [ingestAndAnalyze] Channel d86e1148-330f-48b0-b434-7c5086aa4bd6 ownership: demo-user-showcase (userId: undefined) Re-triggering analysis for 18BsJxwYETw (status: pending) Self-healing: Re-triggering stuck analysis for video 18BsJxwYETw [ingestAndAnalyze] START - videoId: 18BsJxwYETw, userId: undefined, skipAnalysis: undefined [ingestAndAnalyze] Fetching oembed for 18BsJxwYETw... GET /showcase/18BsJxwYETw 200 in 494ms [ingestAndAnalyze] OEmbed Metadata fetched: mixkit man on a rooftop 231 hd ready [ingestAndAnalyze] Generated slug: dvijaykrishnan for author: Vijay Krishnan [ingestAndAnalyze] Channel d86e1148-330f-48b0-b434-7c5086aa4bd6 ownership: demo-user-showcase (userId: undefined) Re-triggering analysis for 18BsJxwYETw (status: pending) Self-healing: Re-triggering stuck analysis for video 18BsJxwYETw [ingestAndAnalyze] START - videoId: 18BsJxwYETw, userId: undefined, skipAnalysis: undefined [ingestAndAnalyze] Fetching oembed for 18BsJxwYETw... GET /showcase/18BsJxwYETw 200 in 470ms [ingestAndAnalyze] OEmbed Metadata fetched: mixkit man on a rooftop 231 hd ready [ingestAndAnalyze] Generated slug: dvijaykrishnan for author: Vijay Krishnan [ingestAndAnalyze] Channel d86e1148-330f-48b0-b434-7c5086aa4bd6 ownership: demo-user-showcase (userId: undefined) Re-triggering analysis for 18BsJxwYETw (status: pending) Self-healing: Re-triggering stuck analysis for video 18BsJxwYETw [ingestAndAnalyze] START - videoId: 18BsJxwYETw, userId: undefined, skipAnalysis: undefined [ingestAndAnalyze] Fetching oembed for 18BsJxwYETw... GET /showcase/18BsJxwYETw 200 in 435ms [ingestAndAnalyze] OEmbed Metadata fetched: mixkit man on a rooftop 231 hd ready [ingestAndAnalyze] Generated slug: dvijaykrishnan for author: Vijay Krishnan [ingestAndAnalyze] Channel d86e1148-330f-48b0-b434-7c5086aa4bd6 ownership: demo-user-showcase (userId: undefined) Re-triggering analysis for 18BsJxwYETw (status: pending) Self-healing: Re-triggering stuck analysis for video 18BsJxwYETw [ingestAndAnalyze] START - videoId: 18BsJxwYETw, userId: undefined, skipAnalysis: undefined [ingestAndAnalyze] Fetching oembed for 18BsJxwYETw... GET /showcase/18BsJxwYETw 200 in 435ms [ingestAndAnalyze] OEmbed Metadata fetched: mixkit man on a rooftop 231 hd ready [ingestAndAnalyze] Generated slug: dvijaykrishnan for author: Vijay Krishnan [ingestAndAnalyze] Channel d86e1148-330f-48b0-b434-7c5086aa4bd6 ownership: demo-user-showcase (userId: undefined) Re-triggering analysis for 18BsJxwYETw (status: pending) Self-healing: Re-triggering stuck analysis for video 18BsJxwYETw [ingestAndAnalyze] START - videoId: 18BsJxwYETw, userId: undefined, skipAnalysis: undefined [ingestAndAnalyze] Fetching oembed for 18BsJxwYETw... GET /showcase/18BsJxwYETw 200 in 466ms [ingestAndAnalyze] OEmbed Metadata fetched: mixkit man on a rooftop 231 hd ready [ingestAndAnalyze] Generated slug: dvijaykrishnan for author: Vijay Krishnan [ingestAndAnalyze] Channel d86e1148-330f-48b0-b434-7c5086aa4bd6 ownership: demo-user-showcase (userId: undefined) Re-triggering analysis for 18BsJxwYETw (status: pending) Self-healing: Re-triggering stuck analysis for video 18BsJxwYETw [ingestAndAnalyze] START - videoId: 18BsJxwYETw, userId: undefined, skipAnalysis: undefined [ingestAndAnalyze] Fetching oembed for 18BsJxwYETw... GET /showcase/18BsJxwYETw 200 in 396ms [ingestAndAnalyze] OEmbed Metadata fetched: mixkit man on a rooftop 231 hd ready [ingestAndAnalyze] Generated slug: dvijaykrishnan for author: Vijay Krishnan [ingestAndAnalyze] Channel d86e1148-330f-48b0-b434-7c5086aa4bd6 ownership: demo-user-showcase (userId: undefined) Re-triggering analysis for 18BsJxwYETw (status: pending) Self-healing: Re-triggering stuck analysis for video 18BsJxwYETw [ingestAndAnalyze] START - videoId: 18BsJxwYETw, userId: undefined, skipAnalysis: undefined [ingestAndAnalyze] Fetching oembed for 18BsJxwYETw... GET /showcase/18BsJxwYETw 200 in 431ms [ingestAndAnalyze] OEmbed Metadata fetched: mixkit man on a rooftop 231 hd ready [ingestAndAnalyze] Generated slug: dvijaykrishnan for author: Vijay Krishnan [ingestAndAnalyze] Channel d86e1148-330f-48b0-b434-7c5086aa4bd6 ownership: demo-user-showcase (userId: undefined) Re-triggering analysis for 18BsJxwYETw (status: pending) Self-healing: Re-triggering stuck analysis for video 18BsJxwYETw [ingestAndAnalyze] START - videoId: 18BsJxwYETw, userId: undefined, skipAnalysis: undefined [ingestAndAnalyze] Fetching oembed for 18BsJxwYETw... GET /showcase/18BsJxwYETw 200 in 435ms [ingestAndAnalyze] OEmbed Metadata fetched: mixkit man on a rooftop 231 hd ready [ingestAndAnalyze] Generated slug: dvijaykrishnan for author: Vijay Krishnan [ingestAndAnalyze] Channel d86e1148-330f-48b0-b434-7c5086aa4bd6 ownership: demo-user-showcase (userId: undefined) Re-triggering analysis for 18BsJxwYETw (status: pending) Self-healing: Re-triggering stuck analysis for video 18BsJxwYETw [ingestAndAnalyze] START - videoId: 18BsJxwYETw, userId: undefined, skipAnalysis: undefined [ingestAndAnalyze] Fetching oembed for 18BsJxwYETw... GET /showcase/18BsJxwYETw 200 in 391ms [ingestAndAnalyze] OEmbed Metadata fetched: mixkit man on a rooftop 231 hd ready [ingestAndAnalyze] Generated slug: dvijaykrishnan for author: Vijay Krishnan [ingestAndAnalyze] Channel d86e1148-330f-48b0-b434-7c5086aa4bd6 ownership: demo-user-showcase (userId: undefined) Re-triggering analysis for 18BsJxwYETw (status: pending) Self-healing: Re-triggering stuck analysis for video 18BsJxwYETw [ingestAndAnalyze] START - videoId: 18BsJxwYETw, userId: undefined, skipAnalysis: undefined [ingestAndAnalyze] Fetching oembed for 18BsJxwYETw... GET /showcase/18BsJxwYETw 200 in 465ms [ingestAndAnalyze] OEmbed Metadata fetched: mixkit man on a rooftop 231 hd ready [ingestAndAnalyze] Generated slug: dvijaykrishnan for author: Vijay Krishnan ✓ Compiled in 83ms ✓ Compiled /showcase/[videoId] in 34ms [ingestAndAnalyze] Channel d86e1148-330f-48b0-b434-7c5086aa4bd6 ownership: demo-user-showcase (userId: undefined) Re-triggering analysis for 18BsJxwYETw (status: pending) Self-healing: Re-triggering stuck analysis for video 18BsJxwYETw [ingestAndAnalyze] START - videoId: 18BsJxwYETw, userId: undefined, skipAnalysis: undefined [ingestAndAnalyze] Fetching oembed for 18BsJxwYETw... [ingestAndAnalyze] OEmbed Metadata fetched: mixkit man on a rooftop 231 hd ready Self-healing: Re-triggering stuck analysis for video 18BsJxwYETw [ingestAndAnalyze] START - videoId: 18BsJxwYETw, userId: undefined, skipAnalysis: undefined [ingestAndAnalyze] Fetching oembed for 18BsJxwYETw... [ingestAndAnalyze] OEmbed Metadata fetched: mixkit man on a rooftop 231 hd ready GET /showcase/18BsJxwYETw 200 in 1258ms GET /showcase/18BsJxwYETw 200 in 1584ms Self-healing: Re-triggering stuck analysis for video 18BsJxwYETw [ingestAndAnalyze] START - videoId: 18BsJxwYETw, userId: undefined, skipAnalysis: undefined [ingestAndAnalyze] Fetching oembed for 18BsJxwYETw... [ingestAndAnalyze] OEmbed Metadata fetched: mixkit man on a rooftop 231 hd ready GET /showcase/18BsJxwYETw 200 in 1447ms [ingestAndAnalyze] Generated slug: dvijaykrishnan for author: Vijay Krishnan [ingestAndAnalyze] Generated slug: dvijaykrishnan for author: Vijay Krishnan [ingestAndAnalyze] Generated slug: dvijaykrishnan for author: Vijay Krishnan [ingestAndAnalyze] Channel d86e1148-330f-48b0-b434-7c5086aa4bd6 ownership: demo-user-showcase (userId: undefined) Re-triggering analysis for 18BsJxwYETw (status: pending) [ingestAndAnalyze] Channel d86e1148-330f-48b0-b434-7c5086aa4bd6 ownership: demo-user-showcase (userId: undefined) Re-triggering analysis for 18BsJxwYETw (status: pending) [ingestAndAnalyze] Channel d86e1148-330f-48b0-b434-7c5086aa4bd6 ownership: demo-user-showcase (userId: undefined) Re-triggering analysis for 18BsJxwYETw (status: pending) GET /api/auth/get-session 200 in 1287ms ✓ Compiled /dashboard in 33ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /dashboard 200 in 3002ms GET /api/auth/get-session 200 in 575ms POST /dashboard 200 in 1569ms GET /api/auth/get-session 200 in 562ms POST /dashboard 200 in 556ms GET /api/auth/get-session 200 in 613ms POST /dashboard 200 in 830ms GET /api/auth/get-session 200 in 578ms POST /dashboard 200 in 669ms ✓ Compiled in 250ms GET /api/auth/get-session 200 in 1440ms ✓ Compiled /dashboard in 33ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw ⨯ ReferenceError: TopEvergreenVideos is not defined at DashboardPage (src/app/dashboard/page.tsx:216:18) 214 | 215 | {/* Top Evergreen Videos */} > 216 | 0 ? channels[0].creatorSlug : undefined} /> | ^ 217 | 218 | 216 | 0 ? channels[0].creatorSlug : undefined} /> | ^ 217 | 218 | 81 | > 82 | | ^ 83 | {video.channelName} 84 | 85 | { digest: '880677350' } GET /dashboard 500 in 3901ms GET /favicon.ico?favicon.0b3bf435.ico 200 in 340ms GET /favicon.ico 200 in 305ms GET /api/auth/get-session 200 in 712ms ⚠ Fast Refresh had to perform a full reload due to a runtime error. ✓ Compiled in 96ms GET /api/auth/get-session 200 in 578ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /dashboard 200 in 4068ms GET /api/auth/get-session 200 in 545ms GET /api/auth/get-session 200 in 648ms POST /dashboard 200 in 1578ms GET /favicon.ico?favicon.0b3bf435.ico 200 in 239ms ✓ Compiled in 291ms GET /api/auth/get-session 200 in 598ms ✓ Compiled /dashboard in 64ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /dashboard 200 in 2943ms GET /api/auth/get-session 200 in 1397ms Self-healing: Re-triggering stuck analysis for video 18BsJxwYETw [ingestAndAnalyze] START - videoId: 18BsJxwYETw, userId: undefined, skipAnalysis: undefined [ingestAndAnalyze] Fetching oembed for 18BsJxwYETw... GET /showcase/18BsJxwYETw 200 in 1248ms [ingestAndAnalyze] OEmbed Metadata fetched: mixkit man on a rooftop 231 hd ready [ingestAndAnalyze] Generated slug: dvijaykrishnan for author: Vijay Krishnan [ingestAndAnalyze] Channel d86e1148-330f-48b0-b434-7c5086aa4bd6 ownership: demo-user-showcase (userId: undefined) Re-triggering analysis for 18BsJxwYETw (status: pending) GET /api/auth/get-session 200 in 656ms POST /dashboard 200 in 2440ms GET /api/auth/get-session 200 in 677ms POST /dashboard 200 in 765ms ✓ Compiled in 220ms ✓ Compiled in 395ms ✓ Compiled in 100ms ✓ Compiled in 346ms GET /api/auth/get-session 200 in 1467ms ✓ Compiled /dashboard in 29ms GET /api/auth/get-session 200 in 662ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /dashboard 200 in 3416ms GET /dashboard 200 in 2649ms ✓ Compiled / in 59ms Cache miss - fetching trending content from database Cache miss - fetching featured creators from database GET / 200 in 2106ms ✓ Compiled /_not-found/page in 298ms GET /placeholder-product.png 404 in 357ms ⨯ The requested resource isn't a valid image for /placeholder-product.png received null ✓ Compiled in 111ms Cache miss - fetching trending content from database Cache miss - fetching featured creators from database ✓ Compiled in 239ms GET / 200 in 388ms GET /api/auth/get-session 200 in 1568ms ✓ Compiled /dashboard in 41ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw ✓ Compiled in 91ms GET /dashboard 200 in 3161ms ✓ Compiled in 492ms ✓ Compiled in 108ms ✓ Compiled in 123ms ✓ Compiled in 135ms ✓ Compiled in 93ms ✓ Compiled in 161ms ✓ Compiled in 87ms Cache miss - fetching trending content from database Cache miss - fetching featured creators from database GET / 200 in 1940ms GET /favicon.ico?favicon.0b3bf435.ico 200 in 380ms GET /api/auth/get-session 200 in 1456ms GET /api/auth/get-session 200 in 1503ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /dashboard 200 in 4082ms GET /api/auth/get-session 200 in 562ms GET /api/auth/get-session 200 in 557ms POST /dashboard 200 in 1638ms GET /api/auth/get-session 200 in 1418ms ○ Compiling /dashboard/moderation ... ✓ Compiled /dashboard/moderation in 593ms GET /dashboard/moderation 200 in 2911ms GET /api/auth/get-session 200 in 620ms POST /dashboard 200 in 1723ms GET /api/auth/get-session 200 in 627ms POST /dashboard 200 in 765ms GET /api/auth/get-session 200 in 1451ms ✓ Compiled in 465ms ✓ Compiled / in 117ms Cache miss - fetching trending content from database Cache miss - fetching featured creators from database Cache miss - fetching trending content from database Cache miss - fetching featured creators from database GET / 200 in 1111ms GET / 200 in 1685ms Cache miss - fetching trending content from database Cache miss - fetching featured creators from database ✓ Compiled in 130ms GET /api/auth/get-session 200 in 1354ms GET / 200 in 223ms ✓ Compiled /dashboard in 39ms GET /api/auth/get-session 200 in 741ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /api/auth/get-session 200 in 557ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /dashboard 200 in 2891ms GET /dashboard 200 in 2113ms GET /dashboard 200 in 2737ms ✓ Compiled /showcase/[videoId] in 48ms Self-healing: Re-triggering stuck analysis for video iumWFCvrLLY [ingestAndAnalyze] START - videoId: iumWFCvrLLY, userId: undefined, skipAnalysis: undefined [ingestAndAnalyze] Fetching oembed for iumWFCvrLLY... GET /showcase/iumWFCvrLLY 200 in 1568ms [ingestAndAnalyze] oembed fetch failed with status 403. Trying API fallback... [ingestAndAnalyze] Trying full API fallback for iumWFCvrLLY... YouTube API fallback failed: Error: Video not found in YouTube API at ShowcaseService.ingestAndAnalyze (src/features/vault/services/showcase.service.ts:411:35) 409 | 410 | if (!videoApiData.items?.[0]) { > 411 | throw new Error('Video not found in YouTube API'); | ^ 412 | } 413 | 414 | const snippet = videoApiData.items[0].snippet; Showcase ingest error (detailed): { error: Error: Failed to fetch video metadata via API at ShowcaseService.ingestAndAnalyze (src/features/vault/services/showcase.service.ts:434:31) 432 | } catch (apiError) { 433 | console.error('YouTube API fallback failed:', apiError); > 434 | throw new Error('Failed to fetch video metadata via API'); | ^ 435 | } 436 | } else { 437 | throw new Error('Video unavailable (OEmbed failed and no API key configured)');, videoId: 'iumWFCvrLLY', stack: 'Error: Failed to fetch video metadata via API\n' + ' at ShowcaseService.ingestAndAnalyze (/Users/vijaykrishnan/Dev/Vault/.next/server/chunks/ssr/[root-of-the-server]__85a520ff._.js:2202:31)\n' + ' at process.processTicksAndRejections (node:internal/process/task_queues:105:5)' } GET /favicon.ico?favicon.0b3bf435.ico 200 in 270ms GET /api/auth/get-session 200 in 565ms POST /dashboard 200 in 805ms GET /api/auth/get-session 200 in 664ms POST /dashboard 200 in 809ms ✓ Compiled in 145ms ✓ Compiled in 127ms Self-healing: Re-triggering stuck analysis for video UzVH2TzvwiU [ingestAndAnalyze] START - videoId: UzVH2TzvwiU, userId: undefined, skipAnalysis: undefined [ingestAndAnalyze] Fetching oembed for UzVH2TzvwiU... GET /showcase/UzVH2TzvwiU 200 in 1180ms [ingestAndAnalyze] oembed fetch failed with status 403. Trying API fallback... [ingestAndAnalyze] Trying full API fallback for UzVH2TzvwiU... YouTube API fallback failed: Error: Video not found in YouTube API at ShowcaseService.ingestAndAnalyze (src/features/vault/services/showcase.service.ts:411:35) 409 | 410 | if (!videoApiData.items?.[0]) { > 411 | throw new Error('Video not found in YouTube API'); | ^ 412 | } 413 | 414 | const snippet = videoApiData.items[0].snippet; Showcase ingest error (detailed): { error: Error: Failed to fetch video metadata via API at ShowcaseService.ingestAndAnalyze (src/features/vault/services/showcase.service.ts:434:31) 432 | } catch (apiError) { 433 | console.error('YouTube API fallback failed:', apiError); > 434 | throw new Error('Failed to fetch video metadata via API'); | ^ 435 | } 436 | } else { 437 | throw new Error('Video unavailable (OEmbed failed and no API key configured)');, videoId: 'UzVH2TzvwiU', stack: 'Error: Failed to fetch video metadata via API\n' + ' at ShowcaseService.ingestAndAnalyze (/Users/vijaykrishnan/Dev/Vault/.next/server/chunks/ssr/[root-of-the-server]__85a520ff._.js:2202:31)\n' + ' at process.processTicksAndRejections (node:internal/process/task_queues:105:5)' } ✓ Compiled in 118ms GET /api/auth/get-session 200 in 1476ms POST /dashboard 200 in 2987ms GET /api/auth/get-session 200 in 648ms POST /dashboard 200 in 1012ms Self-healing: Re-triggering stuck analysis for video fqXkCp2zj30 [ingestAndAnalyze] START - videoId: fqXkCp2zj30, userId: undefined, skipAnalysis: undefined [ingestAndAnalyze] Fetching oembed for fqXkCp2zj30... GET /showcase/fqXkCp2zj30 200 in 1424ms [ingestAndAnalyze] oembed fetch failed with status 403. Trying API fallback... [ingestAndAnalyze] Trying full API fallback for fqXkCp2zj30... YouTube API fallback failed: Error: Video not found in YouTube API at ShowcaseService.ingestAndAnalyze (src/features/vault/services/showcase.service.ts:411:35) 409 | 410 | if (!videoApiData.items?.[0]) { > 411 | throw new Error('Video not found in YouTube API'); | ^ 412 | } 413 | 414 | const snippet = videoApiData.items[0].snippet; Showcase ingest error (detailed): { error: Error: Failed to fetch video metadata via API at ShowcaseService.ingestAndAnalyze (src/features/vault/services/showcase.service.ts:434:31) 432 | } catch (apiError) { 433 | console.error('YouTube API fallback failed:', apiError); > 434 | throw new Error('Failed to fetch video metadata via API'); | ^ 435 | } 436 | } else { 437 | throw new Error('Video unavailable (OEmbed failed and no API key configured)');, videoId: 'fqXkCp2zj30', stack: 'Error: Failed to fetch video metadata via API\n' + ' at ShowcaseService.ingestAndAnalyze (/Users/vijaykrishnan/Dev/Vault/.next/server/chunks/ssr/[root-of-the-server]__85a520ff._.js:2202:31)\n' + ' at process.processTicksAndRejections (node:internal/process/task_queues:105:5)' } GET /api/auth/get-session 200 in 824ms POST /dashboard 200 in 811ms GET /api/auth/get-session 200 in 692ms POST /dashboard 200 in 762ms ✓ Compiled in 232ms Cache miss - fetching trending content from database Cache miss - fetching featured creators from database GET / 200 in 1636ms GET /api/auth/get-session 200 in 1868ms ✓ Compiled /dashboard in 100ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /dashboard 200 in 3179ms GET /api/auth/get-session 200 in 1457ms GET /api/auth/get-session 200 in 563ms [quickAddVideoAction] Video ID parsed: mWkXURsMAMk. Calling ingestAndAnalyze with skipAnalysis: true... [ingestAndAnalyze] START - videoId: mWkXURsMAMk, userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw, skipAnalysis: true [ingestAndAnalyze] Fetching oembed for mWkXURsMAMk... [ingestAndAnalyze] OEmbed Metadata fetched: ✅ Best eReader 2026 [Watch This Before You Make a Choice!] [ingestAndAnalyze] Generated slug: theforemostpicks2026 for author: Foremost Picks [ingestAndAnalyze] Slug 'theforemostpicks2026' already taken. Generating unique variation. [ingestAndAnalyze] Creating NEW channel for creatorId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw [ingestAndAnalyze] Attempting to prepopulate products from description for mWkXURsMAMk... [prepopulate] Found 6 potential links to process. [prepopulate] Processing link: https://geni.us/Y2An4 METADATA_FETCH: Unknown domain geni.us, attempting redirect resolution... REDIRECT_RESOLVE: Checking https://geni.us/Y2An4 REDIRECT_RESOLVE: Resolved https://geni.us/Y2An4 -> https://www.amazon.com/dp/B0DSZWF122?tag=top5pickksof-20&geniuslink=true METADATA_FETCH: Initializing for www.amazon.com METADATA_FETCH: Service credentials missing, trying FallbackScraper for amazon Could not parse CSS stylesheet Could not parse CSS stylesheet Could not parse CSS stylesheet Could not parse CSS stylesheet METADATA_FETCH: FallbackScraper completed for amazon { hasImage: true, imageUrl: 'https://m.media-amazon.com/images/I/51lam7v+AwL._AC_SL1000_.jpg', hasName: true } Failed to set fetch cache https://www.amazon.com/dp/B0DSZWF122?tag=top5pickksof-20&geniuslink=true [Error: Failed to set Next.js data cache for https://www.amazon.com/dp/B0DSZWF122?tag=top5pickksof-20&geniuslink=true, items over 2MB can not be cached (2766645 bytes)] [prepopulate] Successfully added product: BOOX Palma2 Mobile ePaper eBook Reader Fingerprint Recognition Smart Button Dual Microphones Off White [prepopulate] Processing link: https://geni.us/vBxa228 METADATA_FETCH: Unknown domain geni.us, attempting redirect resolution... REDIRECT_RESOLVE: Checking https://geni.us/vBxa228 REDIRECT_RESOLVE: Resolved https://geni.us/vBxa228 -> https://www.amazon.com/dp/B0CFPJYX7P?tag=top5pickksof-20&geniuslink=true METADATA_FETCH: Initializing for www.amazon.com METADATA_FETCH: Service credentials missing, trying FallbackScraper for amazon Could not parse CSS stylesheet Could not parse CSS stylesheet Could not parse CSS stylesheet Could not parse CSS stylesheet METADATA_FETCH: FallbackScraper completed for amazon { hasImage: true, imageUrl: 'https://m.media-amazon.com/images/I/71YwNBmu+aL._AC_SL1500_.jpg', hasName: true } Failed to set fetch cache https://www.amazon.com/dp/B0CFPJYX7P?tag=top5pickksof-20&geniuslink=true [Error: Failed to set Next.js data cache for https://www.amazon.com/dp/B0CFPJYX7P?tag=top5pickksof-20&geniuslink=true, items over 2MB can not be cached (2648509 bytes)] [prepopulate] Successfully added product: Amazon Kindle Paperwhite 16GB (newest model) – 20% faster, with new 7" glare-free display and weeks of battery life – Black [prepopulate] Processing link: https://geni.us/ZNv6u METADATA_FETCH: Unknown domain geni.us, attempting redirect resolution... REDIRECT_RESOLVE: Checking https://geni.us/ZNv6u REDIRECT_RESOLVE: Resolved https://geni.us/ZNv6u -> https://www.amazon.com/dp/B0CZXWGK79?tag=top5pickksof-20&geniuslink=true METADATA_FETCH: Initializing for www.amazon.com METADATA_FETCH: Service credentials missing, trying FallbackScraper for amazon Could not parse CSS stylesheet Could not parse CSS stylesheet Could not parse CSS stylesheet Could not parse CSS stylesheet METADATA_FETCH: FallbackScraper completed for amazon { hasImage: true, imageUrl: 'https://m.media-amazon.com/images/I/61Y4ELO5kOL._AC_SL1080_.jpg', hasName: true } Failed to set fetch cache https://www.amazon.com/dp/B0CZXWGK79?tag=top5pickksof-20&geniuslink=true [Error: Failed to set Next.js data cache for https://www.amazon.com/dp/B0CZXWGK79?tag=top5pickksof-20&geniuslink=true, items over 2MB can not be cached (3351549 bytes)] [prepopulate] Successfully added product: Kobo Libra Colour [prepopulate] Processing link: https://geni.us/2xbHMQ METADATA_FETCH: Unknown domain geni.us, attempting redirect resolution... REDIRECT_RESOLVE: Checking https://geni.us/2xbHMQ REDIRECT_RESOLVE: Resolved https://geni.us/2xbHMQ -> https://www.amazon.com/dp/B0CGVSKR1G?tag=top5pickksof-20&geniuslink=true METADATA_FETCH: Initializing for www.amazon.com METADATA_FETCH: Service credentials missing, trying FallbackScraper for amazon Could not parse CSS stylesheet Could not parse CSS stylesheet Could not parse CSS stylesheet Could not parse CSS stylesheet METADATA_FETCH: FallbackScraper completed for amazon { hasImage: true, imageUrl: 'https://m.media-amazon.com/images/I/71KFrD7KfCL._AC_SL1500_.jpg', hasName: true } Failed to set fetch cache https://www.amazon.com/dp/B0CGVSKR1G?tag=top5pickksof-20&geniuslink=true [Error: Failed to set Next.js data cache for https://www.amazon.com/dp/B0CGVSKR1G?tag=top5pickksof-20&geniuslink=true, items over 2MB can not be cached (2513853 bytes)] [prepopulate] Successfully added product: Amazon Kindle Colorsoft 16 GB (newest model) – With color display and adjustable warm light – No Ads – Black [prepopulate] Processing link: https://geni.us/TGrtk METADATA_FETCH: Unknown domain geni.us, attempting redirect resolution... REDIRECT_RESOLVE: Checking https://geni.us/TGrtk REDIRECT_RESOLVE: Resolved https://geni.us/TGrtk -> https://www.amazon.com/dp/B0CZ9T2C6B?tag=top5pickksof-20&geniuslink=true METADATA_FETCH: Initializing for www.amazon.com METADATA_FETCH: Service credentials missing, trying FallbackScraper for amazon Could not parse CSS stylesheet Could not parse CSS stylesheet Could not parse CSS stylesheet Could not parse CSS stylesheet METADATA_FETCH: FallbackScraper completed for amazon { hasImage: true, imageUrl: 'https://m.media-amazon.com/images/I/81xUpeu-LzL._AC_SL1500_.jpg', hasName: true } Failed to set fetch cache https://www.amazon.com/dp/B0CZ9T2C6B?tag=top5pickksof-20&geniuslink=true [Error: Failed to set Next.js data cache for https://www.amazon.com/dp/B0CZ9T2C6B?tag=top5pickksof-20&geniuslink=true, items over 2MB can not be cached (2630133 bytes)] [prepopulate] Successfully added product: Amazon Kindle Scribe (64GB) - Your notes, documents and books, all in one place. With built-in AI notebook summarization. Includes Premium Pen - Tungsten [prepopulate] Processing link: https://geni.us/seABI METADATA_FETCH: Unknown domain geni.us, attempting redirect resolution... REDIRECT_RESOLVE: Checking https://geni.us/seABI REDIRECT_RESOLVE: Resolved https://geni.us/seABI -> https://www.amazon.com/dp/B0DG9ZXWMK?tag=top5pickksof-20&geniuslink=true METADATA_FETCH: Initializing for www.amazon.com METADATA_FETCH: Service credentials missing, trying FallbackScraper for amazon Could not parse CSS stylesheet Could not parse CSS stylesheet Could not parse CSS stylesheet Could not parse CSS stylesheet METADATA_FETCH: FallbackScraper completed for amazon { hasImage: true, imageUrl: 'https://m.media-amazon.com/images/I/71dzWnEOQvL._AC_SL1500_.jpg', hasName: true } Failed to set fetch cache https://www.amazon.com/dp/B0DG9ZXWMK?tag=top5pickksof-20&geniuslink=true [Error: Failed to set Next.js data cache for https://www.amazon.com/dp/B0DG9ZXWMK?tag=top5pickksof-20&geniuslink=true, items over 2MB can not be cached (3577397 bytes)] [prepopulate] Successfully added product: reMarkable Paper Pro Bundle – Includes 11.8” reMarkable Paper Tablet, and Marker Plus Pen with Eraser [quickAddVideoAction] ingestAndAnalyze result for mWkXURsMAMk: { success: true } POST /dashboard 200 in 21445ms GET /showcase/mWkXURsMAMk 200 in 1619ms GET /showcase/mWkXURsMAMk 200 in 1565ms ✓ Compiled /register in 299ms GET /register?videoId=mWkXURsMAMk 200 in 335ms GET /api/auth/get-session 200 in 1504ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /dashboard 200 in 2705ms GET /api/auth/get-session 200 in 617ms POST /dashboard 200 in 1573ms GET /api/auth/get-session 200 in 662ms POST /dashboard 200 in 810ms Self-healing: Re-triggering stuck analysis for video 18BsJxwYETw [ingestAndAnalyze] START - videoId: 18BsJxwYETw, userId: undefined, skipAnalysis: undefined [ingestAndAnalyze] Fetching oembed for 18BsJxwYETw... GET /showcase/18BsJxwYETw 200 in 1159ms Self-healing: Re-triggering stuck analysis for video 18BsJxwYETw [ingestAndAnalyze] START - videoId: 18BsJxwYETw, userId: undefined, skipAnalysis: undefined [ingestAndAnalyze] Fetching oembed for 18BsJxwYETw... GET /showcase/18BsJxwYETw 200 in 1173ms [ingestAndAnalyze] OEmbed Metadata fetched: mixkit man on a rooftop 231 hd ready [ingestAndAnalyze] OEmbed Metadata fetched: mixkit man on a rooftop 231 hd ready [ingestAndAnalyze] Generated slug: dvijaykrishnan for author: Vijay Krishnan [ingestAndAnalyze] Generated slug: dvijaykrishnan for author: Vijay Krishnan [ingestAndAnalyze] Channel d86e1148-330f-48b0-b434-7c5086aa4bd6 ownership: demo-user-showcase (userId: undefined) Re-triggering analysis for 18BsJxwYETw (status: pending) [ingestAndAnalyze] Channel d86e1148-330f-48b0-b434-7c5086aa4bd6 ownership: demo-user-showcase (userId: undefined) Re-triggering analysis for 18BsJxwYETw (status: pending) GET /api/auth/get-session 200 in 617ms METADATA_FETCH: Initializing for www.amazon.com METADATA_FETCH: Service credentials missing, trying FallbackScraper for amazon Could not parse CSS stylesheet Could not parse CSS stylesheet Could not parse CSS stylesheet Could not parse CSS stylesheet METADATA_FETCH: FallbackScraper completed for amazon { hasImage: true, imageUrl: 'https://m.media-amazon.com/images/I/51hCwJFjjgL._AC_SL1500_.jpg', hasName: true } Failed to set fetch cache https://www.amazon.com/Charger-Charging-Adapter-MacBook-More-Black/dp/B0FJBJLFK3/?_encoding=UTF8&pd_rd_w=oNdeh&content-id=amzn1.sym.58368aa0-524c-474d-8728-bf3bd1751d33&pf_rd_p=58368aa0-524c-474d-8728-bf3bd1751d33&pf_rd_r=A2QTBGTRM8MAC9HCJ0XV&pd_rd_wg=rPiBE&pd_rd_r=496bfc60-2f76-483f-9dd6-92d54a727f1d&ref_=pd_hp_d_atf_dealz_cs_c&th=1 [Error: Failed to set Next.js data cache for https://www.amazon.com/Charger-Charging-Adapter-MacBook-More-Black/dp/B0FJBJLFK3/?_encoding=UTF8&pd_rd_w=oNdeh&content-id=amzn1.sym.58368aa0-524c-474d-8728-bf3bd1751d33&pf_rd_p=58368aa0-524c-474d-8728-bf3bd1751d33&pf_rd_r=A2QTBGTRM8MAC9HCJ0XV&pd_rd_wg=rPiBE&pd_rd_r=496bfc60-2f76-483f-9dd6-92d54a727f1d&ref_=pd_hp_d_atf_dealz_cs_c&th=1, items over 2MB can not be cached (2929968 bytes)] POST /showcase/18BsJxwYETw 200 in 2379ms POST /showcase/18BsJxwYETw 200 in 3037ms POST /showcase/18BsJxwYETw 200 in 1855ms GET /showcase/18BsJxwYETw 200 in 1448ms GET /showcase/18BsJxwYETw 200 in 2750ms GET /api/auth/get-session 200 in 247ms GET /favicon.ico?favicon.0b3bf435.ico 200 in 247ms ✓ Compiled in 351ms ✓ Compiled /showcase/[videoId] in 63ms GET /showcase/18BsJxwYETw 200 in 2345ms GET /showcase/18BsJxwYETw 200 in 2532ms GET /api/auth/get-session 200 in 1482ms GET /api/auth/get-session 200 in 1414ms [DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw GET /dashboard 200 in 2715ms GET /api/auth/get-session 200 in 705ms POST /dashboard 200 in 1583ms GET /api/auth/get-session 200 in 581ms POST /dashboard 200 in 891ms GET /api/auth/get-session 200 in 615ms GET /dashboard/moderation 200 in 2337ms ○ Compiling /vault/[creatorSlug] ... ✓ Compiled /vault/[creatorSlug] in 621ms GET /vault/vijay-krishnan 200 in 3103ms GET /favicon.ico?favicon.0b3bf435.ico 200 in 240ms ✓ Compiled in 180ms ✓ Compiled in 191ms ✓ Compiled /showcase/[videoId] in 105ms ⨯ ReferenceError: redirect is not defined at ShowcasePage (src/app/showcase/[videoId]/page.tsx:47:9) 45 | if (!isAuthenticated || session.user.id !== vault.channel.creatorId) { 46 | // Redirect to public vault page instead > 47 | redirect(`/vault/${vault.channel.creatorSlug}/video/${videoId}`); | ^ 48 | } 49 | 50 | return ( { digest: '3871685138' } GET /showcase/18BsJxwYETw 200 in 1938ms GET /vault/vijay-krishnan 200 in 2749ms ✓ Compiled in 180ms ✓ Compiled /showcase/[videoId] in 484ms ⨯ ReferenceError: redirect is not defined at ShowcasePage (src/app/showcase/[videoId]/page.tsx:47:9) 45 | if (!isAuthenticated || session.user.id !== vault.channel.creatorId) { 46 | // Redirect to public vault page instead > 47 | redirect(`/vault/${vault.channel.creatorSlug}/video/${videoId}`); | ^ 48 | } 49 | 50 | return ( { digest: '1553960991' } GET /showcase/18BsJxwYETw 500 in 3023ms GET /vault/vijay-krishnan 200 in 3273ms GET /vault/vijay-krishnan 200 in 2011ms GET /favicon.ico?favicon.0b3bf435.ico 200 in 284ms GET /favicon.ico 200 in 284ms GET /vault/vijay-krishnan 200 in 2060ms ✓ Compiled in 216ms ✓ Compiled /showcase/[videoId] in 57ms ⨯ [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/server/app/showcase/[videoId]/page/app-build-manifest.json'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/server/app/showcase/[videoId]/page/app-build-manifest.json' } ⨯ [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/server/app/vault/[creatorSlug]/page/app-build-manifest.json'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/server/app/vault/[creatorSlug]/page/app-build-manifest.json' } ○ Compiling /_error ... ✓ Compiled /_error in 1276ms ⨯ [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.vj1t91hckfr'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.vj1t91hckfr' } ⨯ [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.v53wro7lf5e'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.v53wro7lf5e' } [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/server/app/vault/[creatorSlug]/page/app-build-manifest.json'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/server/app/vault/[creatorSlug]/page/app-build-manifest.json' } [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/server/app/showcase/[videoId]/page/app-build-manifest.json'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/server/app/showcase/[videoId]/page/app-build-manifest.json' } ⨯ [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.ax29keftvit'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.ax29keftvit' } ⨯ [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.gy87zpikev8'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.gy87zpikev8' } [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.ebo07me3wxn'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.ebo07me3wxn' } [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.gwn9eqhd5hs'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.gwn9eqhd5hs' } ⨯ [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/server/app/vault/[creatorSlug]/page/app-build-manifest.json'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/server/app/vault/[creatorSlug]/page/app-build-manifest.json' } ⨯ [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/server/app/favicon.ico/[__metadata_id__]/route/app-paths-manifest.json'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/server/app/favicon.ico/[__metadata_id__]/route/app-paths-manifest.json' } ⨯ [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.z32umvwqj1'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.z32umvwqj1' } [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/server/app/vault/[creatorSlug]/page/app-build-manifest.json'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/server/app/vault/[creatorSlug]/page/app-build-manifest.json' } ⨯ [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.edsb1x12qc7'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.edsb1x12qc7' } [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.4bq1yrs2ndh'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.4bq1yrs2ndh' } ⨯ [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/server/app/favicon.ico/[__metadata_id__]/route/app-paths-manifest.json'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/server/app/favicon.ico/[__metadata_id__]/route/app-paths-manifest.json' } ⨯ [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/server/app/vault/[creatorSlug]/page/app-build-manifest.json'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/server/app/vault/[creatorSlug]/page/app-build-manifest.json' } ⨯ [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.qghbdxq8sxn'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.qghbdxq8sxn' } [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/server/app/vault/[creatorSlug]/page/app-build-manifest.json'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/server/app/vault/[creatorSlug]/page/app-build-manifest.json' } ⨯ [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.c457qt3a185'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.c457qt3a185' } [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.tuv0y48ab7'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.tuv0y48ab7' } ⨯ [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/server/app/favicon.ico/[__metadata_id__]/route/app-paths-manifest.json'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/server/app/favicon.ico/[__metadata_id__]/route/app-paths-manifest.json' } ✓ Compiled / in 18ms ⨯ [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/server/app/page/app-build-manifest.json'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/server/app/page/app-build-manifest.json' } ⨯ [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.cyiz8xkhuks'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.cyiz8xkhuks' } [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/server/app/page/app-build-manifest.json'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/server/app/page/app-build-manifest.json' } ⨯ [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.xmhd5mx0sl'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.xmhd5mx0sl' } [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.0dxkfv09nywb'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.0dxkfv09nywb' } ⨯ [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/server/app/page/app-build-manifest.json'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/server/app/page/app-build-manifest.json' } ⨯ [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.0ogn903518a9'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.0ogn903518a9' } [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/server/app/page/app-build-manifest.json'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/server/app/page/app-build-manifest.json' } ⨯ [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.kop2huzel7q'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.kop2huzel7q' } [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.rpf2ygm1no7'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.rpf2ygm1no7' } ⨯ [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/server/app/favicon.ico/[__metadata_id__]/route/app-paths-manifest.json'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/server/app/favicon.ico/[__metadata_id__]/route/app-paths-manifest.json' } ⨯ [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/server/app/page/app-build-manifest.json'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/server/app/page/app-build-manifest.json' } ⨯ [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.twshk2rtfmi'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.twshk2rtfmi' } [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/server/app/page/app-build-manifest.json'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/server/app/page/app-build-manifest.json' } ⨯ [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.lddmg8k1pus'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.lddmg8k1pus' } [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.4rvcrp47nbl'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/static/development/_buildManifest.js.tmp.4rvcrp47nbl' } ⨯ [Error: ENOENT: no such file or directory, open '/Users/vijaykrishnan/Dev/Vault/.next/server/app/favicon.ico/[__metadata_id__]/route/app-paths-manifest.json'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/vijaykrishnan/Dev/Vault/.next/server/app/favicon.ico/[__metadata_id__]/route/app-paths-manifest.json' } [?25h