Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

Proposed by

Magdalena Dlugolecka

Closing date

Status

IN REVIEW

Related Documents

/wiki/spaces/IN/pages/4152033328

Table of contents

Summary of changes

Introducing:

  • an ERROR EVENT with the following properties:

  • and standardized ERROR KEYS passed on within the ERROR CODE property

  • create and maintain documentation on ERROR CODES providing a description mapping, explaining what the meaning of the error and what it is cause by.

in order to provide our stakeholders with a deeper understanding of corresponding root causes as well as actionable steps to mitigate them.

Context

The way our platform issues are currently surfaced in Amplitude is by capturing error modal events. This solution itself is problematic by its nature as we tend to focus only on the modal appearance, lacking any insight into the actual root cause of the issue.

Those modals constitute a front-end representation of both: frontend and backend errors, that may be triggered by a variety of causes: misconfigurations, RBI’s implementation, partners' integration or user caused errors.

Therefore, unfortunately today there’s not a clear path to understand the origin of the fluctuations in error modals, which are currently an indication of issues and friction points that our users experience on our platform.

Problem Statement

Today there’s not an easy way to identify root cases of the error modal deviations visible in Amplitude, which are monitored by our Franchisees and internal stakeholders.

As an example we may take the Cart Error and Payment Error Modals investigated by the Fulfillment Team. The team gratuitously added useful insights into the Root Cause column per each modal type.

Please note that this level of granularity is not meant to be exhaustive but will offer a more descriptive level understanding of where the problem originates from. Today, this information is not accessible in Amplitude.

Example:

Cart Errors Modal

Title

Messages

Root Causes

Cart error: order could not be completed

Restaurant is Unavailable

Your order could not be completed

When a non-delivery order pricing fails (i.e PRICE_ERROR) or Cart item(s) become unavailable
PRICING_ERROR

Occurrences:* 1,640

We apologize for any inconvenience, but this restaurant had to be abruptly closed due to technical issues and is currently unavailable.

When an order status transtions to INSERT_ERROR or CATERING_ERROR at order confirmation i.e after payment.
INSERT_ERROR
Occurrences:* 131

Please try again later + other server pricing error messages

When the message body translation is not found. (Both delivery & non delivery)

UNKNOWN_CART_ERROR

Occurrences:* 5

Oops. Looks like something went wrong.

We won’t be able to complete this transaction. Check with your card provider for details.

When an order status transtions to PAYMENT_ERROR at order confirmation i.e after payment.
PAYMENT_ERROR
Occurrences:* 1,051

Sorry, your location can’t accept deliveries at this time.

We apologize for any inconvenience, but this restaurant had to be abruptly closed due to technical issues and is currently unavailable.

When a delivery order pricing fails (i.e PRICE_ERROR, QUOTE_ERROR, QUOTE_UNAVAILABLE) or Cart item(s) become unavailable

DELIVERY_ERROR
Occurrences:* 105

Source:

https://rbictg.atlassian.net/wiki/spaces/TRX/pages/4423811195/Understanding+Cart+and+Payment+Errors#Errors-modal-table

Intent

Therefore, we’d like to propose a protocol to pass on the first layer of granularity (as in the example above) to mParticle (ultimately for the use in Amplitude) to serve as an immediate insight into the causes of the deviations. Proposed error codes are not supposed to be exhaustive; a deeper level of granularity explaining the exact root cause of the issue should be surfaced internally via appropriate DataDog dashboards. Hence, the objective of this document is to receive an approval for creating error events enriched by error code property based on standardized alphanumeric and pass them to mParticle in order to be surfaced and used in Amplitude.

Proposal

General Process:

  1. Introduce a new ERROR EVENT with the following properties:

  2. Create a mapping of Errors Codes and pass it on within the Error Code property of the ERROR EVENT

    1. Error codes must have alpha-numerical format for scalability and security reasons.

    2. They must follow a pre-determined schema specific to an area within a platform such as Loyalty, Checkout etc. Examples:

      • ”CHECKOUT.PRICE_ERROR”

      • “CO.PRICE_ERROR”

      • CO.123

      • 61230 (“checkout errors are in format 6xxxx”)

    3. Error keys will be passed in one property of ERROR CODE

      1. it had been agreed that we may group by a domain using a the following function available in Amplitude “containing:XXX”

  3. Create a documentation providing an explanation of each of the error keys, potential actionable steps and location of DD Dashboard for further granularity. The DD dashboards should remain for the internal use only and not disclosed to out clients.

This step does not include DD dashboard adjustments or creation; it’ll be addressed as a separate step in the process.

Example:

Path

Error code

Response Title

Response Description

Root Cause

Actionable steps

Further Granularity Dashboard (DD)

/cart

CO.123

Please update your account phone number to continue

We are unable to confirm your phone number. Please confirm your phone number is correct or try a different one.

When delivery quote failed while selecting a delivery address with graphql error message ‘invalid phone number

User should verify their phone number

<placeholder>

Initial Phase Proposal:

As a Proof of Concept, we propose to start with cart and payment error modals.

As a premise we need to make sure we don't unnecessarily distinguish/create multiple errors surfacing the same problem only because we have multiple modal types triggered by that same issue.

Alternatives considered

Labeled Error code Mapping

The use of labeled error codes for example PRICE_ERROR was rejected due to security and inhibited scalability cross-platform.

Out of scope:

  • Improvement of the user messaging or inclusion of the error keys (potential separate initiative)

Next Steps

  1. Propose an actual error keys table focused on cart & payment in a form of an RFC.

  2. If X RFC is accepted test within cart & payments domain

  3. If successful apply the process across the entire platform

  4. Process on documentation maintenance should be further discussed and agreed on

  5. Provide adequate granularity in the DD dashboard to assure a sufficient level of pragmatism. For example an internal stakeholder should be able to tell whether the issue had been caused by a partner, misconfiguration or an internal technical issue to be able to report the matter to an appropriate party

  6. To provide a holistic picture; surface errors occurring on the FE that are currently not tracked in DD

Timing

RFC should be implemented as an initiative in Q3, 2024.

Next steps

If this RFC becomes a “standard”, please make sure to document it under: /wiki/spaces/IN/pages/3911451746

  • No labels

0 Comments

You are not logged in. Any changes you make will be marked as anonymous. You may want to Log In if you already have an account.