// Adds dimensions UUID, Author and Topic into GA4
Tuesday, June 23, 2026
27.2 C
Singapore

Singapore jewellery maker under investigation for failing to deliver S$19,000 worth of orders

SINGAPORE: A home-grown company that creates sentimental keepsakes using personal items such as breast milk, umbilical cords, and pet ashes is under investigation after customers reported waiting months without receiving their orders. Many have voiced their frustration, unable to reach the business despite multiple attempts.

Customers left in the dark over delayed orders

According to a recent report from The Star, Keepsake by Ryo, an online business with over 10 years of operation, has faced mounting complaints, with at least 80 unfulfilled orders totalling nearly $19,000. Customers paid in full for mementos ranging from pendants to bracelets and earrings, designed using personal items they entrusted to the company. Some have been waiting for their orders since May 2023, while others are now past the promised delivery deadline.

One customer, a marketing executive known only as Ms Angel, ordered two bracelet charms in October 2024 – one to contain her baby’s umbilical cord and hair, the other her breast milk. She had hoped to commemorate her journey into motherhood, but after months of waiting and no communication from the company, she filed a police report. “These keepsakes held deep sentimental value, and it’s been an extremely distressing experience,” she said.

A growing consumer concern

The situation has sparked concern among the affected customers and consumer advocacy groups. The Consumers Association of Singapore (Case) confirmed receiving complaints, and the police are investigating the business after at least 15 reports were filed.

Some customers, such as Ms Merchele, who placed an order for two necklaces containing her dog’s ashes, are particularly upset as they have lost access to irreplaceable items. “I can never get this back. That’s all I have of my pet dog,” she said.

A WhatsApp group of over 150 affected customers has formed, with many still waiting for updates or refunds. A few orders were delivered in February with handwritten apologies explaining delays due to the business owner’s hospitalisation. However, no further clarification was offered.

Business struggles amid mounting pressure

Keepsake by Ryo has continued to update its social media accounts, offering brief and unspecific explanations for the delays, including a December post referencing a “near-death experience” by the owner. However, customers remain dissatisfied with the lack of clear communication or updates.

On February 6, the company posted a message on its website stating that it is no longer accepting new orders due to “personal reasons” and is in the process of issuing refunds. Despite this, attempts to contact the company via phone and social media have been unsuccessful.

With investigations ongoing, many customers are left hoping for resolution and struggling to reclaim their mementos, which hold lasting sentimental value.

- Advertisement -

Hot this week

‘What is this?’ Passenger complained that buses skipped stop twice, waited almost an hour for another one

On Facebook, a commuter shared: Waited for bus 74 and my bus stop got skipped both times, had to wait close to an hour for the third bus to finally let me board. What is this? The bus doesn't have ...

‘C’mon, please don’t do this.’ Singapore Food Agency reminds diners not to eat food dropped on hawker centre tables

"C’mon, please don’t do this 😥 Once food is dropped on an unclean tabletop, the surface of the food item would have been contaminated by bacteria. And there is no such thing as the 'three-second ...

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