Skip to content

Allow sourcemaps to be used by multiple projects #752

@Slooowpoke

Description

@Slooowpoke

Problem Statement

Current Impact

  • Build Time: Sourcemap uploads currently take 3 minutes per upload, representing a substantial portion of our total build time
  • Reference Issue: This aligns with known performance issues documented in getsentry/sentry-javascript#15100

Monorepo Context

Our project operates within a large monorepo structure with the following characteristics:

  • Multiple teams own different parts of the codebase
  • Smaller teams and projects experience error sampling issues, leading to:
    • Errors being sampled out of existence
    • Loss of visibility on individual team statistics
    • Only high-traffic portions of the codebase receiving proper error attribution

Current Limitation

After consultation with Sentry support, we've identified a critical limitation:

  • Sourcemap Reuse: It's not possible to reuse sourcemaps that are already uploaded for different projects, even when they share the same release
  • Proposed Workaround: Upload sourcemaps multiple times (once per team/project)

If we implement the suggested workaround of uploading sourcemaps per team and per project:

  • Additional Build Time: 15-20 minutes added to each build
  • Scalability Concern: This approach doesn't scale effectively with our monorepo structure
  • Resource Waste: Uploading identical sourcemaps multiple times is inefficient

We need a more efficient approach that allows us to:

  1. Maintain proper error attribution across all teams and projects
  2. Avoid excessive build time increases
  3. Leverage shared sourcemaps across related projects within the same release

Solution Brainstorm

The feature I would love to see is simple: allow projects to share a sourcemap if their release is the same.

Must be configurable

I think this needs to be a configurable option, since there I'm sure there are setups that rely on the same release allowing different sourcemaps for projects. Maybe even a monorepo where the frontend is uploaded to sentry and the backend is uploaded to sentry, sharing the same release.

Product Area

Issues - Source Maps

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

Status

No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions