91³Ô¹ÏÍø

Watch CBS News

World Cup fans struggle to buy $80 train tickets on MBTA app: "Not a great look"

The $80 train tickets from Boston to Foxboro for World Cup matches at Gillette Stadium went on sale Wednesday, but some soccer fans had a hard time buying them on the MBTA's mTicket app.

The app asks customers to enter the email address they used to buy their match ticket. But many fans on social media reported getting a "Registration Failed" message that prevented them from getting passes for the train.

"It took way too long," said John Melanson who is going to a game with his son. "It was easier to get World Cup tickets than it was to get a ride down there. I was actually second guessing getting a parking spot down there." 

The MBTA Commuter Rail X account advised users to refresh and reinstall the app.

"I've tried re-installing the app, logging out, back in (several times), a different email address, switching off WiFi, restarting my phone ... everything," one fan replied. "All I want to do is buy a f---ing train ticket!!"

"Still not working at all. Do you have an idea when it will be resolved? Not a great look considering how much you're charging," another fan wrote.

"Our team is currently working to resolve the email address verification issue and the fix is coming soon," the Commuter Rail account has been telling fans on X.

The MBTA said that the issue was resolved before 2 p.m. and more than 17,450 train tickets have been sold already.

"Customers who have attempted to purchase and have been unable to are encouraged to return to mTicket to make another attempt," the T said in a statement. "Customer service is available at 617-222-3200 for customers who still need assistance."     

The MBTA revealed the $80 round-trip ticket price on Monday, saying it would be "more affordable" than driving and parking. They cost four times as much as what the T typically charges for special event trains to Gillette Stadium for New England Patriots games, New England Revolution matches and concerts.

reported last month that tickets would be $75 or more as the T tries to make up $35 million in investments it poured into Foxboro Station ahead of the World Cup.

Train tickets are currently on sale for five of the seven matches Gillette Stadium will host this summer. 

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=50747257b890e014813016b79ece0fb2'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });