Recently viewed items in the new homepage are never available on a free tier self-hosted instance
Summary
Recently viewed items in the new homepage are never available on a free tier self-hosted instance.
Steps to reproduce
Reproduced on both a fresh or current prod self-hosted instance of Gitlab with the free tier:
- Open the new homepage
- The Recently viewed widget shows the error
Your recently viewed items are not available. Please refresh the page to try again.
This can also be reproduced by trying the following GraphQL request in GraphQL Explorer:
query RecentlyViewedItems {
currentUser {
id
recentlyViewedItems {
viewedAt
item {
... on Issue {
id
title
webUrl
}
... on MergeRequest {
id
title
webUrl
}
... on Epic {
id
title
webUrl
}
}
}
}
}
Example Project
Could not reproduce on gitlab.com, I believe this to be related to the free tier of Gitlab self-hosted.
What is the current bug behavior?
The widget always shows the same Your recently viewed items are not available. Please refresh the page to try again. error.
What is the expected correct behavior?
It should show me the latest issues and merge requests I recently viewed.
Relevant logs and/or screenshots
In the graphql_json.log I found the following error:
{
"severity": "INFO",
[... truncated for brevity ...]
"trace_type": "execute_query",
"query_fingerprint": "RecentlyViewedItems/ZZW17VaMuIDDaQ8UuRqF-DkGPcFTFvQm6bkH3Sgf4_M=/0/RBNvo1WzZ4oRRq0W9-hknpT7T8If536DEMBg9hyq_4o=",
"duration_s": 0.07749011740088463,
"operation_name": "RecentlyViewedItems",
"operation_fingerprint": "RecentlyViewedItems/ZZW17VaMuIDDaQ8UuRqF-DkGPcFTFvQm6bkH3Sgf4_M=",
"is_mutation": false,
"variables": "{}",
"query_string": "query RecentlyViewedItems {\n currentUser {\n id\n recentlyViewedItems {\n viewedAt\n item {\n ... on Issue {\n id\n title\n webUrl\n }\n ... on MergeRequest {\n id\n title\n webUrl\n }\n ... on Epic {\n id\n title\n webUrl\n }\n }\n }\n }\n}",
"graphql_errors": [
{
"message": "No such type Epic, so it can't be a fragment condition",
"locations": [
{
"line": 17,
"column": 9
}
],
"path": [
"query RecentlyViewedItems",
"currentUser",
"recentlyViewedItems",
"item",
"... on Epic"
],
"extensions": {
"code": "undefinedType",
"typeName": "Epic"
}
}
]
}
Output of checks
Results of GitLab environment info
Expand for output related to GitLab environment info
System information
System:
Current User: git
Using RVM: no
Ruby Version: 3.2.8
Gem Version: 3.7.1
Bundler Version:2.7.1
Rake Version: 13.0.6
Redis Version: 7.2.10
Sidekiq Version:7.3.9
Go Version: unknown
GitLab information
Version: 18.5.1
Revision: 2e5ae10576d
Directory: /opt/gitlab/embedded/service/gitlab-rails
DB Adapter: PostgreSQL
DB Version: 16.6
URL: https://<REDACTED>
HTTP Clone URL: https://<REDACTED>/some-group/some-project.git
SSH Clone URL: ssh://<REDACTED>/some-group/some-project.git
Using LDAP: yes
Using Omniauth: yes
Omniauth Providers: saml
GitLab Shell
Version: 14.45.3
Repository storages:
- default: unix:/var/opt/gitlab/gitaly/gitaly.socket
GitLab Shell path: /opt/gitlab/embedded/service/gitlab-shell
Gitaly
- default Address: unix:/var/opt/gitlab/gitaly/gitaly.socket
- default Version: 18.5.1
- default Git Version: 2.50.1
Results of GitLab application Check
Expand for output related to the GitLab application check
Checking GitLab subtasks ...
Checking GitLab Shell ...
GitLab Shell: ... GitLab Shell version >= 14.45.3 ? ... OK (14.45.3)
Running /opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-shell-check
Internal API available: OK
Redis available via internal API: OK
gitlab-shell self-check successful
Checking GitLab Shell ... Finished
Checking Gitaly ...
Gitaly: ... default ... OK
Checking Gitaly ... Finished
Checking Sidekiq ...
Sidekiq: ... Running? ... yes
Number of Sidekiq processes (cluster/worker) ... 1/1
Checking Sidekiq ... Finished
Checking Incoming Email ...
Incoming Email: ... Reply by email is disabled in config/gitlab.yml
Checking Incoming Email ... Finished
Checking LDAP ...
LDAP: ... Server: ldapmain
LDAP authentication... Success
LDAP users with access to your GitLab server (only showing the first 100 results)
User output sanitized. Found 100 users of 100 limit.
Checking LDAP ... Finished
Checking GitLab App ...
Database config exists? ... yes
Tables are truncated? ... skipped
All migrations up? ... yes
Database contains orphaned GroupMembers? ... no
GitLab config exists? ... yes
GitLab config up to date? ... yes
Cable config exists? ... yes
Resque config exists? ... yes
Log directory writable? ... yes
Tmp directory writable? ... yes
Uploads directory exists? ... yes
Uploads directory has correct permissions? ... yes
Uploads directory tmp has correct permissions? ... yes
Systemd unit files or init script exist? ... skipped (omnibus-gitlab has neither init script nor systemd units)
Systemd unit files or init script up-to-date? ... skipped (omnibus-gitlab has neither init script nor systemd units)
Projects have namespace: ...
8/2 ... yes
[... truncated for brevity ...]
489/1811 ... yes
Redis version >= 6.2.14? ... yes
Ruby version >= 3.0.6 ? ... yes (3.2.8)
Git user has default SSH configuration? ... yes
Active users: ... 276
Is authorized keys file accessible? ... yes
GitLab configured to store new projects in hashed storage? ... yes
All projects are in hashed storage? ... yes
Checking GitLab App ... Finished
Checking GitLab subtasks ... Finished
Possible fixes
I believe this to be coming from !199320 (merged), in the GraphQL API the Epic does not exist in a free-tier instance.
Patch release information for backports
If the bug fix needs to be backported in a patch release to a version under the maintenance policy, please follow the steps on the patch release runbook for GitLab engineers.
Refer to the internal "Release Information" dashboard for information about the next patch release, including the targeted versions, expected release date, and current status.
High-severity bug remediation
To remediate high-severity issues requiring an internal release for single-tenant SaaS instances, refer to the internal release process for engineers.