[▲ Vercel Community](/) · [Categories](/categories) · [Latest](/latest) · [Top](/top) · [Live](/live) [Help](/c/help/9) # iOS Calendar subscription fails with verification failed error on Vercel hosted .ics feed 30 views · 0 likes · 1 post Kemal023 (@kemal023) · 2026-02-23 ## Overview I’m hosting a `Next.js` / `FastAPI` project on `Vercel` that provides a dynamic iCalendar (`.ics`) feed for users to subscribe to. The feed works perfectly on every platform except the native `iOS Calendar` app, which throws a “Verification failed” error. ## Environment * **Framework:** `Next.js` with `FastAPI` backend * **Domain:** `www.gocutit.com` * **Endpoint:** `/api/sync/calendar/[user].ics` * **Vercel Plan:** Hobby ## What Works  * `Google Calendar` subscription — works perfectly * `Microsoft Outlook` subscription — works perfectly * Direct browser access — returns `200 OK`, downloads valid `.ics` file * The `.ics` file is fully `RFC 5545` compliant with correct `text/calendar` `Content-Type` ## What Fails  * `iOS` native `Calendar` app (Settings → Calendar → Accounts → Add Subscribed Calendar) * Error message: > **Error: Verification failed** * The `iOS Calendar` uses the `dataaccessd` user-agent for these requests ## Troubleshooting Completed 1. **Disabled Deployment Protection** via `OPTIONS` Allowlist for the `/api/sync/calendar` path 2. **Added CORS headers** in `vercel.json`: * `Access-Control-Allow-Origin: *` * `Access-Control-Allow-Methods: GET, OPTIONS, HEAD` 3. **Tested with a static file**: Placed a hardcoded `test.ics` file in the `/public` folder — same “Verification failed” error on `iOS` 4. **Firewall Configuration:** * Created a custom bypass rule for path `/api/sync/calendar` — Rule is **Active** * **Bot Protection:** Disabled * **Attack Challenge Mode:** Disabled * Bypass rule is positioned above all other rules 5. **Verified Deployment Protection** is not the issue — accessing the URL in an incognito browser successfully downloads the `.ics` file ## Key Finding  When attempting to subscribe from `iOS Calendar`, **no requests appear in Vercel logs at all**. This indicates the requests are being blocked or dropped at `Vercel`’s Edge layer before reaching the application. This happens even though: * All protections are disabled * Custom bypass rules are in place * The endpoint is fully public and accessible from all other clients ## Theory It appears `Vercel`’s Edge network is specifically blocking or dropping connections from Apple’s `dataaccessd` user-agent, possibly due to: * `TLS`/`SSL` handshake handling specific to `iOS` * Some undocumented bot filtering at the Edge layer * The way `iOS Calendar` probes/validates URLs before subscribing ## Request Has anyone successfully hosted an `.ics` calendar subscription feed on `Vercel` that works with the native `iOS Calendar` app? Is there a known workaround or configuration required to allow the `dataaccessd` user-agent through `Vercel`’s Edge network? Any help would be greatly appreciated!