{"record":{"id":"f8a84029090588dc","repo":"Tencent/WeKnora","slug":"list-wiki-page-revisions-w","errorCode":null,"errorMessage":"list wiki page revisions: %w","messagePattern":"list wiki page revisions: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/application/service/wiki_page.go","lineNumber":293,"sourceCode":"}\n\n// ErrWikiRevertToCurrentVersion is returned when a revert targets the version\n// the page is already on — a client-side mistake (usually a stale history\n// list), not a server fault, so handlers map it to 400.\nvar ErrWikiRevertToCurrentVersion = errors.New(\"cannot revert to the current version\")\n\n// ListRevisions returns the stored historical snapshots for a page (newest\n// first, content omitted) plus the page's current version.\nfunc (s *wikiPageService) ListRevisions(\n\tctx context.Context, kbID string, slug string, limit int, offset int,\n) (*types.WikiPageRevisionListResponse, error) {\n\tpage, err := s.repo.GetBySlug(ctx, kbID, slug)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\trevs, total, err := s.repo.ListRevisions(ctx, kbID, page.ID, limit, offset)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"list wiki page revisions: %w\", err)\n\t}\n\treturn &types.WikiPageRevisionListResponse{\n\t\tRevisions:      revs,\n\t\tTotal:          total,\n\t\tCurrentVersion: page.Version,\n\t}, nil\n}\n\n// GetRevision returns one historical snapshot with content.\nfunc (s *wikiPageService) GetRevision(\n\tctx context.Context, kbID string, slug string, version int,\n) (*types.WikiPageRevision, error) {\n\tpage, err := s.repo.GetBySlug(ctx, kbID, slug)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn s.repo.GetRevision(ctx, kbID, page.ID, version)\n}","sourceCodeStart":275,"sourceCodeEnd":311,"githubUrl":"https://github.com/Tencent/WeKnora/blob/988cbb03305e055d8ebb7d46d9ac6cc0803cd074/internal/application/service/wiki_page.go#L275-L311","documentation":"Repository error in wikiPageService.ListRevisions: querying the stored historical snapshots for the page failed at the storage layer. The %w wraps the underlying database error so callers (revision-history handlers) can log/translate the real cause; it fires on DB failure, not on a missing page, which is checked separately.","triggerScenarios":"Thrown at internal/application/service/wiki_page.go:293 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check DB connectivity and the revision repo","Inspect the wrapped repository error","Retry listing revisions"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"988cbb03305e055d8ebb7d46d9ac6cc0803cd074","analyzedAt":"2026-09-02T14:41:08.344Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}