Directus
directus.io · Headless CMS
Open-source data platform and headless CMS for SQL databases.
50 items · 53 source threads · 2 source types · updated 2026-09
No items match these filters.
Pain points 36
| Item | Area | Severity | Support | Last seen |
|---|---|---|---|---|
| Nested update permission filters stopped working in 10.3.0 A permission rule allowing edits to A only when related B is published blocks all edits after upgrading to 10.3.0, though earlier versions worked. Affects: admins with relational permission rules |
Permissions & security | Causes churn | 2 sources | 2023-08 |
| ||||
| Fresh install on MSSQL fails during migrations Bootstrapping against a cloud MSSQL database fails when a migration tries to drop a column that other objects depend on. Affects: teams using SQL Server |
Setup & onboarding | Causes churn | 2 sources | 2023-07 |
| ||||
| Version bump breaks startup with a Zod error in extension setup After upgrading Directus, the instance crashes at startup with a Zod discriminated union error while an extension has its own zod dependency. Affects: developers running custom extensions in Docker |
Self-hosting & upgrades | Blocks work | 2 sources | 2025-08 |
| ||||
| Filtering M2M with two categories in an AND returns nothing Querying items tagged with two categories through an _and filter returns no results although each category alone works, in both the UI and GraphQL. Affects: users with many-to-many categories |
API & developer experience | Blocks work | 2 sources | 2023-12 |
| ||||
| SDK keeps refreshing expired token before public calls After a refresh token expires, public SDK calls still attempt a token refresh and fail, leaving the site unusable until the cookie is cleared. Affects: developers mixing logged-in and anonymous access |
API & developer experience | Blocks work | 2 sources | 2022-01 |
| ||||
| SSO login ends in a 404 on Firefox Locked: summary and evidence are part of Sprint Pass and Pro |
Permissions & security | Blocks work | 2 sources | 2021-09 |
| No pricing transparency for self-hosted licence, sales call required Locked: summary and evidence are part of Sprint Pass and Pro |
Pricing & plans | Causes churn | 1 source | 2025-02 |
| Custom extension crashes the whole instance on upsertOne Locked: summary and evidence are part of Sprint Pass and Pro |
Reliability & bugs | Causes churn | 1 source | 2023-09 |
| Existing S3 assets return 403 after upgrade Locked: summary and evidence are part of Sprint Pass and Pro |
Self-hosting & upgrades | Causes churn | 1 source | 2023-01 |
| Schema changes wipe M2M content in SQLite Locked: summary and evidence are part of Sprint Pass and Pro |
Reliability & bugs | Causes churn | 1 source | 2022-01 |
| Upgrade breaks login because of a missing relations column Locked: summary and evidence are part of Sprint Pass and Pro |
Self-hosting & upgrades | Causes churn | 1 source | 2021-05 |
| Directus described as buggy, very slow and missing features Locked: summary and evidence are part of Sprint Pass and Pro |
Performance | Causes churn | 1 source | 2021-04 |
| Multi-database support blocks use of Postgres-specific features Locked: summary and evidence are part of Sprint Pass and Pro |
API & developer experience | Blocks work | 1 source | 2025-02 |
| Fundamental validation logic still missing even in paid cloud Locked: summary and evidence are part of Sprint Pass and Pro |
Reliability & bugs | Blocks work | 1 source | 2025-02 |
| Foreign keys with different type or NOT NULL not detected on existing DB Locked: summary and evidence are part of Sprint Pass and Pro |
Setup & onboarding | Blocks work | 1 source | 2025-02 |
| Content versions return only the delta, not relational data Locked: summary and evidence are part of Sprint Pass and Pro |
API & developer experience | Blocks work | 1 source | 2024-06 |
| Session auth mode lacks documentation for native apps Locked: summary and evidence are part of Sprint Pass and Pro |
Documentation | Blocks work | 1 source | 2024-05 |
| Headless CMS plus static site rebuild adds too much complexity Locked: summary and evidence are part of Sprint Pass and Pro |
Setup & onboarding | Blocks work | 1 source | 2023-12 |
| BSL licence contradicts open-source claims on homepage and README Locked: summary and evidence are part of Sprint Pass and Pro |
Pricing & plans | Blocks work | 1 source | 2023-04 |
| Collection field edits not shown after Docker update Locked: summary and evidence are part of Sprint Pass and Pro |
Self-hosting & upgrades | Blocks work | 1 source | 2023-04 |
| User logged out on every app reload Locked: summary and evidence are part of Sprint Pass and Pro |
Reliability & bugs | Blocks work | 1 source | 2023-03 |
| Schema snapshot apply leaves collections forbidden until a dummy change Locked: summary and evidence are part of Sprint Pass and Pro |
Data export & migration | Blocks work | 1 source | 2023-01 |
| Token-based auth too complex for server-side Next.js use Locked: summary and evidence are part of Sprint Pass and Pro |
API & developer experience | Blocks work | 1 source | 2022-07 |
| Cannot set a permission check on create across relations Locked: summary and evidence are part of Sprint Pass and Pro |
Permissions & security | Blocks work | 1 source | 2022-02 |
| GraphQL schema ignores required fields so types are wrong Locked: summary and evidence are part of Sprint Pass and Pro |
API & developer experience | Blocks work | 1 source | 2021-12 |
| Save as copy does not copy O2M and M2M related items Locked: summary and evidence are part of Sprint Pass and Pro |
UI & usability | Blocks work | 1 source | 2021-11 |
| Deleting a user who uploaded files hits a foreign key error Locked: summary and evidence are part of Sprint Pass and Pro |
Reliability & bugs | Blocks work | 1 source | 2021-11 |
| Date fields display one day earlier than stored Locked: summary and evidence are part of Sprint Pass and Pro |
Reliability & bugs | Blocks work | 1 source | 2021-08 |
| GraphQL create with existing relation demands create fields Locked: summary and evidence are part of Sprint Pass and Pro |
API & developer experience | Blocks work | 1 source | 2021-08 |
| CORS fails when several domains use one Directus instance Locked: summary and evidence are part of Sprint Pass and Pro |
Setup & onboarding | Blocks work | 1 source | 2021-05 |
| Install fails with Couldn't Reach API and no useful logs Locked: summary and evidence are part of Sprint Pass and Pro |
Setup & onboarding | Blocks work | 1 source | 2019-12 |
| Hard PHP extension dependencies complicate dev environments and CI/CD Locked: summary and evidence are part of Sprint Pass and Pro |
Setup & onboarding | Blocks work | 1 source | 2018-07 |
| Docs do not explain how to register public users Locked: summary and evidence are part of Sprint Pass and Pro |
Documentation | Blocks work | 1 source | 2018-03 |
| Hook payload differs depending on UI, API or CSV trigger Locked: summary and evidence are part of Sprint Pass and Pro |
API & developer experience | Annoyance | 1 source | 2025-09 |
| Slow to notice schema changes made directly in the database Locked: summary and evidence are part of Sprint Pass and Pro |
UI & usability | Annoyance | 1 source | 2025-02 |
| Flow notification links to a null page Locked: summary and evidence are part of Sprint Pass and Pro |
Reliability & bugs | Annoyance | 1 source | 2022-06 |
Feature requests 9
| Item | Area | Severity | Support | Last seen |
|---|---|---|---|---|
| Support additional OAuth2 and OpenID client parameters for any provider Twitch login through OAuth2 and OIDC does not work; the user expects the universal protocols to work with arbitrary providers or at least have supported ones documented. Affects: admins configuring SSO |
Integrations | Blocks work | 2 sources | 2023-09 |
| ||||
| Conditional fields driven by values of other fields Request to change a field's options, including hidden or visible state, based on the values of other fields. |
Customization | Blocks work | 2 sources | 2021-09 |
| ||||
| Need a version identifier when replacing files Replacing a file keeps the same ID and leaves no clear signal, so CDNs keep serving the old image. A version or similar value would allow cache invalidation. Affects: teams serving assets through a CDN |
Integrations | Blocks work | 1 source | 2024-05 |
| ||||
| Allow logging in to one account through several auth providers The requester wants SSO usable as a convenience for login on existing accounts, with admin options to restrict registration and login methods for security. Affects: admins configuring SSO |
Permissions & security | Blocks work | 1 source | 2021-11 |
| ||||
| Wants a UI specialised in one database rather than a generalist The commenter wishes for an admin UI built for a single database such as Postgres, arguing generalist tools like Directus cannot exploit database-specific strengths. Affects: Postgres users |
API & developer experience | Annoyance | 1 source | 2024-07 |
| ||||
| Support the mysql2 database client Locked: summary and evidence are part of Sprint Pass and Pro |
Self-hosting & upgrades | Annoyance | 1 source | 2023-08 |
| Generate TypeScript types from the schema endpoint Locked: summary and evidence are part of Sprint Pass and Pro |
API & developer experience | Annoyance | 1 source | 2023-04 |
| Use UUIDs for system data and default new tables Locked: summary and evidence are part of Sprint Pass and Pro |
Data export & migration | Annoyance | 1 source | 2022-10 |
| Allow editing the default robots.txt Locked: summary and evidence are part of Sprint Pass and Pro |
Customization | Annoyance | 1 source | 2022-09 |
Workarounds 2
| Item | Area | Severity | Support | Last seen |
|---|---|---|---|---|
| Re-linking flow operations fails unless unlinked first Inserting an operation between two existing flow operations raises a uniqueness error on the resolve field; unlinking, saving and then re-linking works. Affects: users building Flows |
UI & usability | Annoyance | 1 source | 2022-06 |
| ||||
| Static-site content changes require a manual Netlify deploy Using Directus as a headless CMS for Jekyll sites, the user saves a post then manually triggers a deployment, noting build hooks could automate it. Affects: developer running static sites with a headless CMS |
Integrations | Annoyance | 1 source | 2020-08 |
| ||||
Switching reasons 3
| Item | Area | Severity | Support | Last seen |
|---|---|---|---|---|
| Agency replaced headless CMSs including Directus with custom backends A developer found using off-the-shelf CMSs painful and now builds custom backends with sqlite and bun for tighter control and independence from CMS maintainers. Affects: freelance web developer serving clients |
API & developer experience | Causes churn | 1 source | 2026-09 |
| ||||
| Team moved from Directus to Django over auth complexity After struggling with refresh-token handling, the team switched to Django, where a plain http-only secure cookie proxied through Next.js was enough. Affects: team building a Next.js app |
API & developer experience | Causes churn | 1 source | 2022-07 |
| ||||
| Weak migration and CI/CD story pushes user off Directus with SQLite A user running Directus with SQLite and Litestream lacks a good migration and CI/CD approach and plans to move to something custom. Affects: solo developer self-hosting on fly.io |
Self-hosting & upgrades | Blocks work | 1 source | 2022-10 |
| ||||