---
title: "Troubleshooting source map uploads | Grafana Cloud documentation"
description: "Fix common problems when uploading source maps to Grafana Cloud Frontend Observability."
---

> For a curated documentation index, see [llms.txt](/llms.txt). For the complete documentation index, see [llms-full.txt](/llms-full.txt).

# Troubleshooting source map uploads

Fix common issues when uploading source maps to Grafana Cloud and verify that uploads work correctly.

## Verify uploads work correctly

To confirm source map uploads are working properly, complete these verification steps:

1. **Check bundler plugin output** - Verify the bundler plugin generated source maps by checking build output. Enable verbose logging for detailed information. Refer to [bundlers](/docs/grafana-cloud/monitor-applications/frontend-observability/configure/sourcemap-uploads/bundlers/) for configuration details.
2. **Confirm files reached Grafana Cloud** - Open Frontend Observability and navigate to **your app** &gt; **Settings** &gt; **Source Maps** to see uploaded files.
3. **Test error trace mapping** - View an error trace to validate proper deobfuscation. Error traces should display original file names and line numbers instead of minified references.

## Common issues and solutions

### Configuration problems

**Wrong endpoint** - The source map upload endpoint differs from the Faro Collector endpoint. Use the endpoint from **Frontend Observability** &gt; **Settings** &gt; **Source Maps** &gt; **Configure source map uploads**.

**Missing API key permissions** - Ensure your API key has these scopes: `sourcemaps:read`, `sourcemaps:write`, and `sourcemaps:delete`.

**Region mismatch** - Upload to the same Grafana Cloud region where your stack resides.

### Bundle ID issues

**Missing bundle ID** - Confirm the bundle ID exists in your application’s window object. Look for: `window.["__faroBundleId_<appName>"]`

**Bundle ID mismatch** - Error stacks reference a bundle ID that doesn’t match uploaded files. Set a consistent bundle ID during builds or read from environment variables when uploading.

**Uploads succeed but aren’t visible** - Verify you’re viewing the correct app, time range, and bundle ID filter in the UI.

### Missing `file` property in source map

If Grafana shows the correct bundle ID and the source map artifact exists, but stack traces are still minified, the source map may be missing the `file` field.

Grafana uses the `file` field in each source map to index it by filename within a bundle. Without this field, Grafana can’t match the source map to the JS chunk referenced in the stack frame, so de-obfuscation silently fails.

This commonly affects Angular applications, because Angular’s default esbuild builder does not include the `file` field in generated source maps.

The Faro esbuild plugin automatically injects the `file` field into source maps on disk during the build. If you’re uploading source maps separately via the Faro CLI, use the Faro esbuild plugin with `skipUpload: true` to ensure the `file` field is set before upload without coupling uploads to the build step. See [the bundler configuration options](/docs/grafana-cloud/monitor-applications/frontend-observability/configure/sourcemap-uploads/bundlers/#configuration-options) for configuration details.

### Build and file issues

**No source maps generated** - Confirm production builds create `.map` files and they aren’t removed by build tools.

**Files exceed 30MB** - Reduce source map size by using `sourceMap: 'hidden'` instead of inline maps, excluding vendor code, or splitting bundles. The 30MB limit applies to uncompressed files even when using gzip.

**Next.js path problems** - If both server and client bundles exist, set `nextjs: true` in the Webpack plugin to prepend `_next/` paths.

**Server-side rendering conflicts** - Bundler plugins support client-side bundles only. Server-side rendering isn’t supported.

## Debug upload issues

To get detailed information about upload attempts:

1. **Enable verbose logging** - Set `verbose: true` in bundler plugins or use `--verbose` with the CLI to see detailed request information.
2. **Check upload status** - Open Frontend Observability and navigate to **your app** &gt; **Settings** &gt; **Source Maps** to view received files and upload history.

## More to explore

For additional information about source maps and error tracking, refer to these resources:

- [Source map uploads](/docs/grafana-cloud/monitor-applications/frontend-observability/sourcemap-uploads/) for setup and configuration
- [Bundlers](/docs/grafana-cloud/monitor-applications/frontend-observability/configure/sourcemap-uploads/bundlers/) for automatic upload configuration
- [CLI](/docs/grafana-cloud/monitor-applications/frontend-observability/configure/sourcemap-uploads/cli/) for manual upload options
- [Faro bundler plugin source code](https://github.com/grafana/faro-javascript-bundler-plugins) on GitHub
- [Viewing errors in Frontend Observability](/docs/grafana-cloud/monitor-applications/frontend-observability/error-awareness/) for using deobfuscated traces
