fix(bundler-plugins): do not warn on known sourcemap-less chunks - #22267

Merged
isaacs merged 2 commits into
developfrom
isaacs/fix-22199-reduce-warning-on-empty-chunks
Jul 27, 2026
Merged

fix(bundler-plugins): do not warn on known sourcemap-less chunks#22267
isaacs merged 2 commits into
developfrom
isaacs/fix-22199-reduce-warning-on-empty-chunks

Conversation

@isaacs

@isaacsisaacs commented Jul 14, 2026

Copy link
Copy Markdown
Member

Prevent potentially large number of noisy warnings that by design never emit sourcemaps.

For example:

~/b0f41f6b-e36f-409b-817f-921f7d295a7b-155.js (no sourcemap found, debug id b0f41f6b-...)
- warning: could not determine a source map reference (Could not auto-detect referenced sourcemap for ~/b0f41f6b-...-155.js)

This cannot be safely avoided using the file path glob approach, as seen in #18938, because the file paths in question here (uuids and alphanumeric hashes) can't be guaranteed to never hold user code as seen in the cases covered by #18938.

Instead, when no symbolication can be performed because the chunk is a stub without any sourcemap, downgrade the warning to a debug log.

fix: #22199
fix: #22199

@isaacs
isaacs requested review from chargome and timfishJuly 14, 2026 19:42
@linear-code

Copy link
Copy Markdown

JS-3006

@timfish

Copy link
Copy Markdown
Collaborator

This warning highlighted to users if they don't have sourcemaps enabled. After these changes is this still some kind of warning in this case?

@isaacs

Copy link
Copy Markdown
MemberAuthor

This warning highlighted to users if they don't have sourcemaps enabled. After these changes is this still some kind of warning in this case?

Ah, yes, that would be bad, whoops. Good catch.

I think we can still resolve this, though, by moving the warning up a level, to the manager instead of on the per-file level. Fixed on bfc2b32

@timfish

timfish commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

The test failures suggest that this change results in the sourcemap cli command no longer running when there are no sourcemaps. I guess this is preferable but I don't fully understand the consequences!

Comment on lines +710 to +717
if (files.length === 0) {
logger.warn(
`No source maps found for any of the ${debugIdChunkFilePaths.length} matched build ` +
'artifacts, so no source maps were uploaded to Sentry. This usually means source map ' +
'generation is not enabled in your bundler. Enable it so Sentry can un-minify your stack traces.',
);
return;
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: The warning for no source maps being found is misleading. It assumes source map generation is disabled, but it could also mean the asset glob only matched chunks without source maps.
Severity: LOW

Suggested Fix

The warning message should be more nuanced. Instead of definitively stating that source map generation is disabled, it should suggest that either source map generation is disabled OR that the sourcemaps.assets glob pattern might not be matching any files that have source maps. This would guide the user to check both their bundler configuration and their plugin configuration.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent. Verify if this is a real issue. If it is, propose a fix; if not, explain why it's
not valid.
Location: packages/bundler-plugins/src/core/build-plugin-manager.ts#L710-L717
Potential issue: The warning logged when no source maps are found for upload is
misleading. The code checks if the temporary upload folder is empty (`files.length ===
0`) and, if so, logs that "source map generation is not enabled". However, this folder
can also be empty when the `sourcemaps.assets` glob pattern correctly matches files that
legitimately do not have source maps, such as framework stubs. This can misdirect users
into debugging their bundler configuration when the actual issue is a misconfigured glob
pattern that only includes sourcemap-less chunks.

Did we get this right? 👍 / 👎 to inform future reviews.

isaacs added 2 commits July 15, 2026 11:20
Prevent potentially large number of noisy warnings that by design never
emit sourcemaps.
For example:
```
~/b0f41f6b-e36f-409b-817f-921f7d295a7b-155.js (no sourcemap found, debug id b0f41f6b-...)
- warning: could not determine a source map reference (Could not auto-detect referenced sourcemap for ~/b0f41f6b-...-155.js)
```
This cannot be safely avoided using the file path glob approach, as seen
in #18938, because the file paths in question here (uuids and
alphanumeric hashes) can't be guaranteed to _never_ hold user code as
seen in the cases covered by #18938.
Instead, when no symbolication can be performed because the chunk is a
stub without any sourcemap, downgrade the warning to a debug log.
fix: #22199
fix: JS-3006
@isaacs
isaacsforce-pushed the isaacs/fix-22199-reduce-warning-on-empty-chunks branch from bfc2b32 to 9ed5e0bCompareJuly 15, 2026 18:20
@github-actions

Copy link
Copy Markdown
Contributor

👋 @chargome — Please review this PR when you get a chance!

@chargomechargome left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM did you test this in a real-world nextjs app too?

@isaacs

Copy link
Copy Markdown
MemberAuthor

@chargome

LGTM did you test this in a real-world nextjs app too?

