91³Ô¹ÏÍø

Watch CBS News

Tenants at South Loop luxury high-rise plagued with unfixed problems vow to fight 5-day eviction threats

Tenants at a South Loop luxury high-rise that has been plagued with problems like broken elevators are vowing to fight five-day eviction notices.

Since late 2025, there have been 18 complaints to 311 about Astoria Tower in the South Loop, and tenants say things have just gotten worse.

Complaints have been lodged about everything from graffiti removal to plumbing violations, and four of them were filed this month.

"I've only been in this apartment for six months and it's been pretty bad," said Tyler Weddington. She called 311 for her leaking ceiling. "I have drywall, like, falling. It's hit me in the head and I found it in my food."

This year, the luxury high-rise failed three Department of Buildings inspections. On Jan. 29 and Feb. 2, inspectors noted violations for inadequate heat during a cold snap that dropped temperatures into the teens and 20s, with brutal wind chills.

Inspectors recorded the lobby temperature was in the 40s, and some units struggled to get above 60. The problem was that the boiler wasn't working properly. Tenants had to use space heaters to stay warm, another violation.

"Our thermostat was around 61 degrees," said tenant Brishti Basu, who said last month her unit had no heat at all. "It was pretty cold, to the point where even three blankets wasn't really covering us."

Three days ago, on March 10, inspectors found a leaking ceiling and buckling, bubbling floors caused by water damage in a 12th-floor unit. That inspection also found the door to the alley and trash room was still broken.

In a statement, the Department of Buildings wrote that its teams "are continuing to monitor the situation at Astoria Tower closely." and "...will document any additional violations."

More than 100 residents formed the Astoria Tower Tenants Association because of the living conditions. Under the guidance of a tenants' rights organization, some have withheld a portion of their rent.

"This last year coming home feels like a nightmare," Basu said. "Will the elevators break? Will the heat be on? Will I have access to hot water?"

Now, some have received five-day notices saying back rent must be paid promptly or tenants may face a lawsuit and possible eviction.

A community organizer with Metroopolitan Tenants Organization said the landlord is illegally retaliating against tenants.

"We just want to work with management," said tenant Zofia Yellin. "We want to resolve these issues. We don't want to be abating our rent, but radio silence and repeated noncompliance puts all of the tenants in a really unfortunate situation we don't want to be in."

Llyod Kolesky's lease ends at the end of March and he's already moved to Evanston.

"I'm definitely looking forward to having them in my rearview mirror," he said. "The ownership has shown time and again that they really don't care about the tenants."

The Chicago Fire Department said there are still unresolved fire suppression issues at the building as well.

CBS News Chicago reached out to Astoria Tower management for comment for our previous story and this one, and are still waiting to hear back. 

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