91³Ô¹ÏÍø

Watch CBS News

Texas state trooper fired over his response to Uvalde shooting

The Texas Department of Public Safety has fired a trooper who responded to the mass shooting at Robb Elementary School in Uvalde, which claimed the lives of 19 students and two teachers.

The fired trooper was identified as Sgt. Juan Maldonado, CBS News learned Friday. Maldonado is the third officer to be fired over the botched law enforcement response to the shooting.

According to the , police body camera footage showed that Maldonado was on scene at the school within four minutes of the shooting, but did not enter the school. The Tribune reports that an Uvalde Police Department SWAT commander who had suffered a graze wound from a bullet fired by the gunman, came out of a school door, and told Maldonado, "Dude, we got to get in there."

Maldonado responded, "DPS is sending people," the Tribune reports.

DPS had reported last month that at least five of its troopers were under investigation for their response to the shooting.

This all comes after the entire police department for the Uvalde Consolidated Independent School District (UCISD) was suspended earlier this month as it faces multiple investigations.

That suspension also came just one day after the firing of Uvalde school police officer Crimson Elizondo, a former DPS trooper who was also on scene at the Uvalde shooting.

Elizondo had responded to the shooting at Robb Elementary as a Texas state trooper. Elizondo resigned from DPS after the attack, but was then subsequently hired by the Uvalde school district as a police officer.

According to CNN, Elizondo could be heard in body camera footage from the day of the shooting telling other officers at the scene: "If my son had been in there, I would not have been outside. I promise you that."

Pete Arredondo, the Uvalde school district police chief at the time of the shooting — who was in charge of the law enforcement response to the attack — was fired by the school board in August.

According to an extensive report into the shooting released in July by a special committee convened by Texas lawmakers, a total of 376 law enforcement officers responded to the May 24 shooting at Robb Elementary. However, while the gunman was barricaded inside a classroom, surveillance video showed a group of those officers waiting in a hallway.

According to the report, from the time the first officers arrived on the scene, it took them 73 minutes to breach the classroom, confront and fatally shoot the suspect. 

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