Skip to content

fix(auth): stop vercel oauth infinite loop - #125

Merged
LucasSantana-Dev merged 1 commit into
mainfrom
fix/deploy-webhook-timeouts
Mar 10, 2026
Merged

LucasSantana-Dev merged 1 commit into
mainfrom
fix/deploy-webhook-timeouts

Conversation

@LucasSantana-Dev

@LucasSantana-Dev LucasSantana-Dev commented Mar 10, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • fix Vercel auth loop by removing self-referential /api rewrite that caused 508 INFINITE_LOOP
  • add frontend VITE_API_BASE_URL support so hosted frontend can target a dedicated backend API origin
  • harden deploy webhook step with explicit curl connect/request timeouts to prevent long hangs
  • document hosted frontend API base env in README and webapp setup docs

Root Cause

vercel.json rewrote /api/:path* to https://lucky.lucassantana.tech/api/:path*.
When the same custom domain was attached to Vercel, auth requests looped through Vercel and returned 508 INFINITE_LOOP.

Validation

  • npm run type:check --workspace=packages/frontend
  • workflow YAML parse with python3 + yaml.safe_load
  • npm run lint --workspace=packages/frontend currently fails from existing repo-wide ESLint parser/config issues unrelated to this patch

Summary by CodeRabbit

Release Notes

  • Bug Fixes

    • Fixed Vercel routing issue that caused 508 INFINITE_LOOP errors on OAuth login.
    • Improved deploy webhook reliability with stricter timeout settings to prevent CI job hangs.
    • Music now-playing updates now reuse a single message per channel to reduce chat spam.
  • New Features

    • Added configurable API base URL support for hosted frontend deployments via environment variable.
  • Documentation

    • Added setup guidance for hosted frontend deployments to properly configure backend API routing.

@vercel

vercel Bot commented Mar 10, 2026 •

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
lucky Ready Ready Preview, Comment Mar 10, 2026 0:46am

@netlify

netlify Bot commented Mar 10, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for regal-bunny-0c8efe ready!

Name Link
🔨 Latest commit 5a4fb82
🔍 Latest deploy log https://app.netlify.com/projects/regal-bunny-0c8efe/deploys/69af69a3d9b0350008d68412
😎 Deploy Preview https://deploy-preview-125--regal-bunny-0c8efe.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai

coderabbitai Bot commented Mar 10, 2026 •

Copy link
Copy Markdown

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

This PR fixes Vercel API routing loops by removing the rewrites configuration and adds support for configurable frontend API base URLs via the VITE_API_BASE_URL environment variable. It also tightens curl timeout settings in the deploy workflow and updates corresponding documentation.

Changes

Cohort / File(s) Summary
Deployment & CI Configuration
.github/workflows/deploy.yml, vercel.json
Replaced single curl timeout flag with separate connection and overall timeouts; removed API rewrites proxy rule that caused routing loops.
Frontend API Configuration
packages/frontend/src/services/api.ts, packages/frontend/src/vite-env.d.ts
Added environment-based API base URL override via VITE_API_BASE_URL with fallback to '/api'; added TypeScript ambient declarations for type-safe environment variable access.
Documentation & Changelog
CHANGELOG.md, README.md, docs/WEBAPP_SETUP.md
Added changelog entries and setup guidance documenting Vercel routing fix, configurable API base URL for hosted deployments, and stricter deploy webhook timeouts.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested labels

ci, size/m

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'fix(auth): stop vercel oauth infinite loop' directly addresses the root cause fixed in the PR: removing the self-referential /api rewrite in vercel.json that caused 508 INFINITE_LOOP errors. This is the primary issue resolved by the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/deploy-webhook-timeouts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
1 Security Hotspot

See analysis details on SonarQube Cloud

@github-actions

Copy link
Copy Markdown

Size Change: +13 B (0%)

Total Size: 291 kB

