Redirects and headers do not work together, also switching to Fluid Compute took all my sites down

I received an email a couple days from a Vercel employee asking if I’d like to move to Fluid Compute for a high-traffic deployment. The deployment is for a heavily used public API (~650 million requests/month) that used to be hosted on Vercel and used the .vercel.app subdomain, but has since moved to a custom domain, but I have a Vercel deployment to maintain the domain for backwards compatibility.

I went ahead and switched to Fluid Compute at the employee’s recommendation, and told them that I actually didn’t really need compute at all, just a redirect with a CORS header. They pointed me towards this documentation, which apparently showed that you can use redirects and headers together. This did not work in practice, and I asked the employee on Dec 11th about that. I have not received a reply.

After turning on Fluid Compute, my team’s limits were promptly overrun. I received a warning on December 11th that I was at 100%, and I decided to wait for the Vercel employee to let me know whether the documentation is wrong or if this functionality isn’t meant to work as they described.

This morning at 2am, my Fluid Compute usage hit 300% of limits, and apparently that means that all sites in my team get cut off, which is now the case. This feels really bad to have happen:

  • At 2am
  • Without prior warning in the “you hit 100%” email
  • While I have an open email chain with an employee about how to avoid hitting these limits

So:

  1. Do headers and redirects not work together in the way that they’re supposed to? I have this vercel.json:
{
  "headers": [
    {
      "source": "/(.*)",
      "headers": [
        { "key": "Access-Control-Allow-Origin", "value": "*" }
      ]
    }
  ],
  "redirects": [
    {
      "source": "/(.*)",
      "destination": "https://opensheet.elk.sh/$1",
      "permanent": true
    }
  ]
}

But the header does not take effect:

ben@Bens-MacBook-Pro-2 opensheet % curl -i https://opensheet.vercel.app/1o5t26He2DzTweYeleXOGiDjlU4Jkx896f95VUHVgS8U/Test+Sheet
HTTP/2 308
cache-control: public, max-age=0, must-revalidate
content-type: text/plain
date: Thu, 11 Dec 2025 04:15:28 GMT
location: https://opensheet.elk.sh/1o5t26He2DzTweYeleXOGiDjlU4Jkx896f95VUHVgS8U/Test+Sheet
refresh: 0;url=https://opensheet.elk.sh/1o5t26He2DzTweYeleXOGiDjlU4Jkx896f95VUHVgS8U/Test+Sheet
server: Vercel
strict-transport-security: max-age=63072000; includeSubDomains; preload
x-vercel-id: iad1::86lxk-1765426528864-83704ce05779

Redirecting...
  1. Can we un-disable the deployments under my team? I did not particularly want to use Fluid Compute, and would not have followed the employee’s request if I knew that this would take down all the sites in my team at 2am without warning.

Thanks!

Update: resolved in 1:1 emails, for posterity the solution was to use the more low-level routes config:

{
  "routes": [
    {
      "src": "/(.*)",
      "status": 308,
      "headers": {
        "Location": "https://opensheet.elk.sh/$1",
        "Access-Control-Allow-Origin": "*"
      }
    }
  ]
}

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.