Skip to content

No direct link between Task/Project and Cloud Storage after data import #10331

@alexbolotin

Description

@alexbolotin

Actions before raising this issue

  • I searched the existing issues and did not find anything similar.
  • I read/searched the docs

Steps to Reproduce

  1. Create Test Project

  2. Create Test Task and attach files from connected cloud storage

  3. Check Project/Task After create and annotation

Project response shows:

project_info, data = self.client.api_client.projects_api.retrieve(project_id)
{'assignee': None,
'assignee_updated_date': None,
'bug_tracker': '',
'created_date': datetime.datetime(2026, 2, 20, 11, 42, 1, 195628, tzinfo=tzutc()),
'dimension': '2d',
'guide_id': None,
'id': 608,
'labels': {'url': 'https://cvat/api/labels?project_id=608'},
'name': 'test_project',
'organization': None,
'owner': {'first_name': '',
'id': 93,
'last_name': '',
'url': 'https://cvat/api/users/93',
'username': 'v'},
'source_storage': {'cloud_storage_id': None, 'id': 4321, 'location': 'local'},
'status': 'annotation',
'target_storage': {'cloud_storage_id': None, 'id': 4322, 'location': 'local'},
'task_subsets': [],
'tasks': {'count': 1,
'url': 'https://cvat/api/tasks?project_id=608'},
'updated_date': datetime.datetime(2026, 3, 4, 15, 0, 19, 245976, tzinfo=tzutc()),
'url': 'https://cvat/api/projects/608'}

Task response shows:

task = client.tasks.retrieve(task.id)
{'assignee': {'first_name': '',
'id': 53,
'last_name': '',
'url': 'https://cvat/api/users/53',
'username': ''},
'assignee_updated_date': datetime.datetime(2026, 2, 27, 6, 35, 35, 232249, tzinfo=tzutc()),
'bug_tracker': '',
'created_date': datetime.datetime(2026, 2, 26, 9, 44, 18, 189227, tzinfo=tzutc()),
'data': 5110,
'data_chunk_size': 36,
'data_compressed_chunk_type': 'imageset',
'data_original_chunk_type': 'imageset',
'dimension': '2d',
'guide_id': None,
'id': 5155,
'image_quality': 70,
'jobs': {'completed': 0,
'count': 1,
'url': 'https://cvat/api/jobs?task_id=5155',
'validation': 0},
'labels': {'url': 'https://cvat/api/labels?task_id=5155'},
'mode': 'annotation',
'name': 'test task',
'organization': None,
'overlap': 0,
'owner': {'first_name': '',
'id': 93,
'last_name': '',
'url': 'https://cvat/api/users/93',
'username': 'v.'},
'project_id': 608,
'segment_size': 398,
'size': 398,
'source_storage': {'cloud_storage_id': None, 'id': 4329, 'location': 'local'},
'status': 'annotation',
'subset': '',
'target_storage': {'cloud_storage_id': None, 'id': 4330, 'location': 'local'},
'updated_date': datetime.datetime(2026, 2, 27, 18, 47, 44, 936206, tzinfo=tzutc()),
'url': 'https://cvat/api/tasks/5155',
'validation_mode': None}

Cloud response shows:

cloud_storage_info, _ = self.client.api_client.cloudstorages_api.retrieve(254)
{'created_date': datetime.datetime(2026, 2, 24, 13, 19, 52, 147147, tzinfo=tzutc()),
'credentials_type': 'KEY_SECRET_KEY_PAIR',
'description': '',
'display_name': 'test_cloud',
'id': 254,
'manifests': [],
'organization': None,
'owner': {'first_name': '',
'id': 498,
'last_name': '',
'url': 'https://cvat/api/users/498',
'username': 'n.'},
'provider_type': 'AWS_S3_BUCKET',
'resource': 'test_cloud',
'specific_attributes': 'endpoint_url=https%3A%2F%2Fstorage.yandexcloud.net',
'updated_date': datetime.datetime(2026, 2, 24, 13, 19, 52, 211632, tzinfo=tzutc())},

Expected Behavior

When importing data from a cloud storage to a task, there is no persistent link between the task/project and the source cloud storage. After successful import, the source_storage field in both project and task objects shows location: 'local' with an internal storage ID that doesn't reference the original cloud storage.

The task and project should maintain a reference to the original cloud storage after import. Expected source_storage field:
'source_storage': {
'cloud_storage_id': 254, # Original cloud storage ID
'location': 'cloud_storage'
}

Possible Solution

No response

Context

Image

After import, source_storage always shows location: 'local' with internal storage IDs (4321, 4322, 4329, 4330 and so on) that have no relation to the original cloud storage ID (254) - despite confirming that the data was explicitly imported from the cloud storage during task creation.
This creates several issues:

No traceability - Cannot determine which cloud storage contains the original data

Multiple storage entries - Each task/project creates new internal storage entries with different IDs

Lost connection - No way to programmatically find related cloud storage for a task

Environment

Name: cvat_sdk
Version: 2.24.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions