So there you are, chatting away in Try out and how do you know there were warnings or error messages? The Try out panel makes it easy: when you see a yellow warning triangle, mark it with the mouse, then open the Response Info panel to find more information about what went wrong, as well as the location to fix. If the error occurred within a flow, you will see a link to the flow and a link to the node or transition (vertex) within the flow at the point where the error occurred. If you click the vertex link the corresponding flow will automatically open in edit mode with the associated location pre-selected. The procedure is basically the same for each type of error. Find where it happened, go there, and fix it. The entire process could look something like this, where we've introduced an error into the 'User wants to order a coffee flow': a typo in a variable name in the order summary:
A syntax error in a language condition can occur at any location where language conditions are used: in syntax triggers, transitions, listeners, or language objects. These types of errors you can see immediately in Try out, even before you start testing. The Try out engine notices and flags all condition inconsistencies when loading the solution. In the Response Info panel via mouseover you can see a preview of the condition, and you can click into the exact location where the error can be fixed. The error messages begin with the text Condition syntax error followed by a brief description of the problem. Usually that is enough to know what you have to fix and where. Also, while you are editing a language condition, the condition editor will highlight syntax errors in red.
Examples of condition syntax errors you might see:
Condition syntax error: Condition terminated incorrectly
Condition syntax error: Missing opening parenthesis
Condition syntax error: Operator at invalid location
If you saw a message like this in Response Info:
You would click into the trigger and find this condition, with the superfluous parenthesis highlighted by the condition editor. All you have to do is correct the condition and save:
Sometimes a simple Groovy syntax error in a script, a script node or even embedded in a language condition can disrupt your session. What you see in Try out is the same as what would happen in the live version, if left uncorrected. As soon as Teneo receives a script error, it interrupts the script it was running. Try to troubleshoot the cause by carefully reading the error message displayed in the Response Info panel. Perhaps a global variable definition was forgotten, or a variable name was misspelled? In the end these error messages look worse than they actually are. Remember, you can also add debug code e.g. a println statement to show information in the Engine panel during script processing. Note also, if an infinite loop is encountered, Teneo interrupts the script in question, which leads to an undefined state.
If you're getting a script error, the description first tells the location at which it occurred, including the line number (if applicable), followed by a description of what went wrong. Usually you'll see a text like Script syntax error or Bad script expression. The solution is to go to the location and find out what went wrong. If the error occurred within a flow, you can click into the location straightaway. (The video above showed a script error occurring.)
Once Teneo triggers a flow, and at each turn of the conversation while in the flow, its job is to traverse the nodes and transitions until an answer could be constructed. As a rule, you can connect any kinds of nodes in your flow design, but there must always be a path that successfully ends at an output node. If the flow design prevents this from happening, Teneo will show a Dropping stuck flow message, then drop the flow and continue checking the last user input against the remaining available triggers until the next flow is found, often the safety net. The effect while testing is that a completely different response is given than expected. Fortunately, a stuck flow is fairly easy to spot in Try out::
Glancing at the icons under the response, you'll see a stuck flow symbol, as well as a more detailed message in response info.
In this example we enter the flow at a junction, but the outgoing transitions are set to 'Gets input before continuing'. This should only be done after an output was given where we want to wait for a response. You may recognize this design in the flow we built in Branch at the beginning of a flow. In this version of the flow we've introduced an error by setting the transitions to Gets input before continuing:
The Try out engine will tell you right away if it can't find a particular language object that you refer to in a language condition. If you see a large number of missing language object warnings when you start Try out, it could mean that your solution is missing an important language resource, such as the TLR. This is easy to fix. Follow the instructions given here to be sure you have correctly included the TLR as a solution resource. If this is about another lexical resource dependency, be sure that you have correctly linked that as well.
Otherwise, this message usually means that a particular language object is missing, disabled, or maybe misspelled somewhere. Make sure the required language object exists and is spelled correctly in all the references.
Was this page helpful?