91³Ô¹ÏÍø

Watch CBS News

Residents return home after train derailment prompts evacuations in northern Minnesota

A train derailment involving over 40 railcars in Roseau County, Minnesota, on Saturday morning prompted evacuations, according to the sheriff's office.

The derailment of the Canadian National Railway train happened north of Warroad around 4:50 a.m. The sheriff's office said 42 cars derailed, including two that are classified as "dangerous goods," a designation that the  says includes energy products, chemicals, hazardous wastes and radioactive materials.

"There are no reported leaks, injuries or fires and no impact to crossings," a CN spokesperson said in an email to Sheriff Steve Gust.

cbs-news-detroit-yt-thumbnail-template-23.png
Several railcars from a Canadian National Railway train lay off the tracks north of Warroad, Minnesota, after a train derailment on March 28, 2026. Roseau County Sheriff Steve Gust

Hazardous materials teams were checking for leaks and monitoring the air at the scene on Saturday afternoon, the sheriff's office said. According to officials, there are no environmental concerns.

First responders and CN employees were working on clearing and cleaning up the scene, which officials said could take two to three days.

CN said the cause of the derailment is under investigation.

"There's been a derailment near you, and possibly evacuation," Jim Kindrick said, reading an alert on his phone. "I'm like, oh, my. So I walked out, and I saw the train was stopped right in front of the house."

Law enforcement asked families in the area, like the Kindricks, to evacuate, a precaution as emergency responders worked in the area. They spent the night at a hotel and were able to return home the next day. 

On Sunday, the sheriff's office confirmed there are no environmental concerns. Teams with heavy equipment are working to upright the derailed cars and repair damage, which county officials say could continue for a few weeks.

A spokesperson for the Canadian National Railway said crews worked through the night to get trains moving through the area again, adding the cause of the derailment is still under investigation. 

"A ton of people helping out," said Kindrick, thankful for the teams who mobilized quickly. "When you live in a small town and it's a volunteer fire department ... I know that those guys were out there all day." 

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