Not sure if this is a bug or some setting on my server:

16 February 2012 9:40 pm > UNKNOWN: Line: 158 - XSLTProcessor::transformToXml(): Invalid type
Line: 158 - XSLTProcessor::transformToXml(): xmlXPathCompiledEval: 1 objects left on the stack. in file /home/wjn/public_html/ on line 272
  • Success: When I try and send email (smtp via Google) via a contact form from my local development environment (Mac OS 10.7.2, Litespeed 4.10, PHP 5.3.8) on a Mac it works fine.

  • Success: When I ran the same contact form on my last server (Ubuntu 10.4 LTS, Litespeed 4.10 PHP 5.3.6) with the same configurations as this one the form emailed fine.

  • Fail: I recently moved everything to Linode the only thing I changed was to compile PHP at 5.3.8 which is what I'm running locally with no issues.

Any ideas on what might be tripping me up?

Thank you in advance for your creative input.

Just going with your other thread, does it work if you turn off Cloudfare minification of HTML?

@brendo Thanks for the input.

I removed cloud flare altogether (development mode) and still had the issue. :-(

I've been trying to help @wjnielsen with this, but have hit a dead end. Anyone have some thoughts on what could be causing this issue?

In the initial post, I copied a line from the manifest/logs/main file. The log chronicles that line 158 from an unknown file is causing the error.

How would one work back from the line 272 reference in class.frontendpage.php to figure out what the source of the error is?

Resultant xml via ?debug=xml


Screen Shot 2012-02-19 at 6.23.54 PM.png

How would one work back from the line 272 reference in class.frontendpage.php to figure out what the source of the error is?

In short, you can't. The error that is displayed is usually the result of a bad XSLT call somewhere.

How are you using SMTP for mail? Just through the default mail filter? ETM? ETF?

@brendo I've been successfully using it via ETM.

I recently moved to Linode (Ubuntu 10.4 LTS, PHP 5.3.8, Litespeed 4.10) with the exact configurations that ran it successfully on my previous server at Slicehost. I'm completely miffed.

I have checked my iptables and ports 465 and 587 are open for output.

Any ideas, even guesses, where to continue troubleshooting are exceptionally appreciated at this point.

@brendo would looking at my phpinfo() be helpful?

[edit] this was removed because it seems superfluous.

root@severus:/usr/sbin# sendmail -bv deliverable: mailer esmtp, host, user

Sendmail is apparently working fine.

So using Sendmail instead of SMTP through the ETM extension works without error.

But using SMTP and ETM results in an error?

In the past the XSLT error that was logged usually is because of special characters being dumped into the page or calling an XSLT function with invalid parameters.

I'm not 100% on how ETM renders this page, but I wouldn't think that it would use different XSLT for Sendmail or SMTP. Have you had a read through the ETM thread to see if anyone has had similar issues?

What is your XSLT for these email pages? Is it possible there is some XSL that is invalid in certain situations depending on the data?

Thanks Brendo, I'm running down the trails you suggested...

If you don't see any ETM errors in the log, I also assume that it's an XSLT problem. So, like @brendo suggested, I would start searching in the XSLT.

The "1 objects left on the stack" errror is always hard to debug, so I would try and simplify the XSLT as far as possible and use the XSLT output for debug messages.

Problem solved.


This was a permissions issue with the Members extension. Of course, the public role had to be set to allow the contact event to save in the symphony database. Setting the public role so that it can create a new entry in the symphony database solved the immediate problem.


Remaining Questions

While this sounds like, and to a degree is, an oversight on my part (not checking the permissions first), I'd like to suggest that there is still a bit of this that seems to be a mystery as well.

  1. Symphony naturally gives feedback when permissions do not match the events attempted.
  2. My error handling system would have and has been handling permissions errors flawlessly to this point giving further textual description of the problem to the user. Here is an example of the output for this form with the permissions removed for public on my development machine: error handling

  3. Why the vague XSLT error?

  4. Why was the event node not created describing the permissions problem as usual?

Thank you all for your help.

Screen Shot 2012-02-20 at 8.57.07 AM.png and Screen Shot 2012-02-20 at 8.44.39 AM.png

Create an account or sign in to comment.

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details