Increase error code visibility on net error pages
Categories
(Firefox :: Security, defect, P2)
Tracking
()
People
(Reporter: jbrown, Assigned: jbrown)
References
(Blocks 1 open bug)
Details
Attachments
(8 files, 2 obsolete files)
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
119.36 KB,
image/png
|
Details | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
phab-bot
:
approval-mozilla-beta+
|
Details | Review |
|
48 bytes,
text/x-phabricator-request
|
phab-bot
:
approval-mozilla-beta+
|
Details | Review |
|
48 bytes,
text/x-phabricator-request
|
phab-bot
:
approval-mozilla-beta+
|
Details | Review |
A Reddit thread surfaced user complaints that the new Felt Privacy error pages don't show error codes. Investigation suggests this might not be a straightforward regression, since the specific errors shown in the screenshot (connectionFailure/netInterrupt) never showed error codes in the old UI either.
The real issue could be broader, since this affects all net errors that go through the customNetError template in net-error-card.mjs. These error configs are all defined in net-errors.mjs, but not every config in that file is affected.
A decision is needed on which of these net errors should actually display their error code. If any should, the fix is straightforward: update customNetErrorSectionTemplate in net-error-card.mjs to render the error code when present in the config, and ensure the relevant registry entries have the correct errorCode values.
Comment 1•4 months ago
|
||
This looks like a duplicate of bug 2023800
| Assignee | ||
Comment 2•4 months ago
|
||
| Error ID | Displayed Code | Reason NOT to show | Reason to show | Show? |
|---|---|---|---|---|
NS_ERROR_OFFLINE |
NS_ERROR_OFFLINE |
Real NS_ERROR_* code. meaningful for support and diagnostics |
TBD | |
blockedByCOOP |
NS_ERROR_DOM_COOP_FAILED |
Real NS_ERROR_* code. directly actionable for web devs debugging COOP headers |
TBD | |
blockedByCOEP |
NS_ERROR_DOM_COEP_FAILED |
Real NS_ERROR_* code. directly actionable for web devs debugging COEP headers |
TBD | |
netReset |
Useful to distinguish from other connection errors in bug reports | TBD | ||
connectionFailure |
Common. helps users search for solutions and file useful bug reports | TBD | ||
netInterrupt |
Distinguishes mid-transfer failures from initial connection failures | TBD | ||
netTimeout |
Distinguishes timeout from refused/reset | TBD | ||
dnsNotFound |
Very common. well-recognised by users and support staff | TBD | ||
httpErrorPage |
COMPLETE: Bug 2023800 already surfaces the HTTP status code and text in the intro via responsestatus/responsestatustext. |
Yes | ||
serverError |
COMPLETE: Bug 2023800 already surfaces the HTTP status code and text in the intro. | Yes | ||
invalidHeaderValue |
Useful for web devs diagnosing malformed response headers | TBD | ||
deniedPortAccess |
Firefox security policy. not actionable by the user or support. Bug 2024150 (currently reverted) also removed whatCanYouDoL10nId from this config, treating it as having no remediation steps at all |
TBD | ||
malformedURI |
User typed an invalid URL. "malformedURI" is semantically identical to the page title and doesn't help them fix it | TBD | ||
captivePortal |
Single clear action (open login portal). code has no actionable or diagnostic value | TBD | ||
contentEncodingError |
Identifies server-side encoding misconfigurations. useful for reporting to site owners | TBD | ||
corruptedContentErrorv2 |
Distinguishes corruption from other transfer errors | TBD | ||
fileAccessDenied |
Local file permission error. code restates the title with no additional diagnostic value | TBD | ||
fileNotFound |
COMPLETE: Bug 2018850 added file-specific messaging (actual file path, file-oriented advice). | Yes | ||
inadequateSecurityError |
Identifies weak TLS configuration specifically. useful for tech support | TBD | ||
netOffline |
Distinguishes browser offline mode from actual connectivity failures | TBD | ||
networkProtocolError |
Identifies HTTP/2 or HTTP/3 protocol-level failures | TBD | ||
notCached |
Informational only. code doesn't help the user or support take any action | TBD | ||
nssFailure2 |
Helps support identify NSS library failures | TBD | ||
proxyConnectFailure |
Useful for proxy configuration diagnosis | TBD | ||
vpnFailure |
Useful for IT support troubleshooting VPN connectivity | TBD | ||
proxyResolveFailure |
Distinguishes proxy DNS failures from proxy connection failures | TBD | ||
redirectLoop |
Helps users report the specific condition to site owners | TBD | ||
sslv3Used |
Identifies the specific obsolete protocol. useful for tech support | TBD | ||
unknownProtocolFound |
Identifies unrecognised URI scheme issues | TBD | ||
unknownSocketType |
Useful for tech support diagnosing misconfigured socket types | TBD | ||
unsafeContentType |
Identifies a MIME-type safety issue. useful for web devs | TBD | ||
cspBlocked |
Useful for web devs debugging CSP configurations | TBD | ||
xfoBlocked |
Useful for web devs debugging X-Frame-Options configurations | TBD |
Comment 3•3 months ago
|
||
I've updated the table below with what we should do in bold. Some of the pages I marked no because the text on the page is specific enough to already describe the error.
(In reply to Jack Brown from comment #2)
Error ID Displayed Code Reason NOT to show Reason to show Show? NS_ERROR_OFFLINENS_ERROR_OFFLINEReal NS_ERROR_*code. meaningful for support and diagnosticsYes blockedByCOOPNS_ERROR_DOM_COOP_FAILEDReal NS_ERROR_*code. directly actionable for web devs debugging COOP headersYes blockedByCOEPNS_ERROR_DOM_COEP_FAILEDReal NS_ERROR_*code. directly actionable for web devs debugging COEP headersYes netResetUseful to distinguish from other connection errors in bug reports Yes connectionFailureCommon. helps users search for solutions and file useful bug reports Yes netInterruptDistinguishes mid-transfer failures from initial connection failures Yes netTimeoutDistinguishes timeout from refused/reset Yes dnsNotFoundVery common. well-recognised by users and support staff Yes httpErrorPageCOMPLETE: Bug 2023800 already surfaces the HTTP status code and text in the intro via responsestatus/responsestatustext.Yes serverErrorCOMPLETE: Bug 2023800 already surfaces the HTTP status code and text in the intro. Yes invalidHeaderValueUseful for web devs diagnosing malformed response headers Yes deniedPortAccessFirefox security policy. not actionable by the user or support. Bug 2024150 (currently reverted) also removed whatCanYouDoL10nIdfrom this config, treating it as having no remediation steps at allNo malformedURIUser typed an invalid URL. "malformedURI" is semantically identical to the page title and doesn't help them fix it No captivePortalSingle clear action (open login portal). code has no actionable or diagnostic value No contentEncodingErrorIdentifies server-side encoding misconfigurations. useful for reporting to site owners Yes corruptedContentErrorv2Distinguishes corruption from other transfer errors TBD fileAccessDeniedLocal file permission error. code restates the title with no additional diagnostic value No fileNotFoundCOMPLETE: Bug 2018850 added file-specific messaging (actual file path, file-oriented advice). Yes inadequateSecurityErrorIdentifies weak TLS configuration specifically. useful for tech support No netOfflineDistinguishes browser offline mode from actual connectivity failures Yes networkProtocolErrorIdentifies HTTP/2 or HTTP/3 protocol-level failures No notCachedInformational only. code doesn't help the user or support take any action No nssFailure2Helps support identify NSS library failures No proxyConnectFailureUseful for proxy configuration diagnosis No, because error page already has proxy-specific language vpnFailureUseful for IT support troubleshooting VPN connectivity No, because error page already has VPN-specific language proxyResolveFailureDistinguishes proxy DNS failures from proxy connection failures No redirectLoopHelps users report the specific condition to site owners No sslv3UsedIdentifies the specific obsolete protocol. useful for tech support No unknownProtocolFoundIdentifies unrecognised URI scheme issues No unknownSocketTypeUseful for tech support diagnosing misconfigured socket types No unsafeContentTypeIdentifies a MIME-type safety issue. useful for web devs No cspBlockedUseful for web devs debugging CSP configurations No xfoBlockedUseful for web devs debugging X-Frame-Options configurations No
Updated•3 months ago
|
| Assignee | ||
Comment 4•3 months ago
|
||
| Assignee | ||
Comment 5•3 months ago
•
|
||
Catalog of errors to update, how to reproduce them, and screenshots of each page before/after:
https://docs.google.com/document/d/1J3i8-qtXiYlXDuIXf-RoUMBr6fPXChG6rWxJGWgcuCo/edit?usp=sharing
Run an old version of Firefox, such as mach mozregression --launch 2025-11-01, to check old pages.
Updated•3 months ago
|
| Assignee | ||
Comment 6•3 months ago
|
||
| Assignee | ||
Comment 7•3 months ago
|
||
| Assignee | ||
Comment 8•3 months ago
|
||
Comment 9•3 months ago
|
||
I was just about to open a bug about contentEncodingError, but saw that it is getting at least partly addressed in this bug, so adding information here:
Like HTTP error that were updated in Bug 2023800, the error
contentEncodingErrorhappens after establishing the connection to the server. It is also somewhat later due to being an error about the HTTP body, not HTTP headers. We should both:
- Show the HTTP status code if it is an error (similar to Bug 2023800) and
- Replace the phrase "canβt connect to the server at" with something that describes the situation more correctly.
I'm attach a screenshot of how it looks like now/before. Sorry, I'm unable to share the website, because it is a private one. And I haven't found a good test website / haven't setup one yet.
I see that (2) is currently getting addressed here. However, I was wondering whether (1) could get addressed here too, or whether I should open a separate bug for that. This might be true for other errors too.
Comment 10•3 months ago
|
||
@manuel, can you please open a new bug for the status code? Since that might affect other errors, I don't want to slow down the momentum here while we research each code to update. I want to get the changes in this bug in for 151 and the window for string changes closes today.
| Assignee | ||
Comment 11•3 months ago
|
||
Updated•3 months ago
|
Comment 12•3 months ago
|
||
Comment 13•3 months ago
|
||
| bugherder | ||
Comment 14•3 months ago
|
||
Reopening as we have two more patches we want to land for this work. We just landed the strings in advance.
Updated•3 months ago
|
Updated•3 months ago
|
Updated•3 months ago
|
Updated•3 months ago
|
| Assignee | ||
Comment 15•3 months ago
|
||
Updated•3 months ago
|
Comment 16•3 months ago
|
||
Comment 17•3 months ago
|
||
Comment 18•3 months ago
|
||
| bugherder | ||
Comment 19•3 months ago
|
||
Updated•3 months ago
|
| Assignee | ||
Comment 20•3 months ago
|
||
Affected errors:
NS_ERROR_OFFLINE
NS_ERROR_DOM_COOP_FAILED (blockedByCOOP)
NS_ERROR_DOM_COEP_FAILED (blockedByCOEP)
NS_ERROR_NET_EMPTY_RESPONSE (netReset)
Original Revision: https://phabricator.services.mozilla.com/D294024
Updated•3 months ago
|
| Assignee | ||
Comment 21•3 months ago
|
||
Original Revision: https://phabricator.services.mozilla.com/D294693
Updated•3 months ago
|
Comment 22•3 months ago
|
||
firefox-beta Uplift Approval Request
- User impact if declined/Reason for urgency: The Felt Privacy error page redesign shipped with terse or missing error messages/codes for several common network failures (connectionFailure, netTimeout, netInterrupt). Users and support staff rely on these codes to diagnose issues. Declining means Firefox 151 users see less informative error pages.
- Code covered by automated testing?: yes
- Fix verified in Nightly?: yes
- Needs manual QE testing?: no
- Steps to reproduce for manual QE testing:
- Risk associated with taking this patch: low
- Explanation of risk level: Changes are confined to the error page rendering path. Normal browsing is completely unaffected. Automated tests cover each affected error type.
- String changes made/needed?: N/A
- Is Android affected?: no
| Assignee | ||
Comment 23•3 months ago
|
||
Original Revision: https://phabricator.services.mozilla.com/D295527
Updated•3 months ago
|
Comment 24•3 months ago
|
||
| bugherder | ||
Updated•3 months ago
|
Updated•3 months ago
|
Updated•3 months ago
|
Updated•3 months ago
|
Comment 25•3 months ago
|
||
| uplift | ||
Description
•