91³Ô¹ÏÍø

Watch CBS News

Over 50 homeless people living at Miami's Camillus House suddenly relocated to Miami Beach hostel, city officials say

MIAMI — More than 50 people experiencing homelessness were taken by bus from Camillus House in Miami and relocated to a hostel in Miami Beach on Friday night in a move that is raising questions.

The 53 people told CBS News Miami that they were told to get up and grab their stuff because they were leaving the center. The next thing they knew, a bus brought them to the Bikini Hostel in Miami Beach.

The City of Miami said the move was a result of negotiations between the city and Camillus House regarding the pricing of beds. A city spokesperson told CBS News Miami that the center wanted to double the price.

After not meeting the deadline, the City of Miami said they partnered with the Homeless Trust to find adequate housing, which led them to be transported to the Bikini Hostel.

But, Miami Beach city leaders feel differently about the situation, claiming it was a political move after the removal of a homeless tax ballot measure.

"This is almost the weaponization of human beings and I think that's disgusting," said Miami Beach City Commissioner Kristen Rosen-Gonzalez. "I don't know who's going to be ultimately accountable for this but we feel — well, I feel — this is retaliation because we won the court case yesterday."

"How does anyone justify that a population that is at risk in need of services can be pulled out their support service and dropped off at a transit hostile for visitors with absolutely no resources available to them?" added Miami Beach Vice Mayor Alex Fernandez. "And, it's sad."

However, the City of Miami said it was not a political move.

In a statement provided to CBS News Miami, Camillus House CEO Eddie Gloria said the center has been in communication with the City of Miami since August regarding "a rate increase for emergency shelter operations required to cover the costs of providing" services as well as pending payments for services provided to the city between 2023 and 2024.

Gloria stated Camillus House's most recent arrangement with the City of Miami expired on Sept. 30, and at the time, the city requested a one-month extension through the end of October to finalize negotiations on the requested rate increase.

"Since then, Camillus submitted a proposal to the City and received no commitment from the City by the agreed-upon deadline," he said. "Upon advising the City that Camillus would no longer be able to sustain the shelter operations without payment and an agreement, the City made arrangements to relocate their clients to another site."

Gloria continued, saying that Camillus House was not advised nor participated in the City of Miami's relocation plan that took place on Friday afternoon.

"In fact, we were quite surprised and told nothing about their destination," he said. "Our internal plan was to move the City of Miami clients to new locations in a careful, compassionate way over the coming days and weeks. The City made its decision to move the clients Friday afternoon and we had no part in it."

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