Errors
Errors occur when your Action can’t move forward because it 1) didn’t understand the user’s input, or 2) didn’t get input. Since this can happen at any time, your Action needs to have unique error handling for each turn in the conversation to help the user get back on track.
Guidelines
How your Action responds to errors can make or break the user experience. When users are unable to complete their tasks, they’re unlikely to talk to your Action in the future. One poorly handled error can outweigh dozens of successful interactions. But with good error handling, the user won’t even know an error occurred.
Keep in mind the following considerations:
Cooperation
Transparency
Context-specific
There are 3 types of errors:
Errors in human-to-human conversations | Errors in human-to-computer conversations | ||
---|---|---|---|
Imagine you’re talking to someone and... |
...they don’t respond to you. |
No Input |
The Action hasn’t heard the user’s response, or the user hasn’t responded by the time the microphone closes. |
...they say something that confuses you. |
No Match |
The Action can't understand or interpret the user's response in context. |
|
...they ask you to do something you can’t do. |
System error |
The systems that the Action depends on for information can’t complete the task. |
No Match
Why No Matches happen
A No Match error occurs when the Action can't understand or interpret the user's response in context.
Here are a few possible causes of No Match errors.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-whynomatch1.png?authuser=9)
The user doesn’t respond fully or clearly, possibly hesitating, changing their mind or not completing their sentence.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-whynomatch2.png?authuser=9)
The user might not be speaking to the Action.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-whynomatch3.png?authuser=9)
The user says something relevant to the question, task, or domain, but the Action doesn’t understand it. This might occur when either the user’s response isn’t included in the recognition grammar, or it’s given in a noisy environment.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-whynomatch4.png?authuser=9)
The user wants to switch topics entirely.
1st level No Match (rapid reprompt)
Quickly and concisely collect the information again or in another way. The user was trying to engage, so they probably just need another chance. Do not repeat the original prompt verbatim since it will sound robotic.
Rapid reprompts typically combine an apology with a condensed repetition of the original question.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-1stlevelnomatch1-do.png?authuser=9)
Do.
Reiterate the question quickly and succinctly.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-1stlevelnomatch1-dont.png?authuser=9)
Don't.
Don't dwell on or over-explain the error.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-1stlevelnomatch3-do.png?authuser=9)
Do.
Including additional information can help users respond by narrowing down their request.
2nd level No Match (escalating detail)
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-2ndlevelnomatch1-do.png?authuser=9)
Do.
Try to be helpful, providing your best guess at relevant information that can be useful.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-2ndlevelnomatch1-dont.png?authuser=9)
Don't.
Don’t repeat the same thing over and over. The user is stuck and needs additional guidance.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-2ndlevelnomatch2-do.png?authuser=9)
Do.
Talk to the user like you’re having a human-to-human conversation.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-2ndlevelnomatch2-dont.png?authuser=9)
Don't.
Make sure that you’re not being condescending!
Max No Match
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-maxnomatch1-do.png?authuser=9)
Do.
End the conversation gracefully when there’s nothing you can do to help the user.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-maxnomatch1-dont.png?authuser=9)
Don't.
Vague promises, particularly when you don’t know what the user has asked for, are unhelpful and erode user confidence.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-maxnomatch2-do.png?authuser=9)
Do.
Next steps can be better than nothing, even when the user has to do it themselves.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-maxnomatch2-dont.png?authuser=9)
Don't.
Don’t recommend trying again in a few minutes or on another device if it’s unlikely to fix the issue.
No Input
Why No Inputs happen
The Action hasn’t detected a response from the user, because the user:
- hasn’t said anything while the microphone was open
- hasn't spoken loud enough
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-whynoinputs1.png?authuser=9)
The user left the room, is distracted, or maybe changed their mind.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-whynoinputs2.png?authuser=9)
There’s no speech, just noise.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-whynoinputs3.png?authuser=9)
The user is thinking or unsure about how to respond.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-whynoinputs4.png?authuser=9)
The user spoke before the mic opened.
1st level No Input
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-1stlevelnoinput1-do.png?authuser=9)
Do.
Repeat the question (by rephrasing) in a similar and concise way.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-1stlevelnoinput1-dont.png?authuser=9)
Don't.
Don’t say “I didn’t hear you”, because it’s likely the user hasn’t said anything. And don’t assume the user heard the first question or remembers the options that were offered.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-1stlevelnoinput2-do.png?authuser=9)
Do.
When there’s a good chance the user might be stumped, see if you can provide more support.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-1stlevelnoinput2.1-do.png?authuser=9)
Do.
Users might not respond to a wide-focus question because they don’t know what they can say. So give them some options.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-1stlevelnoinput3-do.png?authuser=9)
Do.
Continue to the next step if the information isn’t required. However, make sure to not penalize the user, e.g., by skipping over something perceived as important or interesting without an opportunity to provide it later.
2nd level No Input
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-2ndlevelnoinput-do.png?authuser=9)
Do.
Restate the question to give the user one more chance to respond.
Max No Input
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-maxnoinput-do.png?authuser=9)
Do.
End the conversation gracefully when the user stops engaging.
Error counters
Users should experience no more than 3 No Input or No Match errors in a row, after which your Action should play the appropriate max error prompt and exit the conversation.
Good error handling is context-specific. Even though you’re asking for the same information, the conversational context is different on the second or third attempt. In order to play the right error prompt for the context, you’ll need to keep track of how many, and what type of, errors have occurred.
Follow this flowchart to determine which error prompt to play. Note that every time you open the mic, there’s the potential for a No Input or No Match error to occur.
![](https://developers.google.cn/static/assistant/conversation-design/images/noinputnomatch.png?authuser=9)
Flow chart to determine which error prompt to play.
System errors
- System failure (the system is unresponsive or returns a general error—e.g., the light will not turn on, the database is unavailable)
- Invalid request (e.g. the user tried to make an appointment in the past)
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-systemerrors1-do.png?authuser=9)
Do.
Try to be transparent without being overly technical. See if there are any next steps you might offer.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-systemerrors2-do.png?authuser=9)
Do.
Try to provide feedback on how the request was invalid and educate the user where possible.