Client config file problems


I have a recurring problem with numerous of my Xibo clients which has occurred since upgrading from 1.4.0 to 1.7.4. At random, a display will fail to load the client and display the following error message on-screen:

“There is an error in XML document (0,0)… Path C:\Documents and Settings\Username\Application Data\xiboclient.config.xml”

On inspecting the config file, it is totally blank. I have copies of all my config files so I have to copy it back over to fix the problem. It will then reoccur after a few days or possibly weeks. This appears to affect the majority of my 40 or so displays.

Thanks Andy

Do the PCs just get turned off or something?

In 1.7 series that file gets rewritten at each collection interval I believe (as the CMS pushes down the Player configuration) so if you got unlucky and just pulled the power to the box as that write was happening that could cause that file to be empty I guess?

Hi Alex,

The clients run constantly, and just drop to a blank layout overnight rather than turning off. And these are across multiple sites too with no other indication of power issues. Many of them are fitted pretty high up where they couldn’t be manually powered off. So I’m not sure that could be the cause.


Something would seem to be preventing that file from serialising correctly then

Can you capture the register xml from a display please?

Enable Auditing on the CMS globally
Enable Auditing on an effected display

Then go to log and filter by RegisterDisplay method.

Hi Alex,

Not sure if you meant to do that now and post the results, or wait until one fails? I’d have to enable auditing on all my displays to catch one in a timely manner, which i can do if needs be. I’ve enabled it on a few repeat offenders for now. Currently the results look like this:

<?xml version="1.0"?> <display status="0" code="READY" message="Display is active and ready to start." version_instructions=""><CollectInterval type="int">30</CollectInterval><DownloadStartWindow type="string">0</DownloadStartWindow><DownloadEndWindow type="string">0</DownloadEndWindow><PowerpointEnabled type="checkbox">1</PowerpointEnabled><StatsEnabled type="checkbox">1</StatsEnabled><SizeX type="double">0</SizeX><SizeY type="double">0</SizeY><OffsetX type="double">0</OffsetX><OffsetY type="double">0</OffsetY><ShowInTaskbar type="checkbox">1</ShowInTaskbar><ClientInfomationCtrlKey type="checkbox">0</ClientInfomationCtrlKey><ClientInformationKeyCode type="word">I</ClientInformationKeyCode><CursorStartPosition type="string">Bottom Right</CursorStartPosition><DoubleBuffering type="checkbox">1</DoubleBuffering><EmptyLayoutDuration type="int">10</EmptyLayoutDuration><EnableMouse type="checkbox">0</EnableMouse><EnableShellCommands type="checkbox">0</EnableShellCommands><ExpireModifiedLayouts type="checkbox">1</ExpireModifiedLayouts><LogLevel type="word">error</LogLevel><LogToDiskLocation type="string">c:\library\log.txt</LogToDiskLocation><MaxConcurrentDownloads type="int">2</MaxConcurrentDownloads><ShellCommandAllowList type="string"/><UseCefWebBrowser type="checkbox">0</UseCefWebBrowser><SendCurrentLayoutAsStatusUpdate type="checkbox">0</SendCurrentLayoutAsStatusUpdate><ScreenShotRequestInterval type="int">0</ScreenShotRequestInterval><MaxLogFileUploads type="int">3</MaxLogFileUploads><displayName type="string">PA_Recep_Left</displayName><screenShotRequested type="checkbox">0</screenShotRequested></display>

1 Like

I think any request should be OK. It’s actually Dan that asked me to ask you for it. We’re thinking there might be something in there preventing it serialising the response so keep it on until you get a failure, and then see if there’s anything different about the XML from the logs preceeding it going wrong :smile:

My hope was that when I ran the XML through a validator it would throw up some errors, which would explain why it failed to serialise correctly when saved.

Can you determine if it is failing at every collection interval, or just some of them? You should be able to look at the contents of that xml file at any time and see its running values.


It must be failing at just some of the collection intervals, as a particular display can go for days or weeks without the fault occurring. I’ll try and catch one failing with auditing enabled.


I’ve had a failure on one of the displays with audit enabled, however there is nothing in the log on the server. Looks like it actually failed on Wednesday, but I was out of the office and by the time I’ve found it the logs appear empty! My max log age setting is 30 days so not sure why. I do have a copy of the local log.txt file from the client if that would help?

1 Like

Yeah, it can’t hurt to see that if possible.

I’ve been over the code several times and I just don’t see it at the moment

1 Like

Here you go:

I don’t understand why you have 1 massive log file - 1.7.4 splits logs out into separate files when it gets over 25 messages, so that is a bit odd…

Regardless the end of the file is where we would expect any pertinent information, and there isn’t any unfortunately - it dies half way through flushing to the file, which is normal for a crash:

Info: <logdate>04/11/2015 14:58:43</logdate><thread>ScheduleManagerThread</thread><method>ScheduleManager - LoadNe

It dies at 14:58:43, which is before the next collection which is due at 14:59:01 (the last one was 14:58:31) - so it dies in between collection intervals.

Even more odd, the config file is only read into memory when the player starts up, not during runtime. So an empty config file might be a symptom rather than a cause.

In your first message you said:

Does that mean the error only presents when you re-open the player after a crash?

Is there anything in the Windows Application Log regarding a crash?

I’m not sure how the logging is meant to work, but sounds like that could be a problem.

The clients just sit and run constantly, so save for power cuts they won’t get a reboot and the client should never close and re-open. I’ve check the windows event log and there is nothing whatsoever around that time, and certainly no evidence of a reboot or crash! To the best of my knowledge there is nothing that would be causing the client to close and open at that time.


Essentially it should create a new file each time the log size reaches 25 entries. These are then sent to the CMS in small chunks rather than sending one big file. Having one big file there certainly won’t be helping as I imagine it is failing to send. Perhaps you can delete that file and see if it starts creating the smaller ones?

This player is definitely a 1.7.4 player and not something older?

Thinking outside the box a little - is the users profile on the local drive? I.e. how likely is it that the users profile and therefore the config file to disappear for a short while?

Thanks Dan,

I’ve deleted it and we’ll see what happens. Just checked another 5 or 6 of my clients at random and all have log.txt files around the 50MB mark currently. Something must be wrong with that mechanism in my environment.

Re the user profiles, they are just standard local users with a local user profile unfortunately. Can the config file not just remain static unless there is actually a change? Or is it to do with the display settings profiles?

The clients are 1.7.4 with your fixed .exe for the PowerPoint download issue. However, this current behaviour existed before that .exe patch.


The penny dropped - is this log file created because you have put something in this setting:

If so, then it makes perfect sense that it grow in size indefinitely. The player routinely creates and sends log files to the CMS - this is the mechanism I thought you were using - it makes sense that you aren’t!

It shouldn’t matter that it saves the settings each time register is called - although it could be improved to only save them if they have changed in some way (other than the CMS time, which will change with each call - Since sending CMS date the player saves settings with each RegisterDisplay · Issue #629 · xibosignage/xibo · GitHub). I worry that saving less frequently would just make the problem occur less frequently, rather than solve it.

In any case, i’ve done that for now to see if it helps - i’ll PM link.

You’re a gent, thanks! I’ll drop that client onto a good few of my displays and give it a good test for a while.

Re the logs, I have indeed populated that field. Would it be better not to? I guess it’d mean the logs would only exist on the CMS and never permanently on the client. I hadn’t realised this- I thought I was just specifying the temporary location of the log file prior to it uploading to the CMS. It’ll explain some of the disk space issues I’ve been having, that’s for sure!

Thanks again

1 Like


I put the modified .exe on all my clients, and so far I haven’t had a single instance of the config file being empty. Result! Will I have to stick with the version I have now, or is this something that could be included in future releases?


1 Like

It will be in the 1.7.6 and 1.8 releases, so you can upgrade normally when the time comes. Its no problem to continue using the EXE I provided in the mean time.

I’m pleased it solved the issue for you!


I am also facing this exactly same issue, but on version 1.7.5. How should I proceed to fix it?