// Adds dimensions UUID, Author and Topic into GA4
Friday, July 10, 2026
31.1 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

Men in Singapore share why they’re opting to be childfree: ‘I get to save so much money’

SINGAPORE: Men in Singapore are sharing why they’ve chosen to stay childfree, saying the financial burden, uncertain future and loss of freedom simply aren’t worth it. The conversation started af...

WP MPs caution against Singapore megasized transport projects, urge for digital transport infrastructure

Singapore could be over-reliant on mega transport projects such as Tuas Port and Changi Airport Terminal 5, Workers' Party (WP) Members of Parliament said during a six-hour debate in parliament on ...

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