Repository navigation
Description
Describe the bug
Linear workflow status definitions are synced into Superset during the Linear initial sync, but later Linear workflow changes are not reflected in Superset.
Observed behavior:
- Linear status was renamed from
In ProgresstoIn impl. - A new Linear status
In planwas added. - Linear now has
Todo,In plan,In impl,In Reviewin the active workflow. - Superset still returns/shows the stale status set:
Todo,In Progress,In Review;In planis missing.
This is not only a desktop cache issue. task.statuses.list against the Superset API returns the stale status rows, so the source task_statuses data is not being refreshed after the Linear workflow changes.
Code pointers
apps/api/src/app/api/integrations/linear/jobs/initial-sync/route.ts:73callssyncWorkflowStates()as part ofperformInitialSync().apps/api/src/app/api/integrations/linear/jobs/initial-sync/syncWorkflowStates.ts:44-64has the correct upsert logic for Linear workflow states by(organizationId, externalProvider, externalId).apps/api/src/app/api/integrations/linear/webhook/route.ts:126-131only processesIssuewebhook payloads.apps/api/src/app/api/integrations/linear/webhook/route.ts:169-176explicitly skips issue updates whose state is not already intask_statusesand has a TODO to trigger workflow-state sync.
Expected behavior
Superset should refresh Linear-backed task_statuses when Linear workflow states are created, renamed, reordered, recolored, or when an issue webhook references a previously unseen Linear state.
At minimum, there should be a manual resync path that runs syncWorkflowStates() for the connected organization without requiring disconnect/reconnect.
Actual behavior
Superset keeps the stale status rows from initial sync. New statuses are unavailable in the task UI/API, renamed statuses keep their old names, and issue webhooks for unseen states can be skipped.
Suggested fix
- Handle Linear workflow state webhook events if Linear sends them for the app.
- On an Issue create/update webhook, if
issue.state.idis missing fromtask_statuses, runsyncWorkflowStates()for the connection and retry the status lookup before skipping. - Add a manual Linear resync endpoint/mutation for workflow states so users can repair stale status definitions without reconnecting the integration.
Notes
A local desktop cache hotfix can make the current machine display the correct names temporarily, but it does not repair the Superset API source of truth.
Activity
fix: solve #5216 — resync Linear workflow states on unseen issue state