1 (edited by frankbiganski 2016-02-20 09:59:51)

Topic: Juicebox Error: Config XML file not found - on 3rd party server

I'm at a complete loss, so I'm hoping someone can provide their most logical answer as to why I'm receiving an intermittent Juicebox error.

I use the WordPress theme Total by WPExplorer for my real estate website http://mrtownhome.net

I also use a plugin from Diverse Solutions which uses Juicebox on their servers to display real estate listings on my website. The plugin provides listings of houses for sale, and Juicebox provides the photos/slideshow.

Juicebox itself resides on the Diverse Solution server, and not with my hosting provider InMotion.

A PHP file in the Diverse Solutions plugin, which is on my server, calls up the Juicebox from their servers

Diverse Solutions says the intermittent Juicebox error is being generated because something within my Site is preventing intermittent access to the "client-assist.php" file.  This is a screen shot of the error: http://cl.ly/fCfR
This is another screen shot provided by the plugin provider: http://prnt.sc/a4hvw3

I've spoken to techs at both Diverse Solutions and with InMotion, and I've already tried and implemented many of the simple "fixes" first such as:

> make sure file permissions are correct
> added a php.ini file to allocate more memory
> make sure there's no "www" preceding my url anywhere within my host
> make sure all plugins are approved for my hosting provider
> make sure no other plugins use Juicebox (which they don't)
> cleared all cache and only using approved cache plugin (W3 Total Cache)
> tried different computers with different IP address and still get intermittent error

I think I saw a drop in the amount of errors after creating the php.ini file, so would this be enough?

-max_execution_time = 60    ; Maximum execution time of each script, in seconds
-max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
-memory_limit = 256M      ; Maximum amount of memory a script may consume (32MB)
-max_input_vars = 4000

So based on this information and the screen shot, do you feel this error is more likely with my hosting provider, or is the issue more likely within the PHP file from Diverse Solutions?

I just wanted to go straight to the folks and users who know this plugin best, to see what your thoughts are.

Thank you so much for taking the time to read this!

Frank Biganski
Virginia, USA

Re: Juicebox Error: Config XML file not found - on 3rd party server

If the problem is intermittent, then the cause is likely to be either web sever or internet connection related.
The code on your pages will remain constant and should be rendered with consistency.

Juicebox will display the "Config XML file not found" error if the XML file cannot be reached in a timely manner.
The fact that the problem is intermittent suggests that a timeout error may be occurring (the time taken to fetch the XML file is too long).

I'm not sure it will help but you could try increasing your PHP set_time_limit directive to ensure that your PHP file has enough time to generate the XML file.
You could also increase your browser's default timeout value to see if this makes a difference. (You might need to do a web search to see if this is possible with your particular browser.) I realise that this will not help others viewing your web site but it might give us some insight into the nature of the problem.

I notice that your gallery's XML file is generated by a PHP file but the configURL (the URL for the PHP file) is first generated by a JavaScript function.
Also, your web page loads files from several different domains and includes approximately 40 external JavaScript files and 30 external CSS files.

I understand that you may need everything for your web site to function correctly but I can't help but think that you might have fewer Juicebox errors if things were simplified a bit.
If you have any plugins which you are not currently using, try deactivating them to prevent their files from being loaded into your page.

Try also deactivating W3 Total Cache and allow all files to be served from your own web server (instead of a Content Delivery Network). I do not know if this will make a difference but it might be worth trying so see what happens.

Another thing you might like to try is to hardcode the path to the PHP file in your gallery's embedding code (to see if there is perhaps a timing issue with the JavaScript function which builds the configURL which might be contributing to the problem).
Change:

configUrl: dsidx.details.GetConfigUrl(),

... to:

configUrl: 'http://mrtownhome.net/wp-content/plugins/dsidxpress/client-assist.php?action=GetPhotosXML&pid=147337406',

You might need to change this in one of your plugin's source files. I realise that this is not a solution (it will only ever show the images for a single gallery) but it might be interesting to see if it helps with the problem.

Unfortunately, I do not have a solution to your problem and some trial and error might be required but I hope the suggestions above point you in the right direction.

Re: Juicebox Error: Config XML file not found - on 3rd party server

Thanks for your detailed reply Steven.  I meant to reply sooner, but I've really had to spend some quality time digesting your response.  I did remove the W3 Total Cache days ago, and I only installed that as a trial & error as my host company told me W3 Total Cache was their recommend cache plugin.  But I found W3 really slow and it actually caused my pages to take longer to load so I went back to the cache plugin that I've always been using, that comes with the Wordfence Security plugin.  But I tried loading pages with and without a cache plugin, and it made no difference.

But what I need to point out again is that this intermittent Juicebox error is not occurring as a result of a slow page loads because the error can appear instantaneously.  That is, the moment a page may load, the Juicebox error will literally appear within a millisecond.  The Juicebox icon splashes on the screen for a millisecond (can;t even see it), and then immediately, the Juicebox error appears.

I still need to find where the "PHP set_time_limit directive" is located but if that's in my php.ini file, I believe it's already set to 60 seconds.

But all if the following that you referred to is created and provided by the third party company. You mentioned: "I notice that your gallery's XML file is generated by a PHP file but the configURL (the URL for the PHP file) is first generated by a JavaScript function.  Also, your web page loads files from several different domains and includes approximately 40 external JavaScript files and 30 external CSS files." 

All of those feeds are provided by the third party plugin company Diverse Solutions

After looking at other real estate websites that use the same plugin, I've noticed a pattern...  that most all of those other companies are paying for a dedicated server so their pages load much faster. I believe this plugin is so dang clunky and resource dependent that it works best with a dedicated server, and the techs at Diverse Solutions sort of agreed (they didn;t say their plugin was clunky, but they did agree a dedicated server is best to have).

It will be a lot of work for me to re-implement and install a different company's IDX plugin into my system, but I'm thinking about going in that direction because I don't have the $120-$150 per month for dedicated web hosting right now -- even though I'd have to make those changes to over 300+ web page within my site.

Anyway, I sincerely appreciate your time and response and I will provide additional information as I uncover it, in case it may help anyone else who is experiencing the same error with the Diverse Solutions dsIDXpress plugin.  But again, the addition of the php.ini file helped remove a lot of the errors I was receiving so to my novice eyes, I really feel the problem is with Diverse Solutions.

Thanks again!

Frank

Re: Juicebox Error: Config XML file not found - on 3rd party server

... the error can appear instantaneously.  That is, the moment a page may load, the Juicebox error will literally appear within a millisecond.  The Juicebox icon splashes on the screen for a millisecond (can;t even see it), and then immediately, the Juicebox error appears.

It sounds like the dsidx.details.GetConfigUrl() JavaScript function which generates the URL to the PHP file (for the configUrl) may not be ready when the Juicebox embedding code is run. (The function may not be available or a variable required for the function may not yet be defined at that point in time.)
My suggestion to try hard-coding a known PHP file URL instead of using the JavaScript function for the configUrl might confirm whether or not this is the root of the problem but it may be difficult to do. The plugin you are using seems to be rather complex. You might have to search throughout the plugin's source to find where "dsidx.details.GetConfigUrl()" is being used for the configUrl and then replace it with a URL such as "http://mrtownhome.net/wp-content/plugins/dsidxpress/client-assist.php?action=GetPhotosXML&pid=147337406".
Even if this does not help, then we would at least be able to eliminate this as a possible cause.
Also, to help with debugging, you could perhaps use console.log(dsidx.details.GetConfigUrl()); at the point in your page where your Juicebox embedding code is run and then check the JavaScript console in your browser's developer tools to see what is actually being returned by the function.
This might help but it could also be just one step in a lengthy debugging process.