Vercel Release Notes

Last updated: Oct 12, 2025

Products

All Vercel Release Notes

  • Oct 10, 2025
    • Parsed from source:
      Oct 10, 2025
    • Detected by Releasebot:
      Oct 12, 2025
    Vercel logo

    Vercel

    Zero-configuration Flask backends

    Flask apps can be deployed instantly on Vercel with no config changes, thanks to first-class Flask support on Vercel’s infra. No redirects needed and automatic scaling with Fluid compute plus active CPU pricing lets you pay only for active compute time.

    Flask, one of the most popular Python web application frameworks, can now be deployed instantly on Vercel with no configuration changes needed.

    app.py

    from flask import Flask
    
    app = Flask(__name__)
    
    @app.route("/")
    def hello_world():
        return "<p>Hello, World!</p>"
    

    A "Hello World" Flask app on Vercel

    Vercel's framework-defined infrastructure now recognizes and deeply understands Flask applications. This update removes the need for redirects in vercel.json or using the /api folder.

    Backends on Vercel use Fluid compute with Active CPU pricing by default. This means your Flask app will automatically scale up and down based on traffic, and you only pay for time where your code is actively using CPU.

    Deploy Flask on Vercel or visit the Flask on Vercel documentation.

    Original source Report a problem
  • Oct 10, 2025
    • Parsed from source:
      Oct 10, 2025
    • Detected by Releasebot:
      Oct 12, 2025
    Vercel logo

    Vercel

    Expanded Role-Based Access Control (RBAC) for Enterprise teams

    Vercel expands RBAC with multi-role per user, a new Security role, and granular extended permissions for finer control across Enterprise teams. Access Groups now support team roles and extended permissions, unlocking capabilities like project creation, production deployment, usage visibility, integrations, environments, and env vars.

    Vercel’s Role-Based Access Control (RBAC) system now supports multiple roles per user and introduces extended permissions for finer-grained access control across Enterprise teams.

    What’s new

    • Multi-role support: Assign multiple roles to a single user within Enterprise teams.
    • Security role: A new team role dedicated to managing security and compliance settings.
    • Extended permissions: Add granular capabilities that layer on top of team and project roles for precise control.
    • Access groups integration: Access Groups now support team roles and extended permissions in Directory Sync mappings.

    The new extended permissions include:

    • Create Project: Create new projects.
    • Full Production Deployment: Deploy, rollback, and promote to production.
    • Usage Viewer: View usage, prices, and invoices (read-only).
    • Integration Manager: Install and manage integrations and storage.
    • Environment Manager: Create and manage project environments.
    • Environment Variable Manager: Create and manage environment variables.

    Extended permissions apply when paired with a compatible team role.

    Learn more in the Role-Based Access Control documentation.

    Original source Report a problem
  • Oct 9, 2025
    • Parsed from source:
      Oct 9, 2025
    • Detected by Releasebot:
      Oct 12, 2025
    Vercel logo

    Vercel

    ChatGPT apps support on Vercel

    Vercel now lets you build and deploy ChatGPT apps with Next.js using MCP, running inside the OpenAI sandbox. Enjoy SSR, React Server Components, and Vercel perks like previews and instant rollback with a new Next.js template.

    You can now build and deploy ChatGPT apps directly on Vercel, with full support for modern web frameworks.

    ChatGPT apps let you integrate custom UI components and functionality within ChatGPT, deployed and served by Vercel.

    Frameworks like Next.js can now power these experiences using the Model Context Protocol (MCP), running natively inside the OpenAI sandbox rather than in a nested iframe. Check out our Next.js template.

    Build your ChatGPT apps with:

    • Next.js features like server-side rendering (SSR) and React Server Components
    • Vercel platform capabilities such as preview deployments, instant rollback, and a seamless dev-to-production pipeline

    Get started by building and deploying ChatGPT apps on Vercel using Next.js, Apps SDK, and mcp-handler.

    Original source Report a problem
  • Sep 21, 2025
    • Parsed from source:
      Sep 21, 2025
    • Detected by Releasebot:
      Oct 12, 2025
    V

    Next.js by Vercel

    v14.2.33

    Note

    This release is backporting bug fixes. It does not include all pending features/changes on canary.

    Core Changes

    • omit searchParam data from FlightRouterState before transport (#80734)

    Credits

    Huge thanks to @ztanner for helping!

    Original source Report a problem
  • Sep 21, 2025
    • Parsed from source:
      Sep 21, 2025
    • Detected by Releasebot:
      Oct 12, 2025
    V

    Next.js by Vercel

    v15.5.4

    Backport release with essential bug fixes across core and turbopack to boost stability. It tightens error handling, fixes devtools position and overlays, and improves symlink resolution, metadata routing, and large static metadata errors.

    Note

    This release is backporting bug fixes. It does not include all pending features/changes on canary.

    Core Changes

    • fix: ensure onRequestError is invoked when otel enabled (#83343)
    • fix: devtools initial position should be from next config (#83571)
    • [devtool] fix overlay styles are missing (#83721)
    • Turbopack: don't match dynamic pattern for node_modules packages (#83176)
    • Turbopack: don't treat metadata routes as RSC (#82911)
    • [turbopack] Improve handling of symlink resolution errors in track_glob and read_glob (#83357)
    • Turbopack: throw large static metadata error earlier (#82939)
    • fix: error overlay not closing when backdrop clicked (#83981)
    • Turbopack: flush Node.js worker IPC on error (#84077)

    Misc Changes

    • [CNA] use linter preference (#83194)
    • CI: use KV for test timing data (#83745)
    • docs: september improvements and fixes (#83997)

    Credits

    Huge thanks to @yiminghe, @huozhi, @devjiwonchoi, @mischnic, @lukesandberg, @ztanner, @icyJoseph, @leerob, @fufuShih, @dwrth, @aymericzip, @obendev, @molebox, @OoMNoO, @pontasan, @styfle, @HondaYt, @ryuapp, @lpalmes, and @ijjk for helping!

    Original source Report a problem
  • Sep 11, 2023
    • Parsed from source:
      Sep 11, 2023
    • Detected by Releasebot:
      Oct 12, 2025
    V

    Next.js by Vercel

    v15.5.3

    Note

    This release is backporting bug fixes. It does not include all pending features/changes on canary.

    Core Changes

    • fix: validation return types of pages API routes (#83069)
    • fix: relative paths in dev in validator.ts (#83073)
    • fix: remove satisfies keyword from type validation to preserve old TS compatibility (#83071)

    Credits

    Huge thanks to @bgub for helping!

    Original source Report a problem
  • Aug 26, 2023
    • Parsed from source:
      Aug 26, 2023
    • Detected by Releasebot:
      Oct 12, 2025
    V

    Next.js by Vercel

    v15.5.1

    Backported fixes roll out for stability across navigations, file handling, and API routes. The release tightens typesafety, Windows path normalization, and validation tweaks, while preserving ongoing Canary work.

    Note

    This release is backporting bug fixes. It does not include all pending features/changes on canary.

    Core Changes

    • fix: aliased navigations should apply scroll handling (#82900)
    • Turbopack: fix invalid NFT entry with file behind symlink (#82887)
    • fix: typesafe linking to route handlers and pages API routes (#82858)
    • fix: change "noUnknownAtRules" to "warn" for Biome (#82974)
    • fix: add path normalization to getRelativePath for Windows (#82918)
    • feat: add typesafety with config.typedRoutes to redirect() and permanentRedirect() (#82860)
    • fix: avoid importing types that will be unused (#82856)
    • fix: update the config.api.responseLimit type (#82852)
    • fix: update validation return types (#82854)

    Credits

    Huge thanks to @bgub, @mischnic, and @ztanner for helping!

    Original source Report a problem
  • Aug 26, 2023
    • Parsed from source:
      Aug 26, 2023
    • Detected by Releasebot:
      Oct 12, 2025
    V

    Next.js by Vercel

    v15.5.2

    Note

    This release is backporting bug fixes. It does not include all pending features/changes on canary.

    Core Changes

    • fix: disable unknownatrules lint rule entirely (#83059)
    • revert: add ?dpl to fonts in /_next/static/media (#83062)

    Credits

    Huge thanks to @bgub and @ztanner for helping!

    Original source Report a problem
  • Aug 19, 2023
    • Parsed from source:
      Aug 19, 2023
    • Detected by Releasebot:
      Oct 12, 2025
    V

    Next.js by Vercel

    v15.5.0

    Major update brings broad Next.js and Turbopack improvements, React upgrades, and new UI components. Expect performance boosts, smarter caching, stability fixes, and richer devtools, plus stricter code checks and routing improvements.

    Core Changes

    • Use and enforce exhaustive switch statements for work unit store: #81577
    • Enable @typescript-eslint/switch-exhaustiveness-check rule: #81583
    • [dynamicIO] use RSC dynamicness to control partial vs complete PPR result: #81627
    • [dynamicIO] Do not use React.unstable_postpone() : #81652
    • feat: new detachable panel UI: #81483
    • Turbopack: content-hash PageLoaderAsset: #81450
    • [segment explorer] fix content overflow styling: #81649
    • Improve reliability of owner stacks for async I/O errors: #81501
    • fix(router): Prevent redirect loop on root data requests with basePath: #81096
    • Ensure custom NextServer config is honored: #81681
    • Fix before interactive incorrectly render css: #81146
    • perf: memorize exclude function in webpack config: #81525
    • Also enforce experimental features when there's no next config file: #81679
    • feat(next/image): warn when images.qualities is undefined: #81690
    • feat(build): optimize filterUniqueParamsCombinations to generate sub-combinations: #81321
    • Update NextAdapter type and re-export: #81692
    • upgrade to [email protected]: #80123
    • [metadata] replace for initial body icon case: #81688
    • [segment explorer] remove dev panel ui flag: #81670
    • Simplify running test apps locally with ppr or dynamicIO enabled: #81668
    • [turbopack] Return cached Promise from turbopack_load_by_url : #81663
    • Upgrade React from 97cdd5d3-20250710 to 2f0e7e57-20250715 : #81678
    • Delete unused renderToString function: #81707
    • Discard prerendered route handler data from FS cache after revalidation: #81611
    • Upgrade React from 2f0e7e57-20250715 to d85ec5f5-20250716 : #81708
    • Ignore pending revalidations during prerendering: #81621
    • [turbopack] Clear chunk cache on HMR instead of creating new next-server VM: #81664
    • fix: rootParams should throw in client when fallbackParams are not present: #81711
    • perf(build): optimize buildAppStaticPaths performance and add helper function: #81386
    • Turbopack: Support string without options for @next/mdx: #81713
    • [Segment Cache] Support dynamic head prefetching: #81677
    • [sourcemaps] Consistent cursor columns: #81375
    • fix: revert client segment route changes for sub shell generation: #81731
    • fix: pages router metadata bugs with React 19: #81733
    • Improve error handling for headers / cookies / draftMode in 'use cache' : #81716
    • [devtool] fix duplicate rendered indicator on server: #81729
    • [devtool] enable segment explorer by default: #81737
    • [turbopack] Stop exposing globals from Turbopack runtime: #81727
    • Remove unnecessary await: #81761
    • [chore] bump zod to latest v3: #81757
    • feat(turbopack): Log anonymized internal error (panic) information to telemetry: #81272
    • fix: revert client segment route changes for sub shell generation: #81740
    • bugfix: static resources staleTime should be renewed once refetched: #81771
    • [devtool] move font styling to global.css: #81782
    • [devtool] copy decoded info of error details: #81735
    • fix(build): add sourcePage context for PPR dynamic route lambda creation: #81781
    • refactor: rename experimental.dynamicIO to experimental.cacheComponents: #81562
    • Properly handle hanging promise rejections during prerendering: #81754
    • Upgrade React from d85ec5f5-20250716 to dffacc7b-20250717 : #81767
    • Refactor: Get rid of overly generic getExpectedRequestStore function: #81791
    • [devtool] migrate css reset to global.css: #81783
    • [dev-tools] Robust shortcut detection: #81756
    • [segment explorer] hide for pages router: #81813
    • [devtool] fix scrollbar styling: #81814
    • fix(ppr): ensure fallback route params trigger dynamic resume: #81812
    • [devtools] restart server pending state: #80858
    • Turbopack: fix dist dir on Windows: #81758
    • fix: remove boundary sentinel from RSC responses: #81857
    • [sourcemaps] Try VM for retrieving source maps first: #81869
    • [devtools] save user config inside .next/cache : #81807
    • Server: Remove unused code: #81886
    • refactor: encapsulate content type within RenderResult: #81861
    • refactor: handle null RenderResult responses gracefully: #81895
    • Upgrade React from dffacc7b-20250717 to e9638c33-20250721 : #81899
    • chore(devtools): sync todos to linear: #81901
    • Introduce 'use cache: private' : #81816
    • chore(deps): update browserslist : #81851
    • Remove web-server from edge-ssr-app: #81389
    • Stabilize node middleware support: #81907
    • Add run-turbopack-compiler trace span: #81917
    • fix: support calling onClose multiple times in edge-ssr-app: #81911
    • fix: logging the correct process for listened port: #81903
    • Build: Include rewrites in manifest generation: #81894
    • Routing: Clean up some code: #81932
    • [sourcemaps] Ensure codeframe when calling Client Functions from Server: #81918
    • [segment explorer] missing file suggestion: #81617
    • [turbopack] Always print trace labels in headers: #81728
    • Revert "[metadata] use https protocol for schema urls": #81934
    • Upgrade React from e9638c33-20250721 to 7513996f-20250722 : #81940
    • Upgrade to swc v33: #81750
    • Remove extra base-server code: #81944
    • Turbopack: flatten sourceInfo to avoid objects, reorder args, compress node.js entry: #81545
    • Fix dynamicParams false layout case in dev: #81990
    • Initial MCP implementation: #81770
    • Fix: Unresolved param in x-nextjs-rewritten-query: #81991
    • Turbopack: Add an option to use system TLS certificates (fixes #79060, fixes #79059 ): #81818
    • Turbopack: Remove unused proxy option in turbo-tasks-fetch, lightly document HTTP_PROXY/HTTPS_PROXY environment variables: #81905
    • Upgrade React from 7513996f-20250722 to edac0dde-20250723 : #81984
    • [devtools] Cleanup folder structure: #82012
    • [devtools] Fix "open in editor" for locations in stackframes: #82013
    • [Segment Cache] Fix: Key by rewritten search: #81986
    • Upgrade vercel og and remove yoga type patching: #81937
    • [perf] cache load config results: #80570
    • Turbopack: use prototype for turbopack context for better runtime performance: #81547
    • [reactcompiler] Test with latest RC: #82002
    • [devtools] Fix various exhaustive-deps violations: #82010
    • [devtools] Apply React Compiler to Next.js DevTools source: #82004
    • Upgrade React from edac0dde-20250723 to 3d14fcf0-20250724 : #82020
    • Adjusted the warning message to be more descriptive: #82054
    • Track fallback params on workUnitStore: #82003
    • Fix API stripping JSON incorrectly: #82061
    • Upgrade React from 3d14fcf0-20250724 to 19baee81-20250725 : #82063
    • use FetchStrategy to control prefetching behavior everywhere: #82032
    • [Segment Cache] set fetchStrategy on segments from a dynamic request: #82059
    • Revert "Upgrade vercel og and remove yoga type patching (#81937)": #82066
    • Optimize segment data routes: #82033
    • Turbopack: write tasks doesn't need to be session dependent, as effects will restore: #78727
    • [sourcemaps] Fully sourcemap stacks on the Server: #81904
    • fix(Rspack): use loaderContext.utils.contextify to replace ModuleFilenameHelpers.createFilename: #82104
    • next/root-params: #80255
    • fix(next/image): fix image-optimizer.ts headers: #82114
    • Upgrade React from 19baee81-20250725 to eaee5308-20250728 : #82120
    • Fix validateRSCRequestHeaders incorrect redirect: #82119
    • fix(next/image): improve and simplify detect-content-type: #82118
    • [CacheComponents] Use fallback params when validating dynamic routes in dev: #82069
    • Extract getDynamicParam to a shared module: #82137
    • Fix i18n fallback: false collision: #82136
    • [segment explorer] normalize path when running inside monorepo: #82146
    • [segment explorer] windows compatibility: #82147
    • Upgrade React from eaee5308-20250728 to 9be531cd-20250729 : #82159
    • Ensure setAssetPrefix updates config instance: #82160
    • Revert "Fix tracing of server actions imported by client components (#78968)": #82161
    • Remove useMDXComponents argument: #80871
    • Fix RSC hash validation for middleware external rewrites: #82176
    • @next/codemod: update docs url in README: #82135
    • @next/codemod: Add experimental.turbo to turbopack codemod for Next.js configs: #82134
    • refactor: lowercase app router header values: #82169
    • Strip internals from NextRequest types: #82172
    • allow root params access in private caches: #82125
    • [devtool] bump base-ui to 1.0.0-beta.2: #82206
    • Upgrade @vercel og: #82201
    • Upgrade React from 9be531cd-20250729 to 9784cb37-20250730 : #82207
    • Fix: the unexpected clearing of symbolic link directories: #82191
    • [next-dev] Set TURBOPACK env before loading config: #82162
    • fix: display multiple lockfile warn if neither outputFileTracingRoot or turbopack.root option is provided: #82164
    • Revert "Initial MCP implementation (#81770)": #82217
    • Revert "Upgrade @vercel og (#82201)": #82219
    • Fix: Don't bail out of prefetch if head is missing: #82216
    • Upgrade React from 9784cb37-20250730 to c260b38d-20250731 : #82247
    • [Cache Components] Runtime prefetching: #81088
    • Parse dynamic params on the client: #82185
    • Mark bun builtin modules as external (fixes #75220): #77616
    • Turbopack: Compact only at the end for short sessions: #82224
    • feat: add fallback root params support for prefetch segment data routes: #82282
    • feat: add route context to prerender error messages: #82283
    • feat: automatically generate route types: #81396
    • [Cache Components] Reset PrerenderStore after generating RSC payload: #82286
    • Include eslint-plugin-react-hooks in React sync: #82294
    • [devtools] Remove unnecessary cascading update: #82295
    • Turbopack: name the module factory function: #73553
    • Update font data: #82292
    • fix: next/root-params erroring when rerendering after action: #82326
    • Remove params from segment path: #82249
    • Upgrade React from c260b38d-20250731 to be11cb5c-20250804 : #82339
    • fix: OTel root span should indicate error status on exceptions: #82212
    • [Cache Components] Allow span creation while prerendering: #82350
    • feat(tu... (truncated for brevity)
    Original source Report a problem
  • Aug 18, 2023
    • Parsed from source:
      Aug 18, 2023
    • Detected by Releasebot:
      Oct 12, 2025
    V

    Next.js by Vercel

    v15.4.7

    Note

    This release is backporting bug fixes. It does not include all pending features/changes on canary.

    Core Changes

    • fix router handling when setting a location response header #82588

    Credits

    Huge thanks to @ztanner for helping!

    Original source Report a problem