Answers and Fixes
"Could not acquire change log lock" or "Waiting for changelog lock..."
During start-up, one of the following messages may appear in the cascade.log file and prevent Cascade CMS from starting: Waiting for changelog lock....
reference Cascade Administration"Remember Me" Cookied Login Vulnerabilities
Weaknesses identified in the Cascade CMS cookied login process that could allow an attacker to access the CMS as another user, and the versions that remediate them.
reference Content AuthoringAdding a caption to a table
Turn on the Caption checkbox in a table's properties to add a caption area above the first row, then enter your caption text.
how to Content AuthoringAdding a caption to an image
Use the Advanced tab of the Insert/edit image dialog to wrap an image in figure and figcaption elements, then edit the caption text in the editor.
how to Content AuthoringAdding a PDF to a page
Upload a PDF or other document to Cascade CMS, then link to it from the WYSIWYG editor using an internal link.
how to Content AuthoringAdding a table header and footer
Use Row Properties to mark a row as a header or footer, which wraps it in thead or tfoot elements.
how to Content AuthoringAdding an image to a page
Upload an image to Cascade CMS, insert it in the WYSIWYG editor with alternative text, and optionally set its alignment.
how to Content AuthoringAdding classes to links and images
Apply a configured class to a link or image through the Styling field, and use the element path to reach a figure element instead.
how to Content AuthoringAdding classes to tables
Apply a Custom Format class to a table, row, or cell, and use the editor's element path to target the exact element you mean.
how to Content AuthoringAdding header cells to a table
Set a cell's type to Header cell and give it a scope so screen readers can associate data cells with the right headers.
how to Content AuthoringAsset is not set to publish. Please enable publishing for this asset and try again.
The asset you are publishing has the Include when publishing option turned off. Enable it on the Configure tab.
troubleshooting Cascade AdministrationComparison method violates its general contract
Why a Velocity or XSLT sort throws "Comparison method violates its general contract", and how to guard against items missing the value being sorted on.
reference Developing in CascadeConfiguring a robots meta tag
A worked example: a Metadata Set checkbox field plus a Velocity Format that outputs a robots meta tag with noindex and nofollow values.
how to Content AuthoringConfiguring table properties
What the General and Advanced tabs of the Table properties dialog control, including dimensions, alignment, caption, and colors.
how to Content AuthoringCould not connect to FTPS server: NotAfter
The SSL/TLS certificate on the target FTPS server has expired. Install a valid certificate on the server.
troubleshooting Cascade AdministrationCould not create index writer
How to clear a stale Lucene write.lock when Cascade CMS logs "Could not create index writer" and cannot build its search index.
reference Cascade AdministrationCould not get file content for lucene indexing
What the "Could not get file content for lucene indexing" error means, and how to identify and clear the corrupt file that causes it.
reference Content AuthoringCould not put file with path '<path>' onto server: Failure
Most often the target web server has run out of disk space. Check available storage, then the FTPS server logs.
troubleshooting Content AuthoringCould not put file with path 'FILE_PATH' onto server: Permission denied
The SFTP account in the Transport lacks write permission on the target directory. Find the account via the Destination's Transport, then fix permissions on the server.
troubleshooting Cascade AdministrationCould not reset lucene directory
The "Could not reset lucene directory" error is caused by O/S account permissions on the Cascade CMS installation folder. Here is how to correct them.
reference Content AuthoringCreating an anchor link
Place a named anchor in a page, then link to it from the same page or another page using the Anchor field of the link dialog.
how to Cascade AdministrationCVE-2020-1938 Ghostcat
How to secure the Tomcat AJP Connector bundled with Cascade CMS against CVE-2020-1938 (Ghostcat), for installations that have not yet upgraded to Cascade CMS 8.15.
reference Cascade AdministrationCVE-2021-4104
Cascade CMS is not affected by CVE-2021-4104, the Log4j 1.x JMSAppender remote code execution flaw, plus steps for removing the affected class from older on-premise distributions.
reference Cascade AdministrationCVE-2021-44228 Log4Shell
Cascade CMS is not affected by CVE-2021-44228 (Log4Shell), because the log4j message lookup substitution feature the exploit depends on is disabled or unsupported in our implementation.
reference Cascade AdministrationCVE-2021-45046 Log4Shell
Cascade CMS is not affected by CVE-2021-45046, the incomplete fix for Log4Shell, plus steps for removing the JndiLookup class from older on-premise distributions.
reference Cascade AdministrationCVE-2021-45105 Log4Shell
Cascade CMS is not affected by CVE-2021-45105, the Log4j self-referential lookup denial of service, because message lookup substitution is disabled or unsupported in our use of log4j.
reference Cascade AdministrationCVE-2022-22965 Spring4Shell
Cascade CMS is not affected by CVE-2022-22965 (Spring4Shell) — it uses the Spring Framework for dependency injection but does not include the affected spring-mvc package.
reference Cascade AdministrationCVE-2022-23302 JMSSink
Cascade CMS is not affected by CVE-2022-23302 — the Log4j 1.x JMSSink deserialization issue — because the affected sink is not referenced in our configuration.
reference Cascade AdministrationCVE-2022-23305 JDBCAppender
Cascade CMS is not affected by CVE-2022-23305 — the Log4j 1.x JDBCAppender SQL injection issue — because the affected appender is not referenced in our configuration.
reference Cascade AdministrationCVE-2022-23307 Chainsaw Package
Cascade CMS is not affected by CVE-2022-23307 — the Log4j 1.x Chainsaw deserialization issue — because the affected component is not referenced in our configuration.
reference Cascade AdministrationCVE-2025-24813
Cascade CMS is not affected by CVE-2025-24813, the Apache Tomcat partial PUT path equivalence vulnerability, because the required settings are not enabled in our default installations.
reference Cascade AdministrationCVE-2026-34477
Cascade CMS is not affected by CVE-2026-34477, the incomplete Log4j TLS hostname verification fix, because the default configuration doesn't use the affected appenders.
reference Cascade AdministrationCVE-2026-34480
Cascade CMS is not affected by CVE-2026-34480, the Log4j XmlLayout invalid XML output issue, because the application doesn't use the affected Log4j implementation.
reference Content AuthoringDiscarding the Index Block Rendering Cache
When a page using an Index Block shows outdated information, toggling the Index Block Rendering Cache off and on forces a rebuild.
troubleshooting Cascade AdministrationError constructing implementation
How to resolve the SSL/TLS "Error constructing implementation" error by checking Cascade CMS's key store configuration.
reference Cascade AdministrationError executing SQL DELETE FROM `cxml_history_item`
The following error message may appear when upgrading to Cascade 8 against a version of MySQL 5.7 prior to release 5.7.11: Migration failed for change set com/hannonhill/cascade/model/database/updater/updates/8_0/8_0_006.xml::8_0_006::artur.tomusiak: Reason: liquibase.exception.JDBCException: Error
reference Content AuthoringError occurred during FTP transport: Accept timed out
The connection is using Active FTP where the server expects Passive. Enable Use Passive FTP (PASV) on the Transport.
troubleshooting Cascade AdministrationException invoking method 'getAvailableIDs' in class sun.util.calendar.ZoneInfo
This particular error message is indicative of a missing startup parameter for the application.
reference Developing in CascadeFiltering queries based on multi-value fields
The Query API cannot filter on checkbox or multi-select fields directly, so run the broader query and test each result with hasTextValue.
how to Cascade AdministrationGenerate a HAR file
Steps for capturing a HAR file of network activity for a support investigation, and how to redact it before sharing.
how to Cascade AdministrationGenerating a thread dump
How to capture a Java thread dump from Cascade CMS on Linux with kill -3, or on Windows with jcmd.
how to Developing in CascadeGetting started with REST
Worked read-then-edit examples against the REST API in jQuery, fetch, async/await, and PHP.
how to Cascade AdministrationGranting Access to Specific Folders for Users/Groups
A worked example of hiding every Folder in a Site by default, then granting one Group access to just the Folder it needs.
how to Cascade AdministrationHeader message of length [] received but the packetSize is only []
The AJP request header exceeds Tomcat's configured packetSize. Add a packetSize attribute to the connector in server.xml to resolve it.
reference Cascade AdministrationHow can I check what a User can do in a specific Site?
Use the Effective Abilities tool for a list of a user's abilities in a Site, or Assume Identity to see the system as they see it.
how to Cascade AdministrationHow can I enable request logging for Cascade CMS?
Add an AccessLogValve to tomcat/conf/context.xml to write a request log alongside the other Tomcat logs.
how to Cascade AdministrationHow can I find the O/S account running Cascade CMS?
The User Name field in Logs and System Information shows the account the application runs under.
reference Cascade AdministrationHow can I find which Java installation my Cascade CMS instance is using?
Check the JRE_HOME variable in the boot script for your platform, or read the JVM details from Logs and System Information.
how to Content AuthoringHow can I generate a cron expression for my scheduled publishes?
Cascade CMS uses Quartz, whose cron syntax differs slightly from other tools. Sample expressions and recommended generators.
reference Developing in CascadeHow can I redesign a site using our existing content?
Add a second Output using your new Templates and publish it to a test Destination, then swap the default Output when the design goes live.
how to Developing in CascadeHow can I set up canonical tags?
Two worked examples: a self-referencing canonical tag, and a Shared Field group that lets editors point a page at an alternative canonical URL.
how to Content AuthoringHow can I tell who edited or published a page?
Check the asset's audit trail under More > Audits — or, if the asset is gone, the audit trail of a Group whose members could edit it.
how to Cascade AdministrationHow can I view the largest binary files within my database?
SQL queries for SQL Server, Oracle, and MySQL that list stored files from largest to smallest.
reference Developing in CascadeHow do I access a chooser field's chosen asset?
Check that an asset is actually chosen before reading its properties, using the API's asset property or an XPath test on the path element.
how to Developing in CascadeHow do I add a "title" tag to my page?
Place the system-page-title tag inside your Template's title element so Cascade renders each page's metadata Title.
how to Developing in CascadeHow do I add a code snippet to my content?
Deciding where a snippet belongs — tag manager, Template, Configuration, or single page — and how to add it without tripping XML validation.
how to Developing in CascadeHow do I apply CSS?
Upload a CSS file, link to it from an XML Block, and attach that Block to a Template region at the Template, Configuration, or Page level.
how to Cascade AdministrationHow do I change the name or URL of my site?
Update the Name and URL fields on the Properties tab of Site Settings.
how to Content AuthoringHow do I configure 301 Redirects?
Cascade CMS has no native redirect feature — maintain your web server's .htaccess or web.config in the CMS and publish it to the server root.
how to Cascade AdministrationHow do I control User access to Folders and assets?
Set Access rights on an asset, and use Access for Contents to apply them down a Folder — merging rather than overwriting.
how to Content AuthoringHow do I create a "calling page" Index Block?
Settings for the most commonly used Index Block in Cascade CMS, and how to preview one that needs a context page to render.
how to Developing in CascadeHow do I create an XML output for a page?
Add a non-publishable XML Output to a Configuration so you can view the system-generated XML for any page using it.
how to Cascade AdministrationHow do I delete a site?
Select the site in the Sites list and click Delete. Deleted sites cannot be restored.
how to Content ManagementHow do I delete a Workflow?
Click Delete Workflow from the workflow itself — and where to look if you can't find the workflow.
how to Content AuthoringHow do I determine where assets will be published?
The final path combines the Transport's Server Directory, the Destination's Directory, and the asset's folder path in the Site.
reference Content AuthoringHow do I edit content or find out where to edit a certain region?
Learn how to edit page content in Cascade CMS and find out which Block or Format is responsible for a particular region.
how to Cascade AdministrationHow do I enable DEBUG logging?
Add a logging category or class at DEBUG level from the Logging Configuration tool, and reset it once you've collected what you need.
how to Cascade AdministrationHow do I give a User or Group access to a Site?
Assign a Site Role on the Roles tab of Site Settings, and make sure the user has Read access to the Site's Base Folder.
how to Developing in CascadeHow do I include a page's ID in its contents?
Output the currentPage identifier from a Format attached to a head region, useful for deep linking from Siteimprove, DubBot, and similar tools.
how to Developing in CascadeHow do I include Open Graph or Twitter card meta tags in my page?
Add a system region to your Template's head and attach a Format that generates social meta tags from the current page's metadata and structured data.
how to Developing in CascadeHow do I make an XML sitemap?
A complete recipe for a sitemap page: the Velocity Format, Template, Index Block, Configuration, and Content Type it needs.
how to Developing in CascadeHow do I make CSS classes available in the WYSIWYG formats drop-down menu?
Choose a CSS file on a WYSIWYG Editor Configuration, then use Custom Styles to limit which classes editors can pick.
how to Content AuthoringHow do I publish changes to a block?
Blocks aren't publishable on their own — use Relationships to find the pages that use the block and publish those.
how to Cascade AdministrationHow do I rebuild my search indexes?
Trigger a search index rebuild from Administration > Search Indexing, and what to expect in the log and the Background Tasks Report while it runs.
how to Content AuthoringHow do I rename an asset?
Rename from More > Rename or the context menu — then republish, because renaming unpublishes the asset from every Destination.
how to Cascade BasicsHow do I reorder items in a navigation menu?
Menus built from a Folder follow that Folder's order — but if reordering has no effect, the menu is being generated some other way.
how to Content ManagementHow do I restore something I deleted from the trash / recycle bin?
Select the items in the Trash above the folder tree and click Restore. Access requires one of two Site Role abilities.
how to Developing in CascadeHow do I sort on a Calendar field?
Calendar values are MM-dd-yyyy strings, so build a lookup table of numeric timestamps and sort on that instead.
how to Content AuthoringHow do I unlock a page or asset?
Switch to the Working Copy, then commit or break the lock — or, if someone else owns it, have them reassign it to you.
how to Content AuthoringHow do I unpublish an asset that no longer exists in the CMS?
Recreate the asset as an empty placeholder File at the same path and name, unpublish it, then delete the placeholder.
how to Content AuthoringHow do I upload a folder?
Zip the folder first, then upload the archive and choose whether to unpack it into individual assets.
how to Developing in CascadeHow do I view sample XML when editing a Format?
Use the Preview Options dropdown when editing a Format to render sample XML from a Block, or a Block plus a context page.
how to Content AuthoringHow does the Max Asset Versions setting affect existing versions?
Lowering Max Asset Versions doesn't trim existing version chains immediately — each asset is trimmed the next time it's edited and submitted.
reference Developing in CascadeHow to update deprecated Velocity code
Replacements for the reflection-based patterns that no longer work, mapped to their modern Velocity Tool equivalents.
reference Content AuthoringI won't open a connection to <ip address 1> (only to <ip address 2>)
The Transport is set to Active FTP but the target server only supports Passive. Enable Use Passive FTP (PASV).
troubleshooting Content AuthoringInserting a video
Add a video to page content with the Insert/edit media dialog, using either a direct URL or embed code from the hosting service.
how to Content AuthoringInvalid privatekey error when publishing via SFTP
Cascade CMS needs the SSH key in PEM format. Regenerate the key pair with ssh-keygen -m PEM and upload it again.
troubleshooting Cascade AdministrationInvalid XML character was found in the element content of the document
An "invalid XML character" error on submit means a control character was pasted into a WYSIWYG field. Here is how to find and remove it.
reference Cascade AdministrationInvalid XML: The prefix "o" for element "o:p" is not bound
If you receive this error when trying to create or submit changes to an asset, there may be <o:p> tags in the source code of your editor that will need to be removed or converted to regular <p> tags before the asset can be submitted.
reference Cascade AdministrationLogin Failed
This article describes steps that Administrators can take to troubleshoot failed login attempts for their users.
reference Cascade AdministrationMySQL 8: Public Key Retrieval is not allowed
Resolve the Public Key Retrieval error after upgrading to MySQL 8 in Cascade CMS.
troubleshooting Cascade AdministrationMySQL: Can't create table
When starting Cascade CMS for the first time or after importing a new MySQL database, administrators may see an error message in the log file similar to the following: ERROR [StartupTasks] : *** Startup task: DatabaseIndexAndKeyManagerfailed to execute successfully: java.sql.SQLException: Can't crea
reference Cascade AdministrationMySQL: Can't create/write to file
Organizations using MySQL may see an error message similar to the following when attempting to login to the system: Login failed: An error occurred: Startup task: DatabaseIndexAndKeyManager failed to execute successfully: java.sql.SQLException: Can't create/writeto file 'C:\WINNT\TEMP\#sql_718_0.MYI
reference Cascade AdministrationORA-22275: invalid LOB locator specified
Oracle users may encounter this error when attempting to copy, edit, or submit assets in the system.
reference Developing in CascadeOutput content as JSON
Combine a skip-tag Template, a Format using SerializerTool.toJson inside a protect code section, and a JSON Output to publish content as a .json file.
how to Cascade AdministrationPacket for query is too large
Resolve the MySQL max_allowed_packet error when uploading files into Cascade CMS.
troubleshooting Cascade AdministrationPageRenderException: Could not transform with Script format
When previewing a page, you may see a full-page error of the type Could not transform with Script format...
reference Cascade AdministrationParameters missing
This article describes steps to take when you receive a 'Parameters missing' error while attempting to submit a file or page.
reference Content AuthoringPermissions issues when publishing to Filesystem Transports
Tomcat's default UMASK of 0027 can leave published files unreadable by the web server. Override it in cascade.sh.
troubleshooting Content AuthoringProblems connecting via SFTP to Solarwinds Serv-U servers
Serv-U 15.3.2 changed its SSH protocol exchange, which blocks Cascade CMS. Apply hotfix 1 and allow non-RFC compliant exchange.
troubleshooting Content AuthoringScheduled publishing for individual assets
Start Date versus Optionally Publish Later — which to use for a brand new asset, and which for an update to an existing one.
concept Cascade AdministrationSearch failed: no segments file found
The "Search failed: no segments file found" error is resolved by rebuilding the Cascade CMS search indexes.
reference Cascade AdministrationSearch isn't returning expected results
Work through the Build Search Index task in the Background Tasks Report — its Status and Duration tell you whether the index built, stalled, or hit a permissions problem.
troubleshooting Cascade AdministrationSecure LDAP sync fails after upgrade to Cascade CMS v8.11
Cascade CMS v8.11 comes bundled with a newer version of Java (JRE 8u191).
reference Content AuthoringSFTP: java.net.SocketTimeoutException: Read timed out
The SFTP server's concurrent connection limit is too low for Cascade CMS's parallel publishing. Raise it to at least 25.
troubleshooting Cascade AdministrationSorry, workflow is required to be able to continue but no workflows are available to you.
This error means that the user's Site Role doesn't allow them to Bypass workflow, but there isn't an applicable workflow available for the type of action they're taking.
reference Cascade BasicsStyles not loading for 404 pages
Relative links break when a 404 is served from an arbitrary directory depth — override the page's link rewriting to Absolute.
troubleshooting Cascade AdministrationTable headers are poorly structured
How to clear the "Table headers are poorly structured" accessibility error by setting the correct cell type and scope on a table's header cells.
reference Developing in CascadeTesting for an empty WYSIWYG field
A WYSIWYG field can hold plain text or HTML elements, so test both the element's value and whether it has children.
how to Cascade AdministrationThe driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption
When attempting to start Cascade CMS, organizations using SQL Server may be presented with the following error in the log files (which prevents the application from starting): ("encrypt" property is set to "true" and "trustServerCertificate" property is set to "false" but the driver could not establ
reference Cascade AdministrationThe driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "Unexpected rethrowing"
This particular error message can appear on startup.
reference Content AuthoringThe folder hierarchy does not allow this asset to be published
A parent folder has publishing turned off, which blocks everything inside it regardless of each asset's own setting.
troubleshooting Cascade AdministrationThe index block with path {path} renders too much data
This message is displayed when an Index Block in the system renders a large amount of data and reaches the limit configured in the system Preferences.
reference Content AuthoringThis asset cannot be published because there are no publishable configurations
None of the page's Outputs are marked Publishable. Enable at least one on the Configuration.
troubleshooting Content AuthoringUnsupported or unrecognized SSL message
The FTPS Transport is set to explicit FTPS over port 21. Cascade CMS supports implicit FTPS only, typically over port 990.
troubleshooting Content AuthoringWhere can I find publish notifications?
Notifications for jobs you started are under your user menu; scheduled job notifications live on the Publish Set, Destination, or Site.
how to Cascade AdministrationWhere can I find the Cascade CMS log files?
Log files are available from Logs and System Information in the Administration area, or in the tomcat/logs directory on the server.
reference Content AuthoringWhich algorithms are supported for SFTP?
The KEX, host key, cipher, and MAC algorithms Cascade CMS supports when publishing over SFTP, and which are disabled by default.
reference Content AuthoringWhy am I seeing 'Asset does not exist' in my Publish Notification?
A link points at an asset the system can't find — usually because the link includes a file extension, or points at a folder rather than its index page.
troubleshooting Developing in CascadeWhy am I seeing system-region tags around my published content?
Cascade adds system region tags when rendered content isn't valid XML. Wrap the region in a dummy tag inside a cascade-skip code section.
troubleshooting Content AuthoringWhy are "g" tags appearing in the WYSIWYG editor?
Grammarly's browser extension inserts g elements into WYSIWYG source. Remove them and disable the extension while editing.
troubleshooting Cascade BasicsWhy are my changes not appearing on the web site?
Troubleshoot why your changes in Cascade CMS are not appearing on the live website — covers publishing submission, publish queue, notifications, destinations, outputs, browser caching, and server caching.
troubleshooting Developing in CascadeWhy aren't my CSS background images being displayed?
Background image paths need system-asset tags and the Rewrite asset links in file option so Cascade can resolve them to managed assets.
troubleshooting Cascade AdministrationWhy can't my user upload images in the WYSIWYG or file chooser?
The Upload tab requires the Upload images in file chooser Site Role ability, and on versions before 8.22 also Bypass workflow.
troubleshooting Cascade AdministrationWhy can't my users access the full search feature?
Full Search and Replace lives in the Administration area, so users need a System Role with Access Administration Area enabled.
troubleshooting Cascade AdministrationWhy can't my users see anything in the Add Content menu?
An Asset Factory appears in Add Content only when the user's Group is listed in Applicable Groups on both the Asset Factory and its Container.
troubleshooting Developing in CascadeWorking with namespaces in Velocity
Three ways to reach a namespaced XML element: addNamespace, an XPath prefix, or XPath local-name() for hidden namespaces.
how to Developing in CascadeWorking with Server Side Includes
Publish an HTML snippet as its own page, then pull it into other pages with an SSI directive so a change needs one publish instead of a full site publish.
how to Content AuthoringYou are not authorized to schedule future publish dates
Setting a future Start Date requires a Site Role with publishing ability. Check the user's Effective Abilities under Publishing.
troubleshooting Cascade AdministrationYour roles do not allow you to advance workflow
This error indicates that the user's Site Role doesn't allow them to assign a Workflow to themselves or approve steps in a Workflow.
referenceNo FAQs match your search.