dvijaykrishnan's picture
feat: Implement access control for showcase and moderation pages, refactor vault data fetching to include all creator videos, and auto-approve manually added products.
0398c7c
Raw
History Blame Contribute Delete
73.6 kB
> 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 | <TopEvergreenVideos creatorSlug={channels.length > 0 ? channels[0].creatorSlug : undefined} />
| ^
217 |
218 | <YouTubeConnectSection
219 | channels={verifiedChannels} {
digest: '2435255349'
}
GET /dashboard 200 in 3175ms
⚠ Fast Refresh had to perform a full reload due to a runtime error.
✓ Compiled in 82ms
GET /api/auth/get-session 200 in 652ms
[DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw
⨯ ReferenceError: TopEvergreenVideos is not defined
at DashboardPage (src/app/dashboard/page.tsx:216:18)
214 |
215 | {/* Top Evergreen Videos */}
> 216 | <TopEvergreenVideos creatorSlug={channels.length > 0 ? channels[0].creatorSlug : undefined} />
| ^
217 |
218 | <YouTubeConnectSection
219 | channels={verifiedChannels} {
digest: '2435255349'
}
GET /dashboard 500 in 1218ms
GET /favicon.ico?favicon.0b3bf435.ico 200 in 256ms
GET /favicon.ico 200 in 258ms
✓ Compiled in 320ms
GET /api/auth/get-session 200 in 664ms
✓ Compiled /dashboard in 40ms
[DashboardPage] userId: pvcRv8Ruf0FqiKwPLSUYjpMhBkTnyhJw
⨯ ReferenceError: Youtube is not defined
at VideoListRow (src/features/dashboard/components/video-list-row.tsx:82:26)
80 | <div className="flex flex-wrap items-center gap-3 text-[11px] text-muted-foreground">
81 | <span className="flex items-center gap-1 font-medium">
> 82 | <Youtube className="h-3 w-3 text-red-500" />
| ^
83 | {video.channelName}
84 | </span>
85 | <span>•</span> {
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