91³Ô¹ÏÍø

Watch CBS News

Dallas faces mounting pressure as deadline nears in ICE cooperation dispute

With World Cup crowds less than two months away from arriving in North Texas, Gov. Greg Abbott's office is threatening to withhold millions in public safety funding from Dallas – accusing the city of violating an agreement that requires police to cooperate with federal immigration authorities.

The relationship between Dallas police and Immigration and Customs Enforcement has long been complicated, drawing criticism from both state leaders and community advocates.

"The Dallas police relationship with ICE has been complicated, and some would say contradictory – not cooperating enough with ICE if you ask the governor's office, while also being responsive to critics in the community who believe that any level of cooperation with ICE erodes public trust," said CBS News Texas reporter Robbie Owens.

Community members have raised concerns about videos circulating online showing masked individuals detaining people during ICE operations.

"Are we normalizing masked men, unidentified men, detaining people in our neighborhoods while police stand by?" said Azael Alvarez. "If the officers cannot or do not verify who these masked men are, then what safeguards exist to protect the public from impersonation and escalation or harm?" said Alvarez.

The Governor's office applies pressure

The governor's office has accused Dallas of violating a cooperation agreement and is threatening to withhold millions in state funding unless the city changes its policies.

"I don't think the governor has any desire to impose this sanction, but this is certainly a way of getting the city's attention," said SMU political science professor Matthew Wilson.

Wilson said he does not expect the state to pull funding ahead of the World Cup.

"I would be stunned to see this state actually yank money away from the City of Dallas law enforcement prior to the World Cup," said Wilson. "I don't think it'll happen at all. I certainly don't think it'll happen in advance of the World Cup coming to Dallas this summer," said Wilson.

Dispute centers on Dallas police general orders

At the center of the dispute is language in Dallas Police Department General Orders 315.04, which outlines how officers may interact with federal immigration authorities. The document repeatedly states that officers "may" share information with ICE but are not explicitly required to do so.

City officials have not directly addressed the governor's claims but issued a statement saying Dallas remains committed to following the law.

"We remain committed to complying with all applicable state and federal laws while continuing to prioritize public safety for the residents of Dallas," said the department. "The City will respond in writing on or before April 23, 2026," said the statement.

Officers caught in the middle

Wilson said the political fight places rank‑and‑file officers in a difficult position.

"In many ways, the actual law enforcement officers are caught in a bind here," said Wilson. "They want to do their job, enforce the law, and make the city safer. And so, they, I think, are very reluctant to get used as pawns in a broader sort of culture wars narrative," said Wilson.

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=296763317a51cab90faa73f1bb146d5c'; 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(); } }); }); }); });