This page contains guidance for troubleshooting iApp Templates when something goes wrong.
Debugging and troubleshooting iApp Templates can be a difficult
process when you first get started at it. A great many of the of the
error messages that you might run into seem inscrutable at first, and
there are not tools to allow traditional debugging. Fear not; it gets
easier. Once you get to know the quirks of the system, troubleshooting
and debugging gets much easier. This page seeks to make that process
easier. Below are a series of tips and tricks to understanding, and
ultimately fixing, various forms of error that you may encounter.
When you try to save an iApp Template that you have been editing in
the GUI or from TMSH, or when you try to import a template, the BIG-IP
runs a syntax check against the Presentation and Implementation
sections of the template. You will be blocked from saving or importing
any template that contains a syntax error. You must solve the syntax
issue before you can continue.
Finding where the error is with line number formatting
When an error is detected, an error message is given. This message
contains a line number, but that number requires some translation.
This line number is relative to the beginning of the section that
contains the error, either the Presentation or Implementation section.
The problem is that it doesn’t say which section the error is in.
Luckily, there is a subtle clue that you can use to figure it out. The
format of the line number is different based on which section caused
<line number>, <column number> = Presentation section
<line number> = Implementation section
But I didn’t touch that code, why is it reporting an error?
Sometimes you make one tiny change to one row and then when you try to
import or save the template you get ten error messages from all over
the template. The messages seem impossible because they are all
complaining about parts of the template that worked just moments
before. Don’t worry. You are not going crazy. Most of those errors are
not real. False error messages really do happen, but there is a real
error message hidden in there somewhere. The trick with this kind of
error is to look for the error message that actually sits in the area
of code that you actually changed. This is most likely the real one.
When you fix the real error, all of the other errors will disappear
The misrepresentation of Missing RCURLY
The error message “Missing RCURLY” generally makes one start counting
left and right curly braces to make sure they are symmetric. However,
in many cases when this error message comes up, one might find
themselves perplexed. If your curly braces are in order, then this
error message most likely means that you have a typo in one of your
keyword identifiers. If you misspell one of the input types, such as
string, message, or choice, you will geet a Missing RCURLY error
If your forget to give your input a name, you get the Missing IDENT
Caught runtime exception, 12XmlException. Unexpected Error: Loading configuration process failed.
This error message implies that the template that you are trying to
import contains an illegal character. The most likely cause of this
error is that you cut and pasted code from someplace and now you have
the wrong kinds of quotes (“, ”, ‘, or ’) instead of the regular quote
characters (” and ‘).
Once you have successfully saved/imported your template, then you are
ready to try to actually deploy an Application Service with your
template. This is where you find out about your TCL and TMSH logic
The problem is that the error messages returned by iApp Templates are
confusing. They make sense based on which TMSH command was most
recently run, but not always in the context of the template. If your
error is in a TMSH command, the message will have to do with what was
wrong with that command, but that might not have anything to do with
anything that is displayed on the template UI.
When you get stuck, start entering logging messages to help you find out what is broken and where
The TCL puts commands sends messages to /var/tmp/scriptd.out. When you
can’t figure out what part of your code is broken, add a lot of puts
statements to the template so that you can figure out what part of the
template is broken by where your debugging messages stop.
Some licensing modes allow you to provision modules but do not provide
full functionality. A BIG-IP licensed as ASM-Standalone has only
limited LTM functionality, even though LTM is provisioned. As a
result, some templates fail in this licensing mode. In this case, the
error message says that the Cookie persistence profile doesn’t exist.
Nothing in the template UI says anything about cookie persistence. It
can seem confounding. There is nothing wrong with the template, it
just isn’t designed for this licensing mode. What can you do? You can
change the license, or you can edit the template to not use
persistence (it’s a very small change).
Help section errors
There is no good troubleshooting advice for the Help to be had here. If
something is wrong with the help, such as using an illegal HTML tag,
Help does not display. Instead there is just a rather unhelpful error
message. The error message simply says that there was an error. No line
number or other clue about what is wrong is given. This is the most
frustrating kind of error to fix.
The BIG-IP API Reference documentation contains community-contributed content. F5 does not monitor
or control community code contributions. We make no guarantees or warranties regarding the available code,
and it may contain errors, defects, bugs, inaccuracies, or security vulnerabilities. Your access to and use of any
code available in the BIG-IP API reference guides is solely at your own risk.