Operations
Uploads should include the release value that the SDK sends. Keep release names stable between
event capture and upload.
Upload source maps
Send a multipart form with these fields:
Limits: at most 200 files, 32 MiB for each file, and 96 MiB for each request. A larger request
gets status
413; send the files in more than one request. A file name must be a relative path
without . or .. parts, and names must not contain control characters (status 400). Each upload
is stored as a new object, so a new upload of the same file name does not change older uploads.
The response has status 201:
debug_id is the debugId field of the map, or null when the bundler did not write one. A frame
with this debug ID resolves to this map in any release. Each entry of sourcemaps.list also has
debug_id.
Resolve stack frames
sourcemaps.symbolicate resolves up to 100 frames in one request. It changes no data.
matched_by is debug_id or filename. context is null when the map has no sourcesContent
for the file. When the map does not name the function, original.function is the function name of
the raw frame.
A frame that keeps its minified location has status: "unchanged", a reason, and a hint:
CLI and MCP
squasher sourcemaps upload accepts .map files, bundle .js files, and directories. For a
bundle, it uploads the map that the sourceMappingURL comment names, as <bundle>.map.
squasher sourcemaps symbolicate takes frames as arguments, or a stack trace with
--stack-file <file>. The hosted MCP server can list maps and resolve frames. Uploads need files,
so they are an API or CLI task, not an MCP task.