Strapi v4 to Strapi 5 breaking changes
Page summary:A comprehensive index of breaking changes between Strapi v4 and v5, organized by category (database, dependencies, configuration, APIs) with information on plugin impact and codemod support.
The present page lists all the breaking changes introduced in Strapi 5. Breaking changes are grouped into topic-related categories, and for each line in the following tables line you will find:
- a short description of the breaking change,
- and 2 other columns, "Affects plugins" and "Handled by codemods", that sum up whether the breaking change also affects plugins and whether the breaking change is automatically handled by a codemod from the upgrade CLI tool.
You can click on the description of any breaking change in the following tables to jump to the corresponding page with more details.
Tips
- To view a full list of available codemods, run the
npx @strapi/upgrade codemods lscommand in your terminal. - To have a deeper look at the code executed by the codemods, head over to the list of codemods in the GitHub repository.
Database
| Description | Affects plugins | Handled by codemods |
|---|---|---|
| Content types always have feature columns | Yes | No |
| MySQL v5 is not supported anymore | No | No |
| Database identifiers longer than 55 characters will be automatically shortened | Yes | ✅ Yes |
Only the better-sqlite3 package is supported for the SQLite client | No | ✅ Yes |
Only the mysql2 package is supported for the MySQL client | No | ✅ Yes |
Dependencies
| Description | Affects plugins | Handled by codemods |
|---|---|---|
| The CLI default package manager is not yarn anymore | No | No |
| Vite is the default bundler in Strapi 5 | Yes | No |
Strapi 5 uses react-router-dom v6 | Yes | ✅ Yes |
Strapi 5 uses koa-body v6 | Yes | No |
| Webpack aliases are removed in Strapi 5 | Yes | No |
| Apollo Server v3 upgraded to Apollo Server v4 | Yes | No |
Configuration
Strapi objects, methods, packages, and back-end customization
| Description | Affects plugins | Handled by codemods |
|---|---|---|
strapi.fetch uses the native fetch() API | Yes | No |
| strapi factories import have changed | Yes | 👷 Partly |
The isSupportedImage method is removed in Strapi 5 | Yes | No |
strapi-utils has been refactored | Yes | ✅ Yes |
| Core service methods use the Document Service API | Yes | No |
| i18n is now part of the strapi core | Yes | ✅ Yes |
Plugins, providers, admin panel and front-end customization
Content API
Was this page helpful?