LowLevelBadParameterError -- illegal XML tag name character

Posted on
Tue Nov 14, 2017 7:03 am
six50joe offline
Posts: 84
Joined: Apr 07, 2011

LowLevelBadParameterError -- illegal XML tag name character

Decided to make my first plugin, for my own personal use as more of a 'library' to share implementation and scripts for the two locations I use Indigo.

I used other plugins as templates for starting mine. I have not been able to find the cause of these errors:
Code: Select all
   Loading plugin "Six50Joe 1.0.3"
   Starting plugin "Six50Joe 1.0.3" (pid 19108)
   Error (client)                  UpdatePluginStatusUI() caught exception: LowLevelBadParameterError -- illegal XML tag name character
   Installing and enabling plugin Six50Joe v1.0.3
   Loading plugin "Six50Joe 1.0.3"
   Starting plugin "Six50Joe 1.0.3" (pid 19108)
   Error (client)                  UpdatePluginStatusUI() caught exception: LowLevelBadParameterError -- illegal XML tag name character
   Six50Joe Error                  Error in plugin execution getDevicesDict: LowLevelBadParameterError -- illegal XML tag name character
   Six50Joe Error                  Error in plugin execution getEventsDict: LowLevelBadParameterError -- illegal XML tag name character
   Six50Joe Error                  Error in plugin execution getActionsDict: LowLevelBadParameterError -- illegal XML tag name character
   Started plugin "Six50Joe 1.0.3"

Nov 14, 2017, 6:51:51 AM
   Schedule                        enclosure lamps ON
   Sent (offline)                  "enclosure heating lamp" on to 85
   Error (client)                  runDialogForMenuAction() caught exception: LowLevelBadParameterError -- illegal character in XML tag name or value


My tag names don't seem to be breaking any of the rules. I've tried installing it in two separate server instances with different configurations, same errors. Also have tried uninstalling / reinstalling the plugin multiple times.


I haven't defined any custom devices or events, and my menu items and actions are pretty minimal right now:
Actions.xml:

Code: Select all
<?xml version="1.0"?>
<Actions>
    <SupportURL>https://myserver.org</SupportURL>
   <Action id="pingOtherHouse">
      <Name>Ping other house</Name>
      <CallbackMethod>pingOtherHouse</CallbackMethod>
      <ConfigUI>
         <Field id="ipOrUrl" type="textfield">
            <Label>IP or URL:</Label>
         </Field>
         <Field id="retrySecs" type="textfield">
            <Label>Seconds between retries:</Label>
         </Field>
         <Field id="numRetries" type="textfield">
            <Label>Number of retries:</Label>
         </Field>
      </ConfigUI>
   </Action>
</Actions>


Menuitems.xml
Code: Select all
<?xml version="1.0"?>
<!-- If your plugin wants to add menu items to it's submenu off the new Extensions menu,
    define them here. Each should have a unique menu id, a Name, and an Action. The last
    is a method name in your python file that will be called when the user selects that
    menu item. Note - nothing will be returned to the client, so if you need to communicate
    back to the user you can post information into the Event Log.
-->
<MenuItems>
    <SupportURL>https://github.com/six50joe/Indigo</SupportURL>
   <MenuItem id="pingOtherHouse">
      <Name>Ping Other House...</Name>
      <ConfigUI actionId="pingOtherHouse"/>
   </MenuItem>
   <MenuItem id="separator2" />
   <MenuItem id="checkPluginUpdates">
      <Name>Check for plugin updates</Name>
      <CallbackMethod>checkPluginUpdates</CallbackMethod>
   </MenuItem>
   <MenuItem id="updatePlugin">
      <Name>Update Plugin</Name>
      <CallbackMethod>updatePlugin</CallbackMethod>
   </MenuItem>
</MenuItems>


PluginConfig.xml

Code: Select all
<?xml version="1.0"?>
<PluginConfig>
   <Field type="menu" id="logLevel" defaultValue="INFO">
      <Label>Log level:</Label>
      <List>
         <Option value="DEBUG">4 - Debug</Option>
         <Option value="INFO">3 - Info</Option>
         <Option value="WARNING">2 - Warnings</Option>
         <Option value="ERROR">1 - Errors</Option>
      </List>
   </Field>
   <Field type="checkbox" id="extensiveDebug" defaultValue="False">
      <Label>Extensive debug log</Label>
   </Field>
   <Field type="label" id="emptylabelUpdates">
      <Label>
      </Label>
   </Field>
</PluginConfig>

Posted on
Tue Nov 14, 2017 11:53 am
jay (support) offline
Site Admin
User avatar
Posts: 18200
Joined: Mar 19, 2008
Location: Austin, Texas

Re: LowLevelBadParameterError -- illegal XML tag name charac

What are you using to edit the plugin? I wonder if some invisible character got in there somewhere (most editors will have an option to show invisibles). I see there appears to be an extra space ahead of the <SupportURL opening tags - that might be a good place to start.

Also, can you open the Action config dialog for the action?

Jay (Indigo Support)
Twitter | Facebook | LinkedIn

Posted on
Tue Nov 14, 2017 3:28 pm
six50joe offline
Posts: 84
Joined: Apr 07, 2011

Re: LowLevelBadParameterError -- illegal XML tag name charac

I am able to open the Action config dialog. I'll try your suggestion of looking for invisible characters. I had been using emacs.

Posted on
Wed Nov 15, 2017 6:02 am
six50joe offline
Posts: 84
Joined: Apr 07, 2011

Re: LowLevelBadParameterError -- illegal XML tag name charac

Jay,
I checked for invisible chars- other than than the spaces preceding SupportUrl that you pointed out, there are none. Removing those spaces didn't work.

When I try the 'pingOtherHouse' plugin item, the dialog opens and I can enter values in it, but when I click 'Execute' I get the error:

Error (client) runDialogForMenuAction() caught exception: LowLevelBadParameterError -- illegal character in XML tag name or value

I also checked permissions on the files. They are identical to a plugin that is working that I used as a template for mine.

I've also tried shutting down Indigo, removing the plugin from the Plugins directory, and re-installing it. Is there a way to debug it?

Thanks,
Joe

Posted on
Wed Nov 15, 2017 8:33 pm
jay (support) offline
Site Admin
User avatar
Posts: 18200
Joined: Mar 19, 2008
Location: Austin, Texas

Re: LowLevelBadParameterError -- illegal XML tag name charac

What are you typing into the text fields on that dialog? Any special characters?

Jay (Indigo Support)
Twitter | Facebook | LinkedIn

Posted on
Wed Nov 15, 2017 9:17 pm
DaveL17 offline
User avatar
Posts: 6742
Joined: Aug 20, 2013
Location: Chicago, IL, USA

Re: LowLevelBadParameterError -- illegal XML tag name charac

This is a long shot, but it's worth a try.

Change this:
Code: Select all
   <Field type="label" id="emptylabelUpdates">
      <Label>
      </Label>
   </Field>

To this:
Code: Select all
   <Field type="label" id="emptylabelUpdates">
      <Label>" "</Label>
   </Field>

or this:
Code: Select all
   <Field type="label" id="emptylabelUpdates">
      <Label/>
   </Field>

I came here to drink milk and kick ass....and I've just finished my milk.

[My Plugins] - [My Forums]

Posted on
Fri Nov 17, 2017 8:21 am
six50joe offline
Posts: 84
Joined: Apr 07, 2011

Re: LowLevelBadParameterError -- illegal XML tag name charac

Tried it, but no change. Is there a way to get more verbose logging to point out where the XML errors are? This morning I started trying a new approach, starting with a copy of the ZEAL plugin, which installs without the errors, and incrementally changing all the parts to my implementation to see if/when it breaks. Will update with my findings after this effort.

Joe

Posted on
Fri Nov 17, 2017 11:26 am
matt (support) offline
Site Admin
User avatar
Posts: 21411
Joined: Jan 27, 2003
Location: Texas

Re: LowLevelBadParameterError -- illegal XML tag name charac

Unfortunately, I don't think the logging is going to give you any more details. Your approach of reverting back or copy/pasting chunks from the working plugin is the approach I'd recommend. Let us know what you find.

Image

Posted on
Mon Nov 27, 2017 2:13 pm
howartp offline
Posts: 4559
Joined: Jan 09, 2014
Location: West Yorkshire, UK

Re: LowLevelBadParameterError -- illegal XML tag name charac

If you want to pm me a link to your plugin I’m happy to have a gander.


Sent from my iPhone using Tapatalk Pro

Page 1 of 1

Who is online

Users browsing this forum: No registered users and 1 guest