Skip to content

AI config collector creates duplicate uploads on retry #2907

Description

@migmartri

The AI config collector generates a non-deterministic digest for the config file. When a retry happens due to a remote state conflict, the file gets uploaded again with a different name, resulting in duplicate artifacts in the CAS.

The digest should be deterministic by incorporating the attestation created_at timestamp (or similar stable identifier) so that retries produce the same file and skip re-uploading.

Example

On retry, the same config gets uploaded multiple times with different filenames:

2026-03-21T12:50:30.713+0100    INFO    {"component": "service", "msg": "artifact does not exist, uploading", "digest": "5b3bfaf2f3e8862b2a9aef668589546fa13c4f0465bd115547e0ae8da0bbd5c3", "name": "ai-agent-config-claude-169015807.json"}
2026-03-21T12:50:30.714+0100    INFO    {"component": "service", "msg": "artifact received, uploading now to backend", "name": "ai-agent-config-claude-169015807.json", "digest": "5b3bfaf2f3e8862b2a9aef668589546fa13c4f0465bd115547e0ae8da0bbd5c3", "size": 50566}
2026-03-21T12:50:31.230+0100    INFO    {"component": "service", "msg": "upload finished", "name": "ai-agent-config-claude-169015807.json", "digest": "5b3bfaf2f3e8862b2a9aef668589546fa13c4f0465bd115547e0ae8da0bbd5c3", "size": 50566}

Since the digest changes on each attempt, the CAS treats each retry as a new artifact.

Activity

  1. self-assigned this
    on Mar 21, 2026
  2. migmartri commented on Mar 21, 2026

    @migmartri
    MemberAuthor

    it might make sense to use the attestation initialized_at

  3. removed their assignment
    on Mar 21, 2026
  4. added 6 commits that reference this issue on Mar 27, 2026
    1a3ea39
    3da776c
    529538f
    486591a
    dcdd23f
    cb22854
  5. jiparis commented on Mar 29, 2026

    @jiparis
    Member

    Fixed at #2917

  6. added 4 commits that reference this issue on Mar 31, 2026
    449088d
    c7e366e
    8f05279
    11c6de4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions