{"record":{"id":"c910f9ec231ca77a","repo":"glanceapp/glance","slug":"w-could-not-get-issues-s","errorCode":null,"errorMessage":"%w: could not get issues: %s","messagePattern":"%w: could not get issues: (.+?)","errorType":"exception","errorClass":"errPartialContent","httpStatus":null,"severity":"warning","filePath":"internal/glance/widget-repository.go","lineNumber":208,"sourceCode":"\t\tif PRsErr != nil {\n\t\t\terr = fmt.Errorf(\"%w: could not get PRs: %s\", errPartialContent, PRsErr)\n\t\t} else {\n\t\t\tdetails.OpenPullRequests = PRsResponse.Count\n\n\t\t\tfor i := range PRsResponse.Tickets {\n\t\t\t\tdetails.PullRequests = append(details.PullRequests, githubTicket{\n\t\t\t\t\tNumber:    PRsResponse.Tickets[i].Number,\n\t\t\t\t\tCreatedAt: parseRFC3339Time(PRsResponse.Tickets[i].CreatedAt),\n\t\t\t\t\tTitle:     PRsResponse.Tickets[i].Title,\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\tif maxIssues > 0 {\n\t\tif issuesErr != nil {\n\t\t\t// TODO: fix, overwriting the previous error\n\t\t\terr = fmt.Errorf(\"%w: could not get issues: %s\", errPartialContent, issuesErr)\n\t\t} else {\n\t\t\tdetails.OpenIssues = issuesResponse.Count\n\n\t\t\tfor i := range issuesResponse.Tickets {\n\t\t\t\tdetails.Issues = append(details.Issues, githubTicket{\n\t\t\t\t\tNumber:    issuesResponse.Tickets[i].Number,\n\t\t\t\t\tCreatedAt: parseRFC3339Time(issuesResponse.Tickets[i].CreatedAt),\n\t\t\t\t\tTitle:     issuesResponse.Tickets[i].Title,\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\tif maxCommits > 0 {\n\t\tif CommitsErr != nil {\n\t\t\terr = fmt.Errorf(\"%w: could not get commits: %s\", errPartialContent, CommitsErr)\n\t\t} else {\n\t\t\tfor i := range commitsResponse {","sourceCodeStart":190,"sourceCodeEnd":226,"githubUrl":"https://github.com/glanceapp/glance/blob/91324e8de762702e97b0ac5c8e36271d644d8642/internal/glance/widget-repository.go#L190-L226","documentation":"Returned by fetchRepositoryDetailsFromGithub (internal/glance/widget-repository.go:208) when the optional issue search (issues-to-show > 0) failed while core details succeeded; errPartialContent wrap, so the widget renders minus issue data. Note the in-code TODO: this assignment overwrites any earlier PR error (131), so if both PR and issue searches fail, only the issues error survives — a known defect in error accumulation.","triggerScenarios":"Same failure class as the PR search: GET /search/issues?q=is:issue+is:open+repo:{repo} rate-limited (403), network failure, or malformed query — with the caveat that when PRs also failed, this message masks that fact.","commonSituations":"Search API rate limiting (10/min unauthenticated) hitting both issue and PR calls on the same refresh; a transient failure where the logs show two failures but the widget surfaces only the issues one.","solutions":["Set a GitHub token to raise search rate limits","Increase widget refresh interval / page cache time","Set issues-to-show to 0 if issue counts are not needed","If the message appears while PRs are also missing, remember the overwrite bug — check logs for the PR failure too"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"if err != nil && errors.Is(err, errPartialContent) && strings.Contains(err.Error(), \"could not get issues\") {\n    // NOTE: this error overwrites the PR error (in-code TODO); check logs for both\n}","preventionTips":["Remember the error-overwrite bug: logs carry the full picture, the returned error does not","Use a token and longer cache to avoid double search failures","Set issues-to-show to 0 if unneeded"],"tags":["github","partial-content","rate-limit","repository","known-issue"],"backgroundTag":null,"analyzedSha":"91324e8de762702e97b0ac5c8e36271d644d8642","analyzedAt":"2026-08-15T14:12:54.279Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}