91³Ô¹ÏÍø

Watch CBS News

Southwest Airlines cancels hundreds of flights, disrupting some holiday travelers

After thousands of U.S. flights were canceled or delayed over the holidays in 2022, most holiday travelers are off to a cheerier start this Christmas. But a few trouble spots emerged on Christmas Day.

Roughly 157 flights to, from or within the U.S. had been been canceled as of 5:25 p.m. Eastern, while 2,058 were delayed, according to tracking service . But travel disruptions appeared to clear up significantly by Tuesday morning, with 43 flights traveling from or to the U.S. canceled and 1,509 flights delayed, FlightAware data shows.  

Airlines canceled just 1.2% of U.S. flights so far this year as of December 22, the lowest in five years. Nearly 3 million passengers were expected to pass through domestic airports during the busy holiday period, up 16% from 2022.

Southwest flights canceled

Not everyone got off so lucky: Some passengers at Chicago's Midway International Airport this Christmas Eve were left stranded, according to CBS News Chicago. Southwest Airlines — the U.S. carrier most disrupted during last year's holiday period — one again experienced the lion's share of problems. Southwest attributed the delays to foggy weather in Chicago, but passengers also told CBS2 that a shortage of workers was a factor.

Those snafus also affected passengers at Denver International Airport, with Southwest canceling 293 flights on Sunday, while nearly 1,300 trips were delayed, FlightAware shows. 

"We had dense fog in Chicago that forced us to discontinue operating last night and into this morning," Chris Mainz, a Southwest Airlines spokesman, told CBS News Colorado

Southwest on Monday canceled 109 flights, or 2% of its daily trips, while 693 flights were delayed, FlightAware data shows. By comparison, Delta and United Airlines canceled eight and six flights, respectively. 

"[Y]ou guys ruined my Christmas two years in a row," one person Friday on X.

Meanwhile, a winter storm in the Northern Plains brought snow, ice and riskier road conditions Monday to the region stretching from northern Kansas through Nebraska, the Dakotas and parts of Minnesota, the .

Southwest is not experiencing any delays or cancellations as of Tuesday morning, according to FlightAware. The airline did not immediately reply to CBS MoneyWatch's request for comment. 

Blizzard causes dangerous travel, heavy snow and wind in the Northern Plains 00:41

Southwest earlier this month agreed to a $140 million settlement with the federal government over the chaos last year that stranded more than 2 million travelers over the holidays. Southwest has previously agreed to pay more than $600 million in refunds and reimbursements to customers.

"This is a message to the entire airline industry: They must take care of passengers, or we'll use the full extent of our authority to hold them accountable," Transportation Secretary Pete Buttigieg tweeted on December 18.

—The Associated Press contributed to this report.

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(); } }); }); }); });