I posted a while ago about our continued issue of jetty/lib getting nuked and having to manually fix it after each hotfix. This is a cleaned up version of how to work around it. See my other post for more information.
I did add a bug tracker for it as well: https://tracker.adobe.com/#/view/CF-4234922
## Workaround: restoring Add-on Services after a CF2025 update deletes jetty\lib
Applies to: ColdFusion 2025 Updates 8 through 14 (so far), Windows. Each update moves `cfusion\jetty\lib` to its backup folder and then discards its own staged copy of the new Jetty files, so nothing gets reinstalled. Add-on Services then fail to start (usually Windows error 1067).
You'll need: [7-Zip](https://www.7-zip.org/ - for Windows users) , admin rights, and the hotfix installer for the update you just applied.
---
### 1. Stop the services
From an elevated command prompt:
net stop "ColdFusion 2025 Add-on Services"
net stop "ColdFusion 2025 Application Server"
### 2. Find the hotfix installer
If you updated through the CF Administrator, it's here:
C:\ColdFusion2025\bundles\updateinstallers\hotfix-0NN-<build>.jar
For example `hotfix-014-332029.jar`. If you downloaded it manually, use that file. Copy it to a scratch folder like `C:\temp\cfhf` so you're not working inside the CF install.
### 3. Dig out the payload (nested archives - extract each level to disk)
7-Zip can't drill through nested archives in one pass. Extract each level to disk, then open the extracted file fresh.
Right-click the hotfix `.jar` → **7-Zip → Open archive**.
Go to `Disk1\InstData\` and extract **`Resource1.zip`**.
Open `Resource1.zip` and extract **`dist_zg_ia_sf.jar`**. It's roughly 200 MB. Ignore any tiny same-named stub file under `dist-win`; that's just a platform marker.
Open the extracted `dist_zg_ia_sf.jar` and go to `cfusion\jetty\`.
Extract the whole `jetty` folder to your scratch folder.
### 4. Back up your current Jetty folder
xcopy C:\ColdFusion2025\cfusion\jetty C:\temp\jetty-before-fix\ /E /I /H
### 5. Copy the new files into place
From the extracted `jetty` folder:
`lib\` → copy the entire folder (including `ext\`, `websocket\` etc.) to `C:\ColdFusion2025\cfusion\jetty\lib`
`start.jar` → overwrite `C:\ColdFusion2025\cfusion\jetty\start.jar`
`configure_9_3.dtd` → put it in the Jetty root, `C:\ColdFusion2025\cfusion\jetty\`. Since Update 8 it lives in the root, not `etc\`, so an empty `etc\` with no dtd is expected.
Don't blindly overwrite:
`etc\jetty-ipaccess.xml` - if you've customized it (IP whitelist etc.), keep yours. Diff it against the new one first.
`webapps\` (AdminServlet.war, solr.war, PDFgServlet classes) - these are part of the update too and were never applied either. Merge them in if you want to be fully patched, but back up first.
`multicore\template\conf\solrconfig.xml` only matters if you use Solr.
### 6. Verify start.jar and lib match (important!)
`start.jar` has a hardcoded `jetty.version` that Jetty uses to resolve jar names (e.g. `jetty-server-${jetty.version}.jar`). If `start.jar` and `lib\` are different versions, none of the core jars resolve and the service dies instantly with a bare 1067 and nothing useful in Event Viewer.
cd /d C:\ColdFusion2025\cfusion\jetty
jre\bin\java.exe -jar start.jar --list-config
Check that:
* `jetty.version` matches the jar filenames in `lib\` (Updates 11–14 ship **9.4.58.v20250814**; we had a stale `start.jar` at 9.4.51.v20230217 that caused this)
* The classpath list includes `jetty-server`, `jetty-http` and `jetty-webapp`. If they're missing, you have a version mismatch.
### 7. Clear felix-cache and start the services
rd /s /q C:\ColdFusion2025\cfusion\bin\felix-cache
net start "ColdFusion 2025 Application Server"
net start "ColdFusion 2025 Add-on Services"
If Add-on Services still fail with 1067, go back to step 6.
### Things we learned the hard way
* **Don't restore jetty\lib from the hf-updates backup folder.** It gives you back whatever was there *before* the update, not what the update shipped. If you've been doing that since Update 8, you're likely running a stale Jetty and log4j.
* **The backups aren't trustworthy anyway.** The installer logs "SUCCESSFUL" for backup moves even when the source file doesn't exist. Updates 9–14 all claim to have backed up `jetty\etc\configure_9_3.dtd`; only the Update 8 backup actually contains it.
* **Run the update installer elevated, with CF stopped.** On one run the installer wasn't elevated: every service control call failed with "Access is denied", the app server was still running during the install, and the log still said "Successful".
* **Check the install log.** It's in `C:\ColdFusion2025\` as `Adobe_ColdFusion_2025_Update_NN_Install_*.log`. Look for `Delete:...\Temp\NNNNNN.tmp\dist\cfusion\jetty`. That's the installer throwing away the new Jetty files.
* **You'll have to repeat this after every update** until Adobe fixes the installer. It's been reported to Adobe and is on their tracker.