mirror of
https://github.com/twentyhq/twenty.git
synced 2026-04-19 06:19:39 -04:00
## Summary - Fix stale `ObjectMetadataItems` GraphQL response cache after field creation by using `request.workspaceMetadataVersion` (sourced from Redis) instead of `workspace.metadataVersion` (from the potentially stale CoreEntityCacheService) - Make the E2E kanban view test selector more robust with a regex match ## Root Cause The `useCachedMetadata` GraphQL plugin keys cached responses using `workspace.metadataVersion` from the `CoreEntityCacheService`. When a field is created: 1. The migration runner increments `metadataVersion` in DB and Redis 2. But the `CoreEntityCacheService` for `WorkspaceEntity` is **not** invalidated 3. So `request.workspace.metadataVersion` still has the old version 4. The cache key resolves to the old cached response 5. The frontend gets stale metadata without the newly created field This breaks E2E tests (and likely affects users) - after creating a custom field, the metadata isn't visible until the workspace entity cache refreshes. ## Fix Use `request.workspaceMetadataVersion` (populated from Redis by the middleware, always up-to-date) as the primary version for cache keys, falling back to the entity cache version. ## Test plan - [ ] E2E `create-kanban-view` tests should pass (creating a Select field and immediately using it in a Kanban view) - [ ] Verify `ObjectMetadataItems` returns fresh data after field creation (no stale cache) Made with [Cursor](https://cursor.com)