CF2023 Update 14 applied but not fixing this - cfh...
# cfml-general
a
CF2023 Update 14 applied but not fixing this - cfhtmltopdf is not creating any output or writing a file. This is in the logs: Cannot invoke "String.equalsIgnoreCase(String)" because "engine" is null
b
Hi alholden, Are you on a non-windows system? If so that would be the reason. Please read Charlie Arehart's notes on update 14. Please also note the update 14 has stricter security... which can be removed with a JVM argument setting. Hope that helps! https://www.carehart.org/blog/2025/5/14/coldfusion_updates_released_may_13_2025
a
It's a Win 2016 viviotech server. Luckily non production. Thanks, I figured he'd have an article somewhere.
👍 1
Well, I've mostly gone thru and checked off all the items in his blog post to no avail. Even removing the felix-cache folder. The PDF Manager is still hosed as shown in the OP. Element engine is undefined in THISPDFSERVICE. I suspect the updater 14 has missed some classes, or some port snafu....
c
Tried a downgrade and/or upgrade of the PDF package? That fixed a different error we got after the latest CF2023 update.
👍 1
a
I'm having VivioTech look at it - using some of my support wonderbucks. I'll let you know what they find. Because this CFAdmin can't seem to D/L anything from the Adobe mothership, I applied the update 14 manually via the jar - and it appears to have updated all the packages as well. For the same reason, I'm unable to pick and choose package versions either. (yes - they checked the firewall). Seeing as everything is allegedly the latest 2023 version, and it's a Win2016 box, I'm a little irked at why it just can't work already. It's not like we're an outlying case. 🤔 Perhaps mi VivioDudes will uninstall & start all over, which is fine with me!
c
Guys, first, the error message in one of Al's later messages is the clue to the problem and solution: "_Element engine is undefined in THISPDFSERVICE." (_That's at least more clear than the first error he offered, "_because "engine" is null_"). The solution is to add a needed set of XML that NAMES that "engine", which as of CF2023 is the new engine, pdfReactor (which Adobe licenses for us as of CF2023, for PDF generation done via cfhtmltopdf). The XML would be added within the neo-document.xml file (found in the cfusion/lib folder). Edit that file while CF is stopped (having first saved off a copy), and add these lines after other similarly groups of "var" lines (there are not many):
<var name='engine'>
<string>pdfReactor</string>
</var>
Normally, this problem arises when one installs CF2023 and its "migration wizard" imports CF Admin settings from a prior CF version installed on the same machine. There was/is a bug in the wizard that fails to put this in place. (It also fails to change the port to the correct port for CF2023.) As such, I would be VERY surprised if this issue was related to (let alone, caused by) the update of last week. Al, you say that's what you did, but had you perhaps INSTALLED CF2023 and THEN done the update? In any case, if you make this change, do things now work? For more on this issue (of that error, and it being about the migration wizard), see a discussion on the CF Forums, which points also to a tracker bug report on the matter. And in fact in that bug report, Adobe even offered a complete original neo-document.xml (as of an original install of CF2023), which includes that needed XML line (and correct port for the default CF2023 add-on service, of 8995). And while folks there reported (in 2024) that they could not download the file, I just tried and confirmed that it works--even in an a browser incognito/private window that's not logged in to tracker. So Al, consider just grabbing that file and restart CF to see if things work. (If you want to modify the values, you would now be able to do that in the CF Admin.)
a
Thanks @carehart and all... It appears the core issue was (a bug?) in Adobe's migration process during the CF2023 upgrade. https://tracker.adobe.com/#/view/CF-4218060 The file C:\ColdFusion2023\cfusion\lib\neo-document.xml was missing the engine node - and pointing to port 8991, to which CF couldn't connect. Adding the missing node from Charlie's comment above, and moving the port to 8995 has resolved the issue. These changes may be identical to swapping out the entire xml file with the one attached to the tracker issue, if no other customizations were made.
For posterity, I should note that the original discovery was while CF2023 was on update 12. At that time, the output from htmltopdf was essentially 'null'. No errors were bubbled up to the interfaces, the content was just missing. With the destination attribute, the file was not created. Only after I manually applied update 14 did we get to see some real error meat - that I poorly googled and then came here with. Thanks again.
👍 1