If Users Need to Call the Store, the App Has Failed
A routine mobile order revealed a cascade of UX failures — from missing dietary labels to a defensive in-store response. This is what it exposed about transparency, trust, and inclusive design.
It began on a weekend afternoon. I picked up my phone to order food from the Tim Hortons app like I typically do. I ordered Potato Wedges, two varieties of doughnuts (because it was National Doughnut Day), and was wondering if I should order a wrap. After scanning the menu I selected the Chipotle Craveable Wrap. I examined the menu items more closely to ensure I was ordering a vegetarian wrap with no meat, fish or eggs. While I noticed 'bacon' listed under 'Protein'—marked as 0—I assumed it was safe to proceed; however, I added tomato and lettuce to my wrap. With a single tap I paid for my order to be picked up at my preferred Tim Hortons location near my home, and I walked to the store to pick it up.
The store wasn’t busy and I waited to pick my order at the Mobile Order Pick Up counter. I saw a staff member making my order, and she placed the brown bag on the counter. I felt compelled to ask whether the wrap was vegetarian. She replied, ‘No,’ and I immediately felt embarrassed. The staff informed me that chicken is a default ingredient with this wrap. I had, in fact, reviewed the ingredients — yet a critical detail had escaped my attention. I asked the staff to replace my order with a vegetarian option. Since this was my first time ordering this item, I was unaware of this default ingredient, and the app did not specify whether animal products were included. Upon requesting a vegetarian alternative, the staff member seemed uncertain and consulted a colleague.
Soon after, what appeared to be the shift manager of this location approached me, asked me to come near one of the cash counters, and insisted that this confusion was my responsibility, suggesting I should have called the store to confirm before ordering. I explained that the purpose of ordering via the app was to avoid the need for additional calls. She brushed my feedback aside and started typing the vegetarian wrap order on the machine, suggesting that I would have to pay extra to rectify the error.
Mobile apps must reduce friction between the customer, the brand, and the store, and make the ordering experience seamless. For example, the Amazon mobile app makes even customer support unobtrusive and effortless. On the contrary, the need to speak to a human signals a failure point in that chain of interactions — one that warrants resolution.
The shift manager was unwilling to engage with my reasoning and kept defending herself. I wanted to get my order replaced and walk out. My attempt to reframe the situation by saying that it is not a “mistake but a misunderstanding” worked because the manager reluctantly remade the order but without the hash browns. I left the store dissatisfied, and wrote to Tim Hortons’ digital support team detailing my experience. They wrote back with an apology and assured me that the complaint had been forwarded to the management and the owner of the restaurant in question “…who will follow up internally to ensure that your concerns are addressed at the restaurant level.” My assumption that the item contained no meat had carried a significant cost in time and goodwill. What appeared to be a simple ordering mistake revealed a deeper usability issue — one that affects trust, transparency, and the overall customer experience.
The User’s Mental Model
A mental model is a set of assumptions and beliefs that a user brings when they interact with a system, such as an app or a website. Users form their assumptions based on their previous experience with a similar app or website. Every individual carries their own assumptions and ideas based on their prior understanding of how such systems work. While individual, mental models often cluster around shared prior experiences. For instance, in the case of the Tim Hortons app, I did not come across the mention of ‘meat’ or ‘non-vegetarian’ during my exploration of the menu item. I had never ordered a vegetarian wrap and combined with my previous experience with the brand, I assumed the item would meet my dietary expectations. I was led to believe, based on my mental model, that the wrap was vegetarian. A number of visual cues within the interface compounded this belief.
What You See You Don’t Get
I saw the mention of “Bacon = 0” and assumed that it was the only non-vegetarian option, but it was not included in my order. There was no obvious mention or indication that ‘chicken’ was the standard feature of the wrap — the shift manager even showed me the picture of the wrap on the mobile app, implying that the image alone should have been sufficient to identify the presence of chicken. There should have been a visible meat warning or a vegetarian badge to allow users to make an informed dietary choice.
Without any visible signposts, I assumed that the item was vegetarian. I trusted the brand to be transparent with their menu items and felt that it would distinctly identify animal-derived ingredients in the food item for me, which it did not, and now it has significantly eroded trust in the brand experience permanently. This was not the only point of failure. The customization screen to add or remove items for the wrap did not reflect the actual contents — it never told me that the chicken was the default ingredient of the item and the rest were add-ons. Instead, I could only see the add-ons, with ‘bacon’ set to 0, which created confusion.
Where the Experience Broke Down
Food companies frequently prioritize branding over clarity, often at the expense of the consumer. However, there are several large food corporations using direct terminology to identify non-vegetarian ingredients. This helps consumers with dietary restrictions make informed dietary choices with confidence. This expectation is less applicable to brands such as KFC or Chick-fil-A, whose menus are widely recognised to be almost exclusively meat-based, making animal content an assumed default rather than a detail requiring disclosure.
The following examples illustrate food brands where the animal-derived ingredient is a default component of the item, meaning that the naming convention itself should resolve the dietary disclosure criteria:
McDonald’s Filet-O-Fish (fish)
McDonald’s Chicken Nuggets (chicken)
Subway Tuna Sandwich (tuna)
Domino’s Pepperoni Pizza (pepperoni = pork/beef mixture)
Pizza Hut Meat Lovers / Pepperoni Pizza (pepperoni)
Jack in the Box Bacon Cheeseburger and Chicken Sandwich (bacon = salt cured pork, and chicken)
Tim Hortons does incorporate animal-derived terminology in several of its menu items, accompanied by descriptive labelling that clarifies the ingredient, but did not apply the same standard to the Chipotle Craveable Wrap. In prioritizing brand aesthetics, the naming convention appears to have deprioritized dietary clarity, opting instead for stylized terminology that generates confusion rather than clarity. The ‘Chipotle Craveable Wrap’ exemplifies this failure to disclose that it includes ‘chicken’ as a standard ingredient.
Key Usability Principles Violated
Visibility of System Information
Any information presented on the app must be reinforced by visual or textual aids. Users must immediately understand what they are about to order and whether the food item meets their dietary needs. Critical dietary information for food items such as dairy-free, gluten-free, nut-free, lactose-free, peanut-free, shellfish-free, vegan, vegetarian, kosher, and halal, among others, must have clear labelling on the menu. The app should have clearly mentioned the appropriate label and Tim Hortons should design those labels to be used on the menu items to eliminate ambiguity.
Recognition vs Recall
In order to help users recall their choices, the app should employ colour codes to distinguish between various food items, especially vegetarian and non-vegetarian. The simultaneous use of icons, colours, and textual content promotes intentional redundancy — reinforcing information across multiple formats and helping users make better-informed choices. Reducing the occurrence of errors and minimizing cognitive load are essential to enhancing the overall user experience.
Match Between System and Real-World Expectations
Returning customers like me arrive with established mental models when ordering food on the app. For instance, customers would pick the items that they have always preferred and the app could infer their dietary preferences. If the customer decides to choose an item that is different from their regular choices, just as a knowledgeable staff member might flag an unfamiliar choice, the app should proactively alert users to potential dietary conflicts. During the checkout phase, the app should clearly disclose non-vegetarian or otherwise diet-restricted items. Designers should identify the mental model of the least experienced or least informed user and build inclusively upward from that baseline.
This is not just about vegetarian and non-vegetarian distinctions alone but extends to those navigating religious dietary requirements, food allergies, and unfamiliar menus as first-time consumers. It is, at its core, an issue of inclusivity and accessibility — one that demands a more thoughtful and universally considerate approach to interface design.
Bigger Lesson for Designers and Tim Hortons
Great UX emerges from reducing friction and confusion, not merely from visual polish or feature additions. Designers should learn to think beyond conventional UX rules, and approach UX as a systemic challenge rather than a cosmetic one. UX design sometimes focuses narrowly on the interface, overlooking the broader system the user inhabits, so when the system breaks, the cost to the users in terms of money and emotional goodwill escalates. This article's central incident illustrates precisely this failure. The app did not warn me and store-level staff compounded the issue by defending the app's omission rather than acknowledging the shortcoming. Instead the store-level staff could have acknowledged the shortcoming and directed me to the digital support team and provided the relevant contact information. The app did not disclose vital information and the store-level staff behaved unprofessionally, resulting in a compounded failure of both the digital and in-store experience. Usability problems often lurk in the most inconspicuous corners of an experience and are harder to rectify without sustained cycles of user feedback and iterative testing. The expectation behind it is straightforward: that the systems people rely on should respect the people who use them.
Key Takeaways
- A missing default ingredient label on the Tim Hortons app led to an unintended non-vegetarian order — a failure of transparency, not user error
- The app violated basic usability principles: it offered no dietary labels, no visible default ingredients, and no checkout-stage disclosure
- Store staff compounded the issue by treating the gap in the app's design as the customer's responsibility
- Dietary clarity is an accessibility issue — users navigating allergies, religious requirements, or unfamiliar menus deserve the same transparency as any other customer
- Great UX reduces friction at the system level; visual polish without informational integrity is incomplete design