Open Bug 1954533 Opened 1 year ago Updated 4 months ago

copaair.com - Unable to create an account, stuck loading after accepting Terms and Conditions

Categories

(Web Compatibility :: Site Reports, defect, P1)

Firefox 138
Desktop
Windows 10

Tracking

(Webcompat Priority:P3, Webcompat Score:1, firefox136 wontfix, firefox137 wontfix, firefox138 wontfix, firefox142 fixed)

REOPENED
Webcompat Priority P3
Webcompat Score 1
Tracking Status
firefox136 --- wontfix
firefox137 --- wontfix
firefox138 --- wontfix
firefox142 --- fixed

People

(Reporter: ctanase, Assigned: twisniewski)

References

()

Details

(5 keywords, Whiteboard: [webcompat-source:product])

User Story

platform:windows,mac,linux,android
impact:workflow-broken
configuration:general
affects:all
branch:release
diagnosis-team:networking
user-impact-score:0
outreach-assignee:valentin
outreach-contact-date:2025-04-29

Attachments

(5 files, 1 obsolete file)

Attached image FF vs Chrome.png

Environment:
Operating system: Windows 11/10
Firefox version: Firefox 136.0.1 (release)/138

Preconditions:

  • Clean profile

Steps to reproduce:

  1. Navigate to: https://www.copaair.com/en-gs/enrollment/
  2. Fill in the required fields.
  3. Click on "Create an account".
  4. Accept the Terms and Conditions.

Expected Behavior:
Account gets created, welcome window shown.

Actual Behavior:
Stuck loading on the Terms and Conditions window.

Notes:

  • Reproducible on the latest Firefox Release and Nightly
  • Reproducible regardless of the ETP setting
  • Works as expected using Chrome

Created from webcompat-user-report:21ba2197-0fc7-48f4-99dc-c120d570e8f3

Since nightly and release are affected, beta will likely be affected too.
For more information, please visit BugBot documentation.

On clicking the button, I see a

Uncaught TypeError: can't access property "innerText", document.querySelector(...) is null

but no idea what it's looking for.

Severity: -- → S2
User Story: (updated)
Webcompat Priority: --- → P1
Webcompat Score: --- → 9
Priority: -- → P1

Here's a profile for that infinite stuck https://share.firefox.dev/4bGK9jx with nsHttp:5 logging enabled

It looks like we never finish the https://apicm.copaair.com/loyalty/createProfile request.

I wonder if necko folks can take a look about this first.

User Story: (updated)

there's definitely something networking related happening.
I see the following in wireshark:

TLSv1.3 Record Layer: Alert (Level: Warning, Description: Close Notify)
    Opaque Type: Application Data (23)
    Version: TLS 1.2 (0x0303)
    Length: 19
    [Content Type: Alert (21)]
    Alert Message
        Level: Warning (1)
        Description: Close Notify (0)

Unclear if the server is broken by itself, or if we are doing something wrong.

Kershaw - can you take a look since Valentin is on PTO for 2 weeks? Thanks

Flags: needinfo?(kershaw)
Flags: needinfo?(kershaw) → needinfo?(valentin.gosu)

The bug seems to reproduce only in Firefox, when HTTP/2 is enabled
It works in Chrome and Safari.
Turning off HTTP/2 seems to make it work.
The GoAway i was seeing earlier was on a backup connection, and TLS Alert, so not really relevant, but the request does seem to stall.
I'm currently looking at what exactly is different between the Chrome request and Firefox request, but this does seem to be a difference.
I also did a mozregression back to Fx 90, and could still reproduce the bug. Either this is a corner case in our implementation, or an issue with the server, but given that it only happens in Firefox, I'd say it's probably Firefox's fault.

Flags: needinfo?(valentin.gosu)

This is actually a site problem.
Opening https://apicm.copaair.com/loyalty/createProfile in a new tab times out, while opening https://apicm.copaair.com/loyalty/ returns immediately.
The User-Agent header didn't seem to impact this.

I copied the request as curl, and it also timed out when loaded via curl.
Removing arguments one by one, I narrowed it down to curl 'https://apicm.copaair.com/loyalty/createProfile' -H 'TE: trailers' -v
It seems it's the TE: trailers header is the one causing the issue.

I sent an email to HelpDesk@copaair.com notifying them of the issue.

Dennis, I think we can theoretically also ship an intervention where we clear the header prior to sending the request?
Is this important enough to do that?

Flags: needinfo?(dschubert)
User Story: (updated)

