Skip to content

Source map validator. Check the map before you ship.

Paste a .map file and the last lines of its bundle. The validator checks the fields error tools need and whether the bundle points at this map.

Free plan. No credit card required.

Source map validator

In your browser

Include the sourceMappingURL comment if the bundle has one. Results update as you type.

Examples
Ready7 pass · 0 warn · 0 failThis source map shape is ready for production error symbolication.
Source map checks
ResultCheck
PassSource Map v3The map declares version 3.
PassSourcesAt least one original source path is present.
PassMappingsMappings are present for generated-to-original frame lookup.
PassNames arrayThe names array is present, even if it is empty.
PasssourcesContentOriginal source content is embedded for each source path.
PassBundle footerFound sourceMappingURL=checkout.js.map.
PassFile linkageThe bundle footer and source map file field line up.

Validation runs locally in your browser. Bundle snippets and source map JSON are not uploaded or stored.

Eight checks, and why they fail.

A fail blocks the map. A warning means it may work, but something tools often rely on is missing.

Parse source map JSON

Passes when
The text parses as JSON with the expected field types.
Flags
Fail. Nothing else is checked.
Usual cause
The server answered the .map URL with your app's HTML page, or the copy is cut off.

Source Map v3

Passes when
version is 3.
Flags
Fail
Usual cause
A hand-written map, or very old tooling.

Sources

Passes when
sources lists at least one original file.
Flags
Fail
Usual cause
A map for an empty chunk, or one that was edited after the build.

Mappings

Passes when
mappings is a non-empty string.
Flags
Fail
Usual cause
An empty chunk. Without mappings, no position can point back to source.

Names array

Passes when
names is present, even when empty.
Flags
Warn
Usual cause
Some minifiers leave it out, so frames keep minified function names.

sourcesContent

Passes when
Every source has its original code embedded.
Flags
Warn
Usual cause
The build turned sourcesContent off, or a list entry is null.

Bundle footer

Passes when
The bundle has a sourceMappingURL comment.
Flags
Warn
Usual cause
A hidden source map build (Vite sourcemap: 'hidden', webpack hidden-source-map), or a step that strips comments.

File linkage

Passes when
The footer's file name matches the map's file field.
Flags
Warn
Usual cause
The map comes from another build, or the bundler left out the file field.

Keep every release's maps in one place.

Upload maps from CI with one command. Squasher stores them by release and file name, for you and your agent.

  • squasher sourcemaps upload takes the release and the .map files.
  • Add --service when two apps share a release name.
  • List or delete maps from the CLI, and list them over the REST API or MCP.
Source map docs
deploy web@a41c
# SQUASHER_API_KEY and SQUASHER_PROJECT_ID come from CI secretssquasher sourcemaps upload --service web --release a41c dist/assets/*.mapUploading index-4f1c2a.js.map...Uploading checkout-9b8e1d.js.map...Uploading vendor-c21f07.js.map...Uploaded 3 file(s) for release a41c

Example CI step.

Questions, answered.

What is a source map?

A source map is a JSON file that maps each position in bundled or minified JavaScript back to the original file, line, and column. Browsers and error tools use it to show the code you wrote instead of the bundle.

What does a valid source map need?

version 3, a sources list with at least one file, and a mappings string. names and sourcesContent are optional, but without sourcesContent a tool needs your original files to show code.

Why is my source map not working?

The usual causes: the .map URL returns HTML instead of JSON, the bundle has no sourceMappingURL comment because the build made a hidden map, the map comes from a different build than the bundle, or sourcesContent is empty.

Should I serve source maps in production?

You don't have to. A hidden source map (Vite sourcemap: 'hidden', webpack hidden-source-map) is built without the sourceMappingURL comment, so browsers never ask for it. You keep the file and upload it where you need it.

Does Squasher use my source maps on stack traces?

Not yet. Today Squasher stores the maps you upload, by release and file name, and lists them from the CLI, the REST API, and MCP. Stack frames in Squasher show what your SDK sent.

Is my source map uploaded when I use this tool?

No. Validation runs in your browser; the bundle and the map stay on this page. The tool is also left out of this site's session replay, so what you paste is not recorded.

Ship the map with the release.

Add one upload step to CI, and every release keeps its maps next to its errors.

Free plan. No credit card required.