Filename Size Change
packages/frontend/dist/assets/AutoMessages-CAZ9ILRq.js 1.56 kB +1.56 kB (new file) 🆕
packages/frontend/dist/assets/AutoMessages-CsB4iqEw.js 0 B -1.55 kB (removed) 🏆
packages/frontend/dist/assets/AutoMod-CkaxOnut.js 0 B -2.73 kB (removed) 🏆
packages/frontend/dist/assets/AutoMod-PM47z1iK.js 2.73 kB +2.73 kB (new file) 🆕
packages/frontend/dist/assets/badge-CZIGpAkY.js 0 B -456 B (removed) 🏆
packages/frontend/dist/assets/badge-D5xxJKCI.js 453 B +453 B (new file) 🆕
packages/frontend/dist/assets/Card-6XXy7xeq.js 0 B -380 B (removed) 🏆
packages/frontend/dist/assets/Card-B_wNI2Fw.js 379 B +379 B (new file) 🆕
packages/frontend/dist/assets/CommandsConfig-DAHKiibI.js 0 B -1.43 kB (removed) 🏆
packages/frontend/dist/assets/CommandsConfig-DBVXHZqG.js 1.43 kB +1.43 kB (new file) 🆕
packages/frontend/dist/assets/Config-BmhDgnWX.js 0 B -1.61 kB (removed) 🏆
packages/frontend/dist/assets/Config-D0pHLvMI.js 1.61 kB +1.61 kB (new file) 🆕
packages/frontend/dist/assets/CustomCommands-BE3wRBIk.js 0 B -2.1 kB (removed) 🏆
packages/frontend/dist/assets/CustomCommands-Dax3g6CY.js 2.1 kB +2.1 kB (new file) 🆕
packages/frontend/dist/assets/DashboardOverview-BBHFd43J.js 0 B -2.93 kB (removed) 🏆
packages/frontend/dist/assets/DashboardOverview-BvjLH0-K.js 2.93 kB +2.93 kB (new file) 🆕
packages/frontend/dist/assets/Features-DFP5rRID.js 0 B -2.39 kB (removed) 🏆
packages/frontend/dist/assets/Features-Vyj-XwAm.js 2.39 kB +2.39 kB (new file) 🆕
packages/frontend/dist/assets/index-B9uJzOYn.js 0 B -66.9 kB (removed) 🏆
packages/frontend/dist/assets/index-CyYQz5UE.js 66.9 kB +66.9 kB (new file) 🆕
packages/frontend/dist/assets/input-DZrf_dPp.js 427 B +427 B (new file) 🆕
packages/frontend/dist/assets/input-s6XneLe4.js 0 B -427 B (removed) 🏆
packages/frontend/dist/assets/label-CDJ__v8u.js 0 B -443 B (removed) 🏆
packages/frontend/dist/assets/label-DLe_jZoJ.js 444 B +444 B (new file) 🆕
packages/frontend/dist/assets/LastFm-BFgUN6-q.js 1.52 kB +1.52 kB (new file) 🆕
packages/frontend/dist/assets/LastFm-CnqnT4SQ.js 0 B -1.52 kB (removed) 🏆
packages/frontend/dist/assets/Login-B-l-HFfE.js 0 B -2.23 kB (removed) 🏆
packages/frontend/dist/assets/Login-CPPo7TNZ.js 2.23 kB +2.23 kB (new file) 🆕
packages/frontend/dist/assets/Lyrics-Ctm0ufQE.js 1.31 kB +1.31 kB (new file) 🆕
packages/frontend/dist/assets/Lyrics-q1v1H9vg.js 0 B -1.3 kB (removed) 🏆
packages/frontend/dist/assets/Moderation-D-82mKiq.js 3.75 kB +3.75 kB (new file) 🆕
packages/frontend/dist/assets/Moderation-w7mhSg8P.js 0 B -3.76 kB (removed) 🏆
packages/frontend/dist/assets/ModerationConfig-CcZ2-F_2.js 0 B -1.93 kB (removed) 🏆
packages/frontend/dist/assets/ModerationConfig-CrdfuHDB.js 1.93 kB +1.93 kB (new file) 🆕
packages/frontend/dist/assets/Music-B-9mJwQj.js 0 B -6.08 kB (removed) 🏆
packages/frontend/dist/assets/Music-DRmiO6K1.js 6.08 kB +6.08 kB (new file) 🆕
packages/frontend/dist/assets/MusicConfig-3OX1b5bH.js 0 B -1.62 kB (removed) 🏆
packages/frontend/dist/assets/MusicConfig-nP0RtkwW.js 1.62 kB +1.62 kB (new file) 🆕
packages/frontend/dist/assets/select-C66wSgVR.js 0 B -1.19 kB (removed) 🏆
packages/frontend/dist/assets/select-OhCULZoc.js 1.19 kB +1.19 kB (new file) 🆕
packages/frontend/dist/assets/ServerLogs-CwBwtSaO.js 0 B -2.82 kB (removed) 🏆
packages/frontend/dist/assets/ServerLogs-D5a-K7-t.js 2.82 kB +2.82 kB (new file) 🆕
packages/frontend/dist/assets/ServerSettings-CGUg3tMq.js 0 B -1.89 kB (removed) 🏆
packages/frontend/dist/assets/ServerSettings-D7dD3pvQ.js 1.89 kB +1.89 kB (new file) 🆕
packages/frontend/dist/assets/ServersPage-B-m1c00l.js 2.4 kB +2.4 kB (new file) 🆕
packages/frontend/dist/assets/ServersPage-CuLHWd9b.js 0 B -2.4 kB (removed) 🏆
packages/frontend/dist/assets/Skeleton-C6G14B7N.js 0 B -229 B (removed) 🏆
packages/frontend/dist/assets/Skeleton-Co_-kx2c.js 227 B +227 B (new file) 🆕
packages/frontend/dist/assets/switch-D3Cnii1B.js 0 B -515 B (removed) 🏆
packages/frontend/dist/assets/switch-D3QIgkt2.js 516 B +516 B (new file) 🆕
packages/frontend/dist/assets/TrackHistory-CXfpoTK2.js 0 B -1.84 kB (removed) 🏆
packages/frontend/dist/assets/TrackHistory-DDAC3F1J.js 1.84 kB +1.84 kB (new file) 🆕
packages/frontend/dist/assets/TwitchNotifications-1nuMrLys.js 0 B -1.57 kB (removed) 🏆
packages/frontend/dist/assets/TwitchNotifications-D98KR8RH.js 1.57 kB +1.57 kB (new file) 🆕
packages/frontend/dist/assets/useGuildSelection-BgaZuqDK.js 0 B -295 B (removed) 🏆
packages/frontend/dist/assets/useGuildSelection-G6zGbVtw.js 296 B +296 B (new file) 🆕
ℹ️ View Unchanged
Filename Size
packages/frontend/dist/assets/index-DLqvhx7-.css 13 kB
packages/frontend/dist/assets/usePageMetadata-Dudc5JrX.js 287 B
packages/frontend/dist/assets/vendor-forms-C1Gy4syj.js 21.1 kB
packages/frontend/dist/assets/vendor-radix-BTf9AecN.js 33.5 kB
packages/frontend/dist/assets/vendor-react-Bu1Oeml_.js 17.3 kB
packages/frontend/dist/assets/vendor-state-Szs8I3iE.js 25 kB
packages/frontend/dist/assets/vendor-ui-DSWwm_-g.js 64.2 kB
packages/frontend/dist/assets/zod-CLxBCFgw.js 1.58 kB

compressed-size-action

@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
1 Security Hotspot

See analysis details on SonarQube Cloud

@LucasSantana-Dev
LucasSantana-Dev merged commit 17b66af into main Mar 10, 2026
14 of 16 checks passed
@LucasSantana-Dev
LucasSantana-Dev deleted the fix/deploy-webhook-timeouts branch March 10, 2026 00:49
LucasSantana-Dev added a commit that referenced this pull request May 13, 2026
Remove self-referential Vercel API rewrite, add VITE_API_BASE_URL support, and enforce deploy webhook curl timeouts.

This branch was successfully deployed

1 active deployment
Preview — 5a4fb82c Deployed Mar 10, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant