iApp Troubleshooting

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.

Import/Save Errors:

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 the error.
<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 like magic.

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 message.

Missing IDENT

If your forget to give your input a name, you get the Missing IDENT error message.

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 ‘).

Runtime errors

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 errors.
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.

Licensing errors

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.