// Adds dimensions UUID, Author and Topic into GA4
Sunday, September 13, 2026
28.8 C
Singapore

‘It’s just fair’: Netizens defend restaurant over S$400 cancellation fee after woman cancelled Valentine’s reservation due to close relative’s death

SINGAPORE: Netizens defended a Michelin-starred restaurant after it charged a woman a S$400 cancellation fee when she called off her Valentine’s Day reservation for two, following the sudden death of a close relative.

The woman, L, reportedly called the restaurant on Feb 13 to cancel her reservation on “compassionate grounds” and requested a waiver of the cancellation fee but she was met with a “strictly enforced 72-hour policy”, which she described as a “slap on the face”.

L, also apparently left the restaurant a one-star review on Google, saying they could have filled her spot with those on the waitlist instead. However, the restaurant said there’s no such waitlist on Valentine’s Day. The restaurant explained that they had suggested L find someone to take on her reservation, but apparently, she cancelled it a few hours before the reservation. 

While commenters online said they understood L was grieving, many argued the policy was “just fair”, with others noting the restaurant already explained their terms of service.

It is really unfortunate and bad timing, but that’s not the fault of the restaurant, and they need to survive too,” one wrote, noting that two wasted spots could have gone to other diners. Another added that restaurants can’t always fill last-minute cancellations, especially on Valentine’s Day, when menus and ingredients are prepared in advance.

To secure a reservation, the restaurant requires a S$200-per-person credit card authorisation.  Bookings open 60 days before the diner’s desired date, and cancellations or changes must be made at least 72 hours ahead, or the amount is forfeited.

The restaurant told Mothership that it had implemented the policy because, like most fine-dining restaurants, they need to prepare certain ingredients in advance, and a no-show meant lost revenue. The cancellation fee simply offsets the wasted perishables prepared for the reservation.

A recent surge in last-minute cancellations also made it “extremely challenging” for the restaurant to tell which cases are genuine and which are not. Many customers cancelled just five or six hours before their reservations, citing emergencies like accidents, funerals, family deaths, sudden medical issues, or missed flights — often because they had booked multiple restaurants in advance and only decided where to go at the last minute.

In fact, the restaurant added that some customers who tried to back out but got notified of the S$200-per-person cancellation fee ended up showing up “just fine.” That’s why they stick to their policy, they said.

In L’s case, the restaurant said it reached out to her, but she wanted to move her Valentine’s reservation from Feb 14 to 15. With the 15th also fully booked, L allegedly became upset as they could not set her up at another table for two.

When the restaurant’s manager called to explain, he was reportedly met with vulgarities, leaving him “shocked and deeply affected.” L, however, denied using such language. /TISG

Read also: Singaporean hustles hard: 52-year-old hawker advertises S$500-per-hour ‘boyfriend for rent’ services for Valentine’s and CNY

Hot this week

171 Sungai Kim Kim victims win civil suit against factory and two Singaporean directors seven years after toxic waste disaster

Seven years after the Sungai Kim Kim disaster, 171 victims have secured a civil court victory against four defendants, including two Singaporean nationals. The amount of damages will be decided later.

Cik Lan drives Nur Sajat’s mum from JB at 4am for emotional reunion after 6 years apart

Singapore-born host Roslan Shah, better known as Cik Lan, helped Malaysian influencer Nur Sajat reunite with her mother in Singapore after six years apart.

Popular Categories

document.addEventListener("DOMContentLoaded", () => { const trigger = document.getElementById("ads-trigger"); if ('IntersectionObserver' in window && trigger) { const observer = new IntersectionObserver((entries, observer) => { entries.forEach(entry => { if (entry.isIntersecting) { lazyLoader(); // You should define lazyLoader() elsewhere or inline here observer.unobserve(entry.target); // Run once } }); }, { rootMargin: '800px', threshold: 0.1 }); observer.observe(trigger); } else { // Fallback setTimeout(lazyLoader, 3000); } });
// //
Enable Notifications OK No thanks