I did. It does prevent the excessive logs in the case the user reported (they're still there in debug mode).

@isaacs
isaacs merged commit 32c5db9 into developJul 27, 2026
51 checks passed
@isaacs
isaacs deleted the isaacs/fix-22199-reduce-warning-on-empty-chunks branch July 27, 2026 15:31
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[nextjs] Extend default sourcemaps ignore (#18938) to client-side stub chunks that never emit sourcemaps

3 participants

@isaacs@timfish@chargome
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix(bundler-plugins): do not warn on known sourcemap-less chunks - #22267

Merged
isaacs merged 2 commits into
developfrom
isaacs/fix-22199-reduce-warning-on-empty-chunks
Jul 27, 2026
Merged

fix(bundler-plugins): do not warn on known sourcemap-less chunks#22267
isaacs merged 2 commits into
developfrom
isaacs/fix-22199-reduce-warning-on-empty-chunks

Conversation

@isaacs

@isaacsisaacs commented Jul 14, 2026

Copy link
Copy Markdown
Member

Prevent potentially large number of noisy warnings that by design never emit sourcemaps.

For example:

~/b0f41f6b-e36f-409b-817f-921f7d295a7b-155.js (no sourcemap found, debug id b0f41f6b-...)
- warning: could not determine a source map reference (Could not auto-detect referenced sourcemap for ~/b0f41f6b-...-155.js)

This cannot be safely avoided using the file path glob approach, as seen in #18938, because the file paths in question here (uuids and alphanumeric hashes) can't be guaranteed to never hold user code as seen in the cases covered by #18938.

Instead, when no symbolication can be performed because the chunk is a stub without any sourcemap, downgrade the warning to a debug log.

fix: #22199
fix: #22199

@isaacs
isaacs requested review from chargome and timfishJuly 14, 2026 19:42
@linear-code

Copy link
Copy Markdown

JS-3006

@timfish

Copy link
Copy Markdown
Collaborator

This warning highlighted to users if they don't have sourcemaps enabled. After these changes is this still some kind of warning in this case?

@isaacs

Copy link
Copy Markdown
MemberAuthor

This warning highlighted to users if they don't have sourcemaps enabled. After these changes is this still some kind of warning in this case?

Ah, yes, that would be bad, whoops. Good catch.

I think we can still resolve this, though, by moving the warning up a level, to the manager instead of on the per-file level. Fixed on bfc2b32

@timfish

timfish commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

The test failures suggest that this change results in the sourcemap cli command no longer running when there are no sourcemaps. I guess this is preferable but I don't fully understand the consequences!

Comment on lines +710 to +717
if (files.length === 0) {
logger.warn(
`No source maps found for any of the ${debugIdChunkFilePaths.length} matched build ` +
'artifacts, so no source maps were uploaded to Sentry. This usually means source map ' +
'generation is not enabled in your bundler. Enable it so Sentry can un-minify your stack traces.',
);
return;
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: The warning for no source maps being found is misleading. It assumes source map generation is disabled, but it could also mean the asset glob only matched chunks without source maps.
Severity: LOW

Suggested Fix

The warning message should be more nuanced. Instead of definitively stating that source map generation is disabled, it should suggest that either source map generation is disabled OR that the sourcemaps.assets glob pattern might not be matching any files that have source maps. This would guide the user to check both their bundler configuration and their plugin configuration.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent. Verify if this is a real issue. If it is, propose a fix; if not, explain why it's
not valid.
Location: packages/bundler-plugins/src/core/build-plugin-manager.ts#L710-L717
Potential issue: The warning logged when no source maps are found for upload is
misleading. The code checks if the temporary upload folder is empty (`files.length ===
0`) and, if so, logs that "source map generation is not enabled". However, this folder
can also be empty when the `sourcemaps.assets` glob pattern correctly matches files that
legitimately do not have source maps, such as framework stubs. This can misdirect users
into debugging their bundler configuration when the actual issue is a misconfigured glob
pattern that only includes sourcemap-less chunks.

Did we get this right? 👍 / 👎 to inform future reviews.

isaacs added 2 commits July 15, 2026 11:20
Prevent potentially large number of noisy warnings that by design never
emit sourcemaps.
For example:
```
~/b0f41f6b-e36f-409b-817f-921f7d295a7b-155.js (no sourcemap found, debug id b0f41f6b-...)
- warning: could not determine a source map reference (Could not auto-detect referenced sourcemap for ~/b0f41f6b-...-155.js)
```
This cannot be safely avoided using the file path glob approach, as seen
in #18938, because the file paths in question here (uuids and
alphanumeric hashes) can't be guaranteed to _never_ hold user code as
seen in the cases covered by #18938.
Instead, when no symbolication can be performed because the chunk is a
stub without any sourcemap, downgrade the warning to a debug log.
fix: #22199
fix: JS-3006
@isaacs
isaacsforce-pushed the isaacs/fix-22199-reduce-warning-on-empty-chunks branch from bfc2b32 to 9ed5e0bCompareJuly 15, 2026 18:20
@github-actions

Copy link
Copy Markdown
Contributor

👋 @chargome — Please review this PR when you get a chance!

@chargomechargome left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM did you test this in a real-world nextjs app too?

@isaacs

Copy link
Copy Markdown
MemberAuthor

@chargome

LGTM did you test this in a real-world nextjs app too?

I did. It does prevent the excessive logs in the case the user reported (they're still there in debug mode).

@isaacs
isaacs merged commit 32c5db9 into developJul 27, 2026
51 checks passed
@isaacs
isaacs deleted the isaacs/fix-22199-reduce-warning-on-empty-chunks branch July 27, 2026 15:31
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[nextjs] Extend default sourcemaps ignore (#18938) to client-side stub chunks that never emit sourcemaps

3 participants

@isaacs@timfish@chargome
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(bundler-plugins): do not warn on known sourcemap-less chunks - #22267

Merged
isaacs merged 2 commits into
developfrom
isaacs/fix-22199-reduce-warning-on-empty-chunks
Jul 27, 2026
Merged

fix(bundler-plugins): do not warn on known sourcemap-less chunks#22267
isaacs merged 2 commits into
developfrom
isaacs/fix-22199-reduce-warning-on-empty-chunks

Conversation

@isaacs

@isaacsisaacs commented Jul 14, 2026

Copy link
Copy Markdown
Member

Prevent potentially large number of noisy warnings that by design never emit sourcemaps.

For example:

~/b0f41f6b-e36f-409b-817f-921f7d295a7b-155.js (no sourcemap found, debug id b0f41f6b-...)
- warning: could not determine a source map reference (Could not auto-detect referenced sourcemap for ~/b0f41f6b-...-155.js)

This cannot be safely avoided using the file path glob approach, as seen in #18938, because the file paths in question here (uuids and alphanumeric hashes) can't be guaranteed to never hold user code as seen in the cases covered by #18938.

Instead, when no symbolication can be performed because the chunk is a stub without any sourcemap, downgrade the warning to a debug log.

fix: #22199
fix: #22199

@isaacs
isaacs requested review from chargome and timfishJuly 14, 2026 19:42
@linear-code

Copy link
Copy Markdown

JS-3006

@timfish

Copy link
Copy Markdown
Collaborator

This warning highlighted to users if they don't have sourcemaps enabled. After these changes is this still some kind of warning in this case?

@isaacs

Copy link
Copy Markdown
MemberAuthor

This warning highlighted to users if they don't have sourcemaps enabled. After these changes is this still some kind of warning in this case?

Ah, yes, that would be bad, whoops. Good catch.

I think we can still resolve this, though, by moving the warning up a level, to the manager instead of on the per-file level. Fixed on bfc2b32

@timfish

timfish commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

The test failures suggest that this change results in the sourcemap cli command no longer running when there are no sourcemaps. I guess this is preferable but I don't fully understand the consequences!

Comment on lines +710 to +717
if (files.length === 0) {
logger.warn(
`No source maps found for any of the ${debugIdChunkFilePaths.length} matched build ` +
'artifacts, so no source maps were uploaded to Sentry. This usually means source map ' +
'generation is not enabled in your bundler. Enable it so Sentry can un-minify your stack traces.',
);
return;
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: The warning for no source maps being found is misleading. It assumes source map generation is disabled, but it could also mean the asset glob only matched chunks without source maps.
Severity: LOW

Suggested Fix

The warning message should be more nuanced. Instead of definitively stating that source map generation is disabled, it should suggest that either source map generation is disabled OR that the sourcemaps.assets glob pattern might not be matching any files that have source maps. This would guide the user to check both their bundler configuration and their plugin configuration.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent. Verify if this is a real issue. If it is, propose a fix; if not, explain why it's
not valid.
Location: packages/bundler-plugins/src/core/build-plugin-manager.ts#L710-L717
Potential issue: The warning logged when no source maps are found for upload is
misleading. The code checks if the temporary upload folder is empty (`files.length ===
0`) and, if so, logs that "source map generation is not enabled". However, this folder
can also be empty when the `sourcemaps.assets` glob pattern correctly matches files that
legitimately do not have source maps, such as framework stubs. This can misdirect users
into debugging their bundler configuration when the actual issue is a misconfigured glob
pattern that only includes sourcemap-less chunks.

Did we get this right? 👍 / 👎 to inform future reviews.

isaacs added 2 commits July 15, 2026 11:20
Prevent potentially large number of noisy warnings that by design never
emit sourcemaps.
For example:
```
~/b0f41f6b-e36f-409b-817f-921f7d295a7b-155.js (no sourcemap found, debug id b0f41f6b-...)
- warning: could not determine a source map reference (Could not auto-detect referenced sourcemap for ~/b0f41f6b-...-155.js)
```
This cannot be safely avoided using the file path glob approach, as seen
in #18938, because the file paths in question here (uuids and
alphanumeric hashes) can't be guaranteed to _never_ hold user code as
seen in the cases covered by #18938.
Instead, when no symbolication can be performed because the chunk is a
stub without any sourcemap, downgrade the warning to a debug log.
fix: #22199
fix: JS-3006
@isaacs
isaacsforce-pushed the isaacs/fix-22199-reduce-warning-on-empty-chunks branch from bfc2b32 to 9ed5e0bCompareJuly 15, 2026 18:20
@github-actions

Copy link
Copy Markdown
Contributor

👋 @chargome — Please review this PR when you get a chance!

@chargomechargome left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM did you test this in a real-world nextjs app too?

@isaacs

Copy link
Copy Markdown
MemberAuthor

@chargome

LGTM did you test this in a real-world nextjs app too?

I did. It does prevent the excessive logs in the case the user reported (they're still there in debug mode).

@isaacs
isaacs merged commit 32c5db9 into developJul 27, 2026
51 checks passed
@isaacs
isaacs deleted the isaacs/fix-22199-reduce-warning-on-empty-chunks branch July 27, 2026 15:31
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[nextjs] Extend default sourcemaps ignore (#18938) to client-side stub chunks that never emit sourcemaps

3 participants

@isaacs@timfish@chargome
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(bundler-plugins): do not warn on known sourcemap-less chunks - #22267

Merged
isaacs merged 2 commits into
developfrom
isaacs/fix-22199-reduce-warning-on-empty-chunks
Jul 27, 2026
Merged

fix(bundler-plugins): do not warn on known sourcemap-less chunks#22267
isaacs merged 2 commits into
developfrom
isaacs/fix-22199-reduce-warning-on-empty-chunks

Conversation

@isaacs

@isaacsisaacs commented Jul 14, 2026

Copy link
Copy Markdown
Member

Prevent potentially large number of noisy warnings that by design never emit sourcemaps.

For example:

~/b0f41f6b-e36f-409b-817f-921f7d295a7b-155.js (no sourcemap found, debug id b0f41f6b-...)
- warning: could not determine a source map reference (Could not auto-detect referenced sourcemap for ~/b0f41f6b-...-155.js)

This cannot be safely avoided using the file path glob approach, as seen in #18938, because the file paths in question here (uuids and alphanumeric hashes) can't be guaranteed to never hold user code as seen in the cases covered by #18938.

Instead, when no symbolication can be performed because the chunk is a stub without any sourcemap, downgrade the warning to a debug log.

fix: #22199
fix: #22199

@isaacs
isaacs requested review from chargome and timfishJuly 14, 2026 19:42
@linear-code

Copy link
Copy Markdown

JS-3006

@timfish

Copy link
Copy Markdown
Collaborator

This warning highlighted to users if they don't have sourcemaps enabled. After these changes is this still some kind of warning in this case?

@isaacs

Copy link
Copy Markdown
MemberAuthor

This warning highlighted to users if they don't have sourcemaps enabled. After these changes is this still some kind of warning in this case?

Ah, yes, that would be bad, whoops. Good catch.

I think we can still resolve this, though, by moving the warning up a level, to the manager instead of on the per-file level. Fixed on bfc2b32

@timfish

timfish commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

The test failures suggest that this change results in the sourcemap cli command no longer running when there are no sourcemaps. I guess this is preferable but I don't fully understand the consequences!

Comment on lines +710 to +717
if (files.length === 0) {
logger.warn(
`No source maps found for any of the ${debugIdChunkFilePaths.length} matched build ` +
'artifacts, so no source maps were uploaded to Sentry. This usually means source map ' +
'generation is not enabled in your bundler. Enable it so Sentry can un-minify your stack traces.',
);
return;
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: The warning for no source maps being found is misleading. It assumes source map generation is disabled, but it could also mean the asset glob only matched chunks without source maps.
Severity: LOW

Suggested Fix

The warning message should be more nuanced. Instead of definitively stating that source map generation is disabled, it should suggest that either source map generation is disabled OR that the sourcemaps.assets glob pattern might not be matching any files that have source maps. This would guide the user to check both their bundler configuration and their plugin configuration.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent. Verify if this is a real issue. If it is, propose a fix; if not, explain why it's
not valid.
Location: packages/bundler-plugins/src/core/build-plugin-manager.ts#L710-L717
Potential issue: The warning logged when no source maps are found for upload is
misleading. The code checks if the temporary upload folder is empty (`files.length ===
0`) and, if so, logs that "source map generation is not enabled". However, this folder
can also be empty when the `sourcemaps.assets` glob pattern correctly matches files that
legitimately do not have source maps, such as framework stubs. This can misdirect users
into debugging their bundler configuration when the actual issue is a misconfigured glob
pattern that only includes sourcemap-less chunks.

Did we get this right? 👍 / 👎 to inform future reviews.

isaacs added 2 commits July 15, 2026 11:20
Prevent potentially large number of noisy warnings that by design never
emit sourcemaps.
For example:
```
~/b0f41f6b-e36f-409b-817f-921f7d295a7b-155.js (no sourcemap found, debug id b0f41f6b-...)
- warning: could not determine a source map reference (Could not auto-detect referenced sourcemap for ~/b0f41f6b-...-155.js)
```
This cannot be safely avoided using the file path glob approach, as seen
in #18938, because the file paths in question here (uuids and
alphanumeric hashes) can't be guaranteed to _never_ hold user code as
seen in the cases covered by #18938.
Instead, when no symbolication can be performed because the chunk is a
stub without any sourcemap, downgrade the warning to a debug log.
fix: #22199
fix: JS-3006
@isaacs
isaacsforce-pushed the isaacs/fix-22199-reduce-warning-on-empty-chunks branch from bfc2b32 to 9ed5e0bCompareJuly 15, 2026 18:20
@github-actions

Copy link
Copy Markdown
Contributor

👋 @chargome — Please review this PR when you get a chance!

@chargomechargome left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM did you test this in a real-world nextjs app too?

@isaacs

Copy link
Copy Markdown
MemberAuthor

@chargome

LGTM did you test this in a real-world nextjs app too?

I did. It does prevent the excessive logs in the case the user reported (they're still there in debug mode).

@isaacs
isaacs merged commit 32c5db9 into developJul 27, 2026
51 checks passed
@isaacs
isaacs deleted the isaacs/fix-22199-reduce-warning-on-empty-chunks branch July 27, 2026 15:31
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[nextjs] Extend default sourcemaps ignore (#18938) to client-side stub chunks that never emit sourcemaps

3 participants

@isaacs@timfish@chargome
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix(bundler-plugins): do not warn on known sourcemap-less chunks - #22267

Merged
isaacs merged 2 commits into
developfrom
isaacs/fix-22199-reduce-warning-on-empty-chunks
Jul 27, 2026
Merged

fix(bundler-plugins): do not warn on known sourcemap-less chunks#22267
isaacs merged 2 commits into
developfrom
isaacs/fix-22199-reduce-warning-on-empty-chunks

Conversation

@isaacs

@isaacsisaacs commented Jul 14, 2026

Copy link
Copy Markdown
Member

Prevent potentially large number of noisy warnings that by design never emit sourcemaps.

For example:

~/b0f41f6b-e36f-409b-817f-921f7d295a7b-155.js (no sourcemap found, debug id b0f41f6b-...)
- warning: could not determine a source map reference (Could not auto-detect referenced sourcemap for ~/b0f41f6b-...-155.js)

This cannot be safely avoided using the file path glob approach, as seen in #18938, because the file paths in question here (uuids and alphanumeric hashes) can't be guaranteed to never hold user code as seen in the cases covered by #18938.

Instead, when no symbolication can be performed because the chunk is a stub without any sourcemap, downgrade the warning to a debug log.

fix: #22199
fix: #22199

@isaacs
isaacs requested review from chargome and timfishJuly 14, 2026 19:42
@linear-code

Copy link
Copy Markdown

JS-3006

@timfish

Copy link
Copy Markdown
Collaborator

This warning highlighted to users if they don't have sourcemaps enabled. After these changes is this still some kind of warning in this case?

@isaacs

Copy link
Copy Markdown
MemberAuthor

This warning highlighted to users if they don't have sourcemaps enabled. After these changes is this still some kind of warning in this case?

Ah, yes, that would be bad, whoops. Good catch.

I think we can still resolve this, though, by moving the warning up a level, to the manager instead of on the per-file level. Fixed on bfc2b32

@timfish

timfish commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

The test failures suggest that this change results in the sourcemap cli command no longer running when there are no sourcemaps. I guess this is preferable but I don't fully understand the consequences!

Comment on lines +710 to +717
if (files.length === 0) {
logger.warn(
`No source maps found for any of the ${debugIdChunkFilePaths.length} matched build ` +
'artifacts, so no source maps were uploaded to Sentry. This usually means source map ' +
'generation is not enabled in your bundler. Enable it so Sentry can un-minify your stack traces.',
);
return;
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: The warning for no source maps being found is misleading. It assumes source map generation is disabled, but it could also mean the asset glob only matched chunks without source maps.
Severity: LOW

Suggested Fix

The warning message should be more nuanced. Instead of definitively stating that source map generation is disabled, it should suggest that either source map generation is disabled OR that the sourcemaps.assets glob pattern might not be matching any files that have source maps. This would guide the user to check both their bundler configuration and their plugin configuration.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent. Verify if this is a real issue. If it is, propose a fix; if not, explain why it's
not valid.
Location: packages/bundler-plugins/src/core/build-plugin-manager.ts#L710-L717
Potential issue: The warning logged when no source maps are found for upload is
misleading. The code checks if the temporary upload folder is empty (`files.length ===
0`) and, if so, logs that "source map generation is not enabled". However, this folder
can also be empty when the `sourcemaps.assets` glob pattern correctly matches files that
legitimately do not have source maps, such as framework stubs. This can misdirect users
into debugging their bundler configuration when the actual issue is a misconfigured glob
pattern that only includes sourcemap-less chunks.

Did we get this right? 👍 / 👎 to inform future reviews.

isaacs added 2 commits July 15, 2026 11:20
Prevent potentially large number of noisy warnings that by design never
emit sourcemaps.
For example:
```
~/b0f41f6b-e36f-409b-817f-921f7d295a7b-155.js (no sourcemap found, debug id b0f41f6b-...)
- warning: could not determine a source map reference (Could not auto-detect referenced sourcemap for ~/b0f41f6b-...-155.js)
```
This cannot be safely avoided using the file path glob approach, as seen
in #18938, because the file paths in question here (uuids and
alphanumeric hashes) can't be guaranteed to _never_ hold user code as
seen in the cases covered by #18938.
Instead, when no symbolication can be performed because the chunk is a
stub without any sourcemap, downgrade the warning to a debug log.
fix: #22199
fix: JS-3006
@isaacs
isaacsforce-pushed the isaacs/fix-22199-reduce-warning-on-empty-chunks branch from bfc2b32 to 9ed5e0bCompareJuly 15, 2026 18:20
@github-actions

Copy link
Copy Markdown
Contributor

👋 @chargome — Please review this PR when you get a chance!

@chargomechargome left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM did you test this in a real-world nextjs app too?

@isaacs

Copy link
Copy Markdown
MemberAuthor

@chargome

LGTM did you test this in a real-world nextjs app too?

I did. It does prevent the excessive logs in the case the user reported (they're still there in debug mode).

@isaacs
isaacs merged commit 32c5db9 into developJul 27, 2026
51 checks passed
@isaacs
isaacs deleted the isaacs/fix-22199-reduce-warning-on-empty-chunks branch July 27, 2026 15:31
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[nextjs] Extend default sourcemaps ignore (#18938) to client-side stub chunks that never emit sourcemaps

3 participants

@isaacs@timfish@chargome
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(bundler-plugins): do not warn on known sourcemap-less chunks - #22267

Merged
isaacs merged 2 commits into
developfrom
isaacs/fix-22199-reduce-warning-on-empty-chunks
Jul 27, 2026
Merged

fix(bundler-plugins): do not warn on known sourcemap-less chunks#22267
isaacs merged 2 commits into
developfrom
isaacs/fix-22199-reduce-warning-on-empty-chunks

Conversation

@isaacs

@isaacsisaacs commented Jul 14, 2026

Copy link
Copy Markdown
Member

Prevent potentially large number of noisy warnings that by design never emit sourcemaps.

For example:

~/b0f41f6b-e36f-409b-817f-921f7d295a7b-155.js (no sourcemap found, debug id b0f41f6b-...)
- warning: could not determine a source map reference (Could not auto-detect referenced sourcemap for ~/b0f41f6b-...-155.js)

This cannot be safely avoided using the file path glob approach, as seen in #18938, because the file paths in question here (uuids and alphanumeric hashes) can't be guaranteed to never hold user code as seen in the cases covered by #18938.

Instead, when no symbolication can be performed because the chunk is a stub without any sourcemap, downgrade the warning to a debug log.

fix: #22199
fix: #22199

@isaacs
isaacs requested review from chargome and timfishJuly 14, 2026 19:42
@linear-code

Copy link
Copy Markdown

JS-3006

@timfish

Copy link
Copy Markdown
Collaborator

This warning highlighted to users if they don't have sourcemaps enabled. After these changes is this still some kind of warning in this case?

@isaacs

Copy link
Copy Markdown
MemberAuthor

This warning highlighted to users if they don't have sourcemaps enabled. After these changes is this still some kind of warning in this case?

Ah, yes, that would be bad, whoops. Good catch.

I think we can still resolve this, though, by moving the warning up a level, to the manager instead of on the per-file level. Fixed on bfc2b32

@timfish

timfish commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

The test failures suggest that this change results in the sourcemap cli command no longer running when there are no sourcemaps. I guess this is preferable but I don't fully understand the consequences!

Comment on lines +710 to +717
if (files.length === 0) {
logger.warn(
`No source maps found for any of the ${debugIdChunkFilePaths.length} matched build ` +
'artifacts, so no source maps were uploaded to Sentry. This usually means source map ' +
'generation is not enabled in your bundler. Enable it so Sentry can un-minify your stack traces.',
);
return;
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: The warning for no source maps being found is misleading. It assumes source map generation is disabled, but it could also mean the asset glob only matched chunks without source maps.
Severity: LOW

Suggested Fix

The warning message should be more nuanced. Instead of definitively stating that source map generation is disabled, it should suggest that either source map generation is disabled OR that the sourcemaps.assets glob pattern might not be matching any files that have source maps. This would guide the user to check both their bundler configuration and their plugin configuration.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent. Verify if this is a real issue. If it is, propose a fix; if not, explain why it's
not valid.
Location: packages/bundler-plugins/src/core/build-plugin-manager.ts#L710-L717
Potential issue: The warning logged when no source maps are found for upload is
misleading. The code checks if the temporary upload folder is empty (`files.length ===
0`) and, if so, logs that "source map generation is not enabled". However, this folder
can also be empty when the `sourcemaps.assets` glob pattern correctly matches files that
legitimately do not have source maps, such as framework stubs. This can misdirect users
into debugging their bundler configuration when the actual issue is a misconfigured glob
pattern that only includes sourcemap-less chunks.

Did we get this right? 👍 / 👎 to inform future reviews.

isaacs added 2 commits July 15, 2026 11:20
Prevent potentially large number of noisy warnings that by design never
emit sourcemaps.
For example:
```
~/b0f41f6b-e36f-409b-817f-921f7d295a7b-155.js (no sourcemap found, debug id b0f41f6b-...)
- warning: could not determine a source map reference (Could not auto-detect referenced sourcemap for ~/b0f41f6b-...-155.js)
```
This cannot be safely avoided using the file path glob approach, as seen
in #18938, because the file paths in question here (uuids and
alphanumeric hashes) can't be guaranteed to _never_ hold user code as
seen in the cases covered by #18938.
Instead, when no symbolication can be performed because the chunk is a
stub without any sourcemap, downgrade the warning to a debug log.
fix: #22199
fix: JS-3006
@isaacs
isaacsforce-pushed the isaacs/fix-22199-reduce-warning-on-empty-chunks branch from bfc2b32 to 9ed5e0bCompareJuly 15, 2026 18:20
@github-actions

Copy link
Copy Markdown
Contributor

👋 @chargome — Please review this PR when you get a chance!

@chargomechargome left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM did you test this in a real-world nextjs app too?

@isaacs

Copy link
Copy Markdown
MemberAuthor

@chargome

LGTM did you test this in a real-world nextjs app too?

I did. It does prevent the excessive logs in the case the user reported (they're still there in debug mode).

@isaacs
isaacs merged commit 32c5db9 into developJul 27, 2026
51 checks passed
@isaacs
isaacs deleted the isaacs/fix-22199-reduce-warning-on-empty-chunks branch July 27, 2026 15:31
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[nextjs] Extend default sourcemaps ignore (#18938) to client-side stub chunks that never emit sourcemaps

3 participants

@isaacs@timfish@chargome
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(bundler-plugins): do not warn on known sourcemap-less chunks - #22267

Merged
isaacs merged 2 commits into
developfrom
isaacs/fix-22199-reduce-warning-on-empty-chunks
Jul 27, 2026
Merged

fix(bundler-plugins): do not warn on known sourcemap-less chunks#22267
isaacs merged 2 commits into
developfrom
isaacs/fix-22199-reduce-warning-on-empty-chunks

Conversation

@isaacs

@isaacsisaacs commented Jul 14, 2026

Copy link
Copy Markdown
Member

Prevent potentially large number of noisy warnings that by design never emit sourcemaps.

For example:

~/b0f41f6b-e36f-409b-817f-921f7d295a7b-155.js (no sourcemap found, debug id b0f41f6b-...)
- warning: could not determine a source map reference (Could not auto-detect referenced sourcemap for ~/b0f41f6b-...-155.js)

This cannot be safely avoided using the file path glob approach, as seen in #18938, because the file paths in question here (uuids and alphanumeric hashes) can't be guaranteed to never hold user code as seen in the cases covered by #18938.

Instead, when no symbolication can be performed because the chunk is a stub without any sourcemap, downgrade the warning to a debug log.

fix: #22199
fix: #22199

@isaacs
isaacs requested review from chargome and timfishJuly 14, 2026 19:42
@linear-code

Copy link
Copy Markdown

JS-3006

@timfish

Copy link
Copy Markdown
Collaborator

This warning highlighted to users if they don't have sourcemaps enabled. After these changes is this still some kind of warning in this case?

@isaacs

Copy link
Copy Markdown
MemberAuthor

This warning highlighted to users if they don't have sourcemaps enabled. After these changes is this still some kind of warning in this case?

Ah, yes, that would be bad, whoops. Good catch.

I think we can still resolve this, though, by moving the warning up a level, to the manager instead of on the per-file level. Fixed on bfc2b32

@timfish

timfish commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

The test failures suggest that this change results in the sourcemap cli command no longer running when there are no sourcemaps. I guess this is preferable but I don't fully understand the consequences!

Comment on lines +710 to +717
if (files.length === 0) {
logger.warn(
`No source maps found for any of the ${debugIdChunkFilePaths.length} matched build ` +
'artifacts, so no source maps were uploaded to Sentry. This usually means source map ' +
'generation is not enabled in your bundler. Enable it so Sentry can un-minify your stack traces.',
);
return;
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: The warning for no source maps being found is misleading. It assumes source map generation is disabled, but it could also mean the asset glob only matched chunks without source maps.
Severity: LOW

Suggested Fix

The warning message should be more nuanced. Instead of definitively stating that source map generation is disabled, it should suggest that either source map generation is disabled OR that the sourcemaps.assets glob pattern might not be matching any files that have source maps. This would guide the user to check both their bundler configuration and their plugin configuration.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent. Verify if this is a real issue. If it is, propose a fix; if not, explain why it's
not valid.
Location: packages/bundler-plugins/src/core/build-plugin-manager.ts#L710-L717
Potential issue: The warning logged when no source maps are found for upload is
misleading. The code checks if the temporary upload folder is empty (`files.length ===
0`) and, if so, logs that "source map generation is not enabled". However, this folder
can also be empty when the `sourcemaps.assets` glob pattern correctly matches files that
legitimately do not have source maps, such as framework stubs. This can misdirect users
into debugging their bundler configuration when the actual issue is a misconfigured glob
pattern that only includes sourcemap-less chunks.

Did we get this right? 👍 / 👎 to inform future reviews.

isaacs added 2 commits July 15, 2026 11:20
Prevent potentially large number of noisy warnings that by design never
emit sourcemaps.
For example:
```
~/b0f41f6b-e36f-409b-817f-921f7d295a7b-155.js (no sourcemap found, debug id b0f41f6b-...)
- warning: could not determine a source map reference (Could not auto-detect referenced sourcemap for ~/b0f41f6b-...-155.js)
```
This cannot be safely avoided using the file path glob approach, as seen
in #18938, because the file paths in question here (uuids and
alphanumeric hashes) can't be guaranteed to _never_ hold user code as
seen in the cases covered by #18938.
Instead, when no symbolication can be performed because the chunk is a
stub without any sourcemap, downgrade the warning to a debug log.
fix: #22199
fix: JS-3006
@isaacs
isaacsforce-pushed the isaacs/fix-22199-reduce-warning-on-empty-chunks branch from bfc2b32 to 9ed5e0bCompareJuly 15, 2026 18:20
@github-actions

Copy link
Copy Markdown
Contributor

👋 @chargome — Please review this PR when you get a chance!

@chargomechargome left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM did you test this in a real-world nextjs app too?

@isaacs

Copy link
Copy Markdown
MemberAuthor

@chargome

LGTM did you test this in a real-world nextjs app too?

I did. It does prevent the excessive logs in the case the user reported (they're still there in debug mode).

@isaacs
isaacs merged commit 32c5db9 into developJul 27, 2026
51 checks passed
@isaacs
isaacs deleted the isaacs/fix-22199-reduce-warning-on-empty-chunks branch July 27, 2026 15:31
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[nextjs] Extend default sourcemaps ignore (#18938) to client-side stub chunks that never emit sourcemaps

3 participants

@isaacs@timfish@chargome
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix(bundler-plugins): do not warn on known sourcemap-less chunks - #22267

Merged
isaacs merged 2 commits into
developfrom
isaacs/fix-22199-reduce-warning-on-empty-chunks
Jul 27, 2026
Merged

fix(bundler-plugins): do not warn on known sourcemap-less chunks#22267
isaacs merged 2 commits into
developfrom
isaacs/fix-22199-reduce-warning-on-empty-chunks

Conversation

@isaacs

@isaacsisaacs commented Jul 14, 2026

Copy link
Copy Markdown
Member

Prevent potentially large number of noisy warnings that by design never emit sourcemaps.

For example:

~/b0f41f6b-e36f-409b-817f-921f7d295a7b-155.js (no sourcemap found, debug id b0f41f6b-...)
- warning: could not determine a source map reference (Could not auto-detect referenced sourcemap for ~/b0f41f6b-...-155.js)

This cannot be safely avoided using the file path glob approach, as seen in #18938, because the file paths in question here (uuids and alphanumeric hashes) can't be guaranteed to never hold user code as seen in the cases covered by #18938.

Instead, when no symbolication can be performed because the chunk is a stub without any sourcemap, downgrade the warning to a debug log.

fix: #22199
fix: #22199

@isaacs
isaacs requested review from chargome and timfishJuly 14, 2026 19:42
@linear-code

Copy link
Copy Markdown

JS-3006

@timfish

Copy link
Copy Markdown
Collaborator

This warning highlighted to users if they don't have sourcemaps enabled. After these changes is this still some kind of warning in this case?

@isaacs

Copy link
Copy Markdown
MemberAuthor

This warning highlighted to users if they don't have sourcemaps enabled. After these changes is this still some kind of warning in this case?

Ah, yes, that would be bad, whoops. Good catch.

I think we can still resolve this, though, by moving the warning up a level, to the manager instead of on the per-file level. Fixed on bfc2b32

@timfish

timfish commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

The test failures suggest that this change results in the sourcemap cli command no longer running when there are no sourcemaps. I guess this is preferable but I don't fully understand the consequences!

Comment on lines +710 to +717
if (files.length === 0) {
logger.warn(
`No source maps found for any of the ${debugIdChunkFilePaths.length} matched build ` +
'artifacts, so no source maps were uploaded to Sentry. This usually means source map ' +
'generation is not enabled in your bundler. Enable it so Sentry can un-minify your stack traces.',
);
return;
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: The warning for no source maps being found is misleading. It assumes source map generation is disabled, but it could also mean the asset glob only matched chunks without source maps.
Severity: LOW

Suggested Fix

The warning message should be more nuanced. Instead of definitively stating that source map generation is disabled, it should suggest that either source map generation is disabled OR that the sourcemaps.assets glob pattern might not be matching any files that have source maps. This would guide the user to check both their bundler configuration and their plugin configuration.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent. Verify if this is a real issue. If it is, propose a fix; if not, explain why it's
not valid.
Location: packages/bundler-plugins/src/core/build-plugin-manager.ts#L710-L717
Potential issue: The warning logged when no source maps are found for upload is
misleading. The code checks if the temporary upload folder is empty (`files.length ===
0`) and, if so, logs that "source map generation is not enabled". However, this folder
can also be empty when the `sourcemaps.assets` glob pattern correctly matches files that
legitimately do not have source maps, such as framework stubs. This can misdirect users
into debugging their bundler configuration when the actual issue is a misconfigured glob
pattern that only includes sourcemap-less chunks.

Did we get this right? 👍 / 👎 to inform future reviews.

isaacs added 2 commits July 15, 2026 11:20
Prevent potentially large number of noisy warnings that by design never
emit sourcemaps.
For example:
```
~/b0f41f6b-e36f-409b-817f-921f7d295a7b-155.js (no sourcemap found, debug id b0f41f6b-...)
- warning: could not determine a source map reference (Could not auto-detect referenced sourcemap for ~/b0f41f6b-...-155.js)
```
This cannot be safely avoided using the file path glob approach, as seen
in #18938, because the file paths in question here (uuids and
alphanumeric hashes) can't be guaranteed to _never_ hold user code as
seen in the cases covered by #18938.
Instead, when no symbolication can be performed because the chunk is a
stub without any sourcemap, downgrade the warning to a debug log.
fix: #22199
fix: JS-3006
@isaacs
isaacsforce-pushed the isaacs/fix-22199-reduce-warning-on-empty-chunks branch from bfc2b32 to 9ed5e0bCompareJuly 15, 2026 18:20
@github-actions

Copy link
Copy Markdown
Contributor

👋 @chargome — Please review this PR when you get a chance!

@chargomechargome left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM did you test this in a real-world nextjs app too?

@isaacs

Copy link
Copy Markdown
MemberAuthor

@chargome

LGTM did you test this in a real-world nextjs app too?

I did. It does prevent the excessive logs in the case the user reported (they're still there in debug mode).

@isaacs
isaacs merged commit 32c5db9 into developJul 27, 2026
51 checks passed
@isaacs
isaacs deleted the isaacs/fix-22199-reduce-warning-on-empty-chunks branch July 27, 2026 15:31
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[nextjs] Extend default sourcemaps ignore (#18938) to client-side stub chunks that never emit sourcemaps

3 participants

@isaacs@timfish@chargome