{"record":{"id":"1181608c0611cd5f","repo":"dagger/dagger","slug":"list-tags-for-s-w","errorCode":null,"errorMessage":"list tags for %s: %w","messagePattern":"list tags for (.+?): %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/cmd/dagger/workspace.go","lineNumber":1149,"sourceCode":"\treturn subdir\n}\n\ntype workspaceRemoteRow struct {\n\tKind      string\n\tAddress   string\n\tAutocheck string\n\tChecks    string\n}\n\nfunc loadWorkspaceRemoteRows(ctx context.Context, dag *dagger.Client, remote workspaceRemoteAddress) ([]*workspaceRemoteRow, error) {\n\trepo := dag.Git(remote.CloneRef)\n\tbranches, err := repo.Branches(ctx)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"list branches for %s: %w\", remote.CloneRef, err)\n\t}\n\ttags, err := repo.Tags(ctx)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"list tags for %s: %w\", remote.CloneRef, err)\n\t}\n\n\tsort.Strings(branches)\n\tsort.Strings(tags)\n\n\trows := make([]*workspaceRemoteRow, 0, len(branches)+len(tags)+1)\n\tseen := map[string]struct{}{}\n\tadd := func(kind, version string) {\n\t\tif version == \"\" {\n\t\t\treturn\n\t\t}\n\t\taddress := gitref.RefString(remote.CloneRef, remote.Path, version)\n\t\tif _, ok := seen[address]; ok {\n\t\t\treturn\n\t\t}\n\t\tseen[address] = struct{}{}\n\t\trows = append(rows, &workspaceRemoteRow{\n\t\t\tKind:      kind,","sourceCodeStart":1131,"sourceCodeEnd":1167,"githubUrl":"https://github.com/dagger/dagger/blob/82ba2681dbe30d3547a1dc50ea495900ab5b6047/internal/cmd/dagger/workspace.go#L1131-L1167","documentation":"Same call path as the branches error: loadWorkspaceRemoteRows wraps dag.Git(ref).Tags(ctx) failures as \"list tags for %s: %w\". It is thrown when listing tags from the remote git service fails even if branches listed fine.","triggerScenarios":"Transient API failure on the second call, repo inaccessible to the service, or the host refusing the tags query for the given CloneRef.","commonSituations":"Rate limiting by the git host; flaky network between engine and host; private repo auth partially configured; repos with unusual tag permissions.","solutions":["Re-run the command — tags listing is often transient (rate limits, network)","Confirm repo access/credentials as with the branches error","Check git host status/limits if errors repeat","Verify the CloneRef points at an existing repository"],"exampleFix":"// retry pattern\nfor i := 0; i < 3; i++ {\n    tags, err := repo.Tags(ctx)\n    if err == nil { break }\n    time.Sleep(time.Second << i)\n}","handlingStrategy":"retry","validationCode":"if !isHTTPSGitURL(remote.CloneRef) {\n    return errors.New(\"CloneRef must be an https git URL\")\n}","typeGuard":"func remoteReachable(ctx context.Context, dag *dagger.Client, ref string) bool {\n    _, err := dag.Git(ref).Branches(ctx)\n    return err == nil\n}","tryCatchPattern":"rows, err := loadWorkspaceRemoteRows(ctx, dag, remote)\nvar retryable = strings.Contains(err.Error(), \"list tags\") || strings.Contains(err.Error(), \"list branches\")\nif retryable {\n    rows, err = loadWorkspaceRemoteRows(ctx, dag, remote) // transient host failures are common\n}","preventionTips":["Expect git-host rate limits; back off and retry tag/branch listings","Verify repo access before listing operations","Monitor git-host status pages for outages"],"tags":["network","git","api","retryable"],"backgroundTag":"git-tag-list-failed","analyzedSha":"82ba2681dbe30d3547a1dc50ea495900ab5b6047","analyzedAt":"2026-09-05T07:21:37.930Z","contentChangedAt":"2026-09-05T07:21:37.930Z","schemaVersion":2},"datasetVersion":"2026-09-12T12:17:11.808Z"}