Share This Post:

Debug IVR Applications

The application plays wav file “Sorry the system cannot continue due to error, please try again”. and the call hangs up. I have attached the log.

The call flow is as follows:

Incoming Call
-> Main Menu (present speech command)
-> English
-> Spanish
… -> unknown

RESPONSE: TTP/1.1 200 OK
RECOGNIZE: Set-Grammar: action=set; type=grammar; name=; cfg=english | spanish

RESPONSE: TTP/1.1 200 nomatch
FLUSH
RESPONSE: TTP/1.1 200 OK
Context: http://localhost:8155/OutIVRstudio/MainMenu.vxml
URL: http://localhost:8155/ocall/callconfirmed
Exec form item: __internalVar__1
Context: http://localhost:8155/OutIVRstudio/unknown.vxml
URL: http://localhost:8155/lvxresolver.jsp?url=%2FOutIVRstudio%2F..%2Flogs%2Fline0.log&nofileok=1
Context: http://localhost:8155/OutIVRstudio/unknown.vxml
URL: http://localhost:8155/lvxresolver.jsp?url=%2Faudio%2FMale%2Fsys_err_try_later.wav
PLAY LOCAL: C:/Program Files/Voicent/Gateway/webapps/ROOT/audio/Male/sys_err_try_later.wav
RESPONSE: TTP/1.1 200 OK
vx.parser.VxException: __VG__LAST_RESULT__ not defined
at vx.interp.VxEvaluator.evalVarValue(VxEvaluator.java:386)
at vx.interp.VxEvaluator.evalValue(VxEvaluator.java:176)
at vx.interp.VxEvaluator.evaluateValue(VxEvaluator.java:27)
at vx.interp.VxInterpreter.doLogExpr(VxInterpreter.java:1794)
at vx.interp.VxInterpreter.doLog(VxInterpreter.java:1775)
at vx.interp.VxInterpreter.doExecutableContent(VxInterpreter.java:1350)
at vx.interp.VxInterpreter.doAllExecutableContent(VxInterpreter.java:1302)
at vx.interp.VxInterpreter.doBlock(VxInterpreter.java:1228)
at vx.interp.VxInterpreter.executeFormItem(VxInterpreter.java:342)
at vx.interp.VxInterpreter.interpret(VxInterpreter.java:121)
at vx.interp.VxInterpreter.interpret(VxInterpreter.java:82)
at vx.interp.VxInterpreter.doSubDialog(VxInterpreter.java:1169)
at vx.interp.VxInterpreter.executeFormItem(VxInterpreter.java:332)
at vx.interp.VxInterpreter.interpret(VxInterpreter.java:121)
at vx.interp.VxInterpreter.interpret(VxInterpreter.java:82)
at vx.interp.VxInterpreter.interpret(VxInterpreter.java:60)
at vx.server.VxContextImpl.interpretStartDocument(VxContextImpl.java:427)
at vx.server.VxContextImpl.start(VxContextImpl.java:279)
at vx.server.VxInterpClientThread.run(VxInterpServer.java:190)
interpret() exit with 1

The log file usually can give you some indication about what’s going on.

1. First, the exception thrown is:
vx.parser.VxException: __VG__LAST_RESULT__ not defined

That means the system variable __VG__LAST_RESULT__ is not defined when accessed.

2. If you read backwards from the exception, you can see the following line:
URL: http://localhost:8155/lvxresolver.jsp?url=%2FOutIVRstudio%2F..%2Flogs%2Fline0.log&nofileok=1
Context: http://localhost:8155/OutIVRstudio/unknown.vxml

That means the exception happens in the unknown.vxml file. So the element in IVR Studio is unknown. So you need to check any expression in that element that is using __VG__LAST_RESULT__.

3. If you go further back, you will see the following:
RECOGNIZE: Set-Grammar: action=set; type=grammar; name=; cfg=english | spanish

RESPONSE: TTP/1.1 200 nomatch

That means when the system is expecting the caller to say “english” or “spanish”, the system throws a VoiceXML exception “nomatch”. Since there is no recognition, __VG__LAST_RESULT__ is not set. Hence, the error.

Share This Post:

This entry was posted in IVR Developer. Bookmark the permalink.