l3montree-dev / l3montree-dev/devguard
Events page fails to load: asset fetch returns 500 (billing sidecar outage for org @gitlab)
Open
Nobody has claimed this yet.
bug
priority:high
- Dominant language
- Go
- Stars
- 161
- Forks
- 43
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 37
Description
Error
Error: {"message":"Failed to fetch asset: 500 Internal Server Error","context":{"statusCode":500,"title":"Failed to load asset","description":"An error occurred while fetching the asset. Please try again later. (500 Internal Server Error)","homeLink":"/@gitlab/projects/***/assets"}}
Stack trace
fetchAsset (../../../../src/data-fetcher/fetchAsset.ts:31)
← j / layout (../../../../src/app/(loading-group)/[organizationSlug]/projects/[projectSlug]/assets/[assetSlug]/layout.tsx:24)
← Promise.all (index 0)
← process.processTicksAndRejections (node:internal/process/task_queues:104)
Source (src/data-fetcher/fetchAsset.ts:26-36)
const url = `/organizations/${decodeURIComponent(organizationSlug)}/projects/${projectSlug}/assets/${assetSlug}`;
// console.log(url);
const r = await devGuardApiClient(url);
if (!r.ok) {
throw new HttpError(`Failed to fetch asset: ${r.status} ${r.statusText}`, {
statusCode: r.status,
title: "Failed to load asset",
description: `An error occurred while fetching the asset. Please try again later. (${r.status} ${r.statusText})`,
homeLink: `/${organizationSlug}/projects/${projectSlug}/assets`, // link to the asset list
Request context
- URL:
https://app.devguard.org/@gitlab/projects/***/assets/***/refs/main/events - Culprit route:
GET /[organizationSlug]/projects/[projectSlug]/assets/[assetSlug]/refs/[assetVersionSlug]/events - Same trace ID (
0bc591ca360941e89e23895b713db968) as issue 3610 (fetchProject), issue 3680 (fetchContentTree), and issue 3832 (client-side surfacing) — this is the 4th separate GlitchTip capture from the single request where the billing sidecar returned500for every endpoint under org@gitlab(projects, assets, refs, artifacts, content-tree). One root cause (billing sidecar outage/error for this org) fanned out into 4 distinct error groups because each data-fetcher throws its own typed error.
GlitchTip
- Issue: https://error-tracking.devguard.org/devguard/issues/3631
- Event ID: 019fc558a7f47b15ae82600745c74da5
- First seen: 2026-08-03T01:59:09.500Z
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with src/data-fetcher/fetchAsset.ts:26-36 and the assets layout at src/app/(loading-group)/[organizationSlug]/projects/[projectSlug]/assets/[assetSlug]/layout.tsx, then compare the related fetchProject, fetchContentTree, and client-side surfacing issues. Done means the events route no longer produces this unhandled asset-fetch failure when the billing sidecar returns 500, with the intended behavior confirmed across the related endpoints.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100