HumanSignal / HumanSignal/label-studio
Data Manager Annotation Results Disappear
- Dominant language
- TypeScript
- Stars
- 28.3k
- Forks
- 3.7k
- Avg merge
- 14h
- Merged PRs (30d)
- 15
Description
Describe the bug
In the Data Manager grid, the Annotation results column renders correctly on first load, but goes blank for every row after you open a task in the labelling view and navigate back to the grid. Resizing the column by any amount makes the values
reappear immediately, so the data is intact and this is a rendering or width-measurement issue rather than data loss.
The blank column is misleading in practice: rows show an annotation count and an annotator but no visible results, which reads as missing or corrupted annotations.
To Reproduce
Steps to reproduce the behavior:
1. Open a project whose tasks have annotations, with the Annotation results column enabled in the Data Manager.
2. Confirm the column displays values for the visible rows.
3. Click any task to open it in the labelling view.
4. Navigate back to the Data Manager grid (browser back, or the close/back control).
5. See the Annotation results column now blank for all rows, while Annotated by and the annotation count still populate.
6. Drag the Annotation results column border to resize it by any amount. All values reappear instantly.
Expected behavior
The Annotation results column should continue to render its values after returning from the labelling view, without needing a manual resize or page reload.
Environment (please complete the following information):
- OS: macOS 26.5.2 (arm64)
- Browser: Google Chrome 151.0.7922.76 (Official Build) (arm64)
- Label Studio Version: 1.23.0 (Community edition)
- Deployment: self-hosted (Docker on AWS ECS), PostgreSQL backend
- Component versions from /api/version:
- label-studio-os-package: 1.23.0
- label-studio-os-backend: 1.23.0+0.g2a9bfbc (commit 2a9bfbcbf0)
- label-studio-frontend: commit 2a9bfb (branch develop)
- dm2: commit 8ec90c (branch develop)
Additional context
Possibly related backend observation: the denormalised summary fields the column reads appear not to be populated by the tasks list endpoint at all. GET /api/tasks/?project=&fields=task_only returns:
{
"total_annotations": 1,
"annotations_results": "",
"annotators": [],
"predictions_results": ""
}
on tasks that definitely carry one non-cancelled annotation with several choices results. Fetching the same task with fields=all returns the full annotations[].result array as expected. So the grid may be rendering from a cached client-side
value that is lost on remount, with no server-provided fallback to re-render from.
Project characteristics, in case scale or schema is relevant:
- ~116,000 tasks, ~102,000 annotations, maximum_annotations: 1
- A single labelling config containing 32 Choices controls (26 in active use), 33 TextArea controls and 2 Labels (span) controls, all against one object
- Tasks typically carry between 1 and 9 choices results within a single annotation
Reproduces consistently across two separate deployments (staging and production) running the same version, and under two different labelling configs (one using visibleWhen conditional Views, one using Collapse/Panel), so it appears independent
of the labelling config.
Contributor guide
Research direction
Start by tracing the Data Manager grid's Annotation results column across navigation back from the labelling view, then compare its remount behavior with GET /api/tasks/?project=&fields=task_only and the fields=all response. Done means annotation results remain visible after returning to the grid without resizing or reloading, with coverage for this navigation path.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api, frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100