Sorry for the delay here. This is a top-1k site in some country, so this is absolutely worth investigating. We can do pretty much everything if we want to, I'll let Tom decide if this is easy-enough to create an intervention for.

Flags: needinfo?(dschubert) → needinfo?(twisniewski)

I wrote an intervention to alter the TE header, but it's not working. I've tried altering the header for just https://apicm.copaair.com/loyalty/createProfile* or the whole site, to remove the header or change it to or deflate;q=0.5, but the site still gives the same innerText error, and the POST request just seems to hang there. Is there more to the story here, Valentin? I'll attach my patch (I've confirmed the TE header is being changed on the requests).

Flags: needinfo?(twisniewski) → needinfo?(valentin.gosu)

Thanks for the patch Tom. I've looked into it, and came across these comments in mozilla::net::Http2Compressor::EncodeHeaderBlock and mozilla::net::nsHttpTransaction::OnActivated
It seems "TE" is the one header that we can't clear using this code.

Flags: needinfo?(valentin.gosu)

There are two workarounds for this issue:

  1. Disable HTTP/2 support via network.http.http2.enabled = false
  2. Setting nsIHttpChannelInternal::allowSpdy to false on the channel. Unfortunately I don't think we can do this via the webextension API, so it seems unlikely we can ship an intervention for it.

Yes, realistically we're stuck here as far as interventions go. Ideally we either add a per-site pref to force specific origins/match-patterns to not use http2, or change the code Valentin found in comment 12 to allow at least the webcompat addon to alter that header. Either will require Gecko changes that our webcompat addon can't do on its own.

I've called support and they've instructed me how to file a ticket on the website.
Now waiting for a reply:
Case Number: 3263049
Estimated response time: a maximum of 15 days.

Attachment #9489486 - Attachment is obsolete: true

First reply:

We could not validate bugs or errors during the registration process using Firefox. We will notify our web support team for further validation.

Valentin, do we understand why this isn't happening in Chrome?

Flags: needinfo?(valentin.gosu)
Flags: needinfo?(valentin.gosu)

I wonder.. could we make it possible just for addons (or even only the webcompat addon) to remove/change the TE header (and any other such unforgeable headers within reason)? It might be worth doing so, in case we run into other cases where a site isn't as responsive.

Depends on: 1971725

I posted a patch on bug 1971725 to allow stripping the TE headers.
I think this is the only such header that we couldn't normally overwrite. The first revision will not set the TE: trailers header if the requestHead contains "te": "moz_no_te_trailers":

channel.setRequestHeader("TE", "moz_no_te_trailers", false);

Attachment #9489486 - Attachment is obsolete: false
Keywords: leave-open
Assignee: nobody → twisniewski
Status: NEW → ASSIGNED
Attachment #9489486 - Attachment is obsolete: true
Pushed by twisniewski@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/0c0732488780 https://hg.mozilla.org/integration/autoland/rev/9395d0d8088c add a webcompat intervention for copaair.com to fix broken sign-up process by removing TE request header; r=denschub,webcompat-reviewers
Webcompat Score: 9 → 1

The site seems to have fixed this now, so I'll remove the intervention.

Keywords: leave-open
Status: ASSIGNED → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 142 Branch
Attached image RC 142 build 1.png

Verified, the issue is still reproducible with the RC build.

Tested with:

  • Browser / Version: Firefox 142.0-candidate build 1
  • Operating System: Windows 10
Status: RESOLVED → REOPENED
Resolution: FIXED → ---

Thomas, maybe (In reply to Thomas Wisniewski [:twisniewski][PTO August 18-22] from comment #24)

The site seems to have fixed this now, so I'll remove the intervention.

Was the site not actually fixed, or maybe they rolled back the fix?
Should we reland the intervention?

Flags: needinfo?(twisniewski)
Flags: needinfo?(dschubert)

Yes, it looks like they must have changed their site back to the version broken in Firefox. I'll re-ship the intervention ASAP.

Flags: needinfo?(twisniewski)
Flags: needinfo?(dschubert)
Keywords: leave-open
Pushed by twisniewski@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/1b31d202df29 https://hg.mozilla.org/integration/autoland/rev/48e9e610579a re-add our webcompat intervention for copaair.com to fix broken sign-up process by removing TE request header; r=denschub,webcompat-reviewers
User Story: (updated)
User Story: (updated)

This seems fixed, leaving open since there is an intervention in place.

Webcompat Priority: P1 → P3
Target Milestone: 142 Branch → ---